@Override
	public String toString() {
		return "Cfg[nonTerminals=%s, terminals=%s, rules=%s, start=%s]"
			.formatted(nonTerminals, terminals, rules, start);
	}
Maps the values of the terminal symbols from type {@code T} to type
{@code A}.

@param mapper the mapper function
@param <A> the new value type of the terminal symbols
@return the mapped grammar
@throws NullPointerException if the given mapper is {@code null}
jenetics.ext/src/main/java/io/jenetics/ext/grammar/Cfg.java