In the above example, the terminal symbols are characters of text, represented by characters in single quotes, such as codice_1 and codice_2. The range codice_3 is also a shortcut for ten characters, indicating any one of the digits 0 through 9. (This range syntax is the same as the syntax used by regular expressions.) The nonterminal symbols are the ones that expand to other rules: "Value", "Power", "Product", "Sum", and "Expr". Note that rules "Sum" and "Product" don't lead to desired left-associativity of these operations (they don't deal with associativity at all, and it has to be handled in post-processing step after parsing), and the "Power" rule (by referring to itself on the right) results in desired right-associativity of exponent. Also note that a rule like (with intention to achieve left-associativity) would cause infinite recursion, so it cannot be used in practice even though it can be expressed in the grammar.