Hi Joe,
There are a few accepted ways of implementing ephemeral random
constants in GE, a decent paper which outlines some of them is
"Constant creation in grammatical evolution" by Dempsey et al. The
preferred Digit Concatenation method they outline should work fine in
XGE, using a grammar something like this:
<erc> ::= <int> <dot> <int> | <int>
<int> ::= <int> <digit> | <digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<dot> ::= .
That's right, a GrammarLiteral is a (static) grammar terminal. As
opposed to a TerminalSymbol which is a parse tree terminal and so is
part of an individual CandidateProgram. A TerminalSymbol is defined
from a GrammarLiteral. There is a similar relationship between a
GrammarRule and a NonTerminalSymbol.