/* SPECIFICATION CUP : numeration */ parser code {: static final int BASE=10; int char2int(Character c){ return(c-'0'); /* assume decimal ! */ } :} terminal SEP; terminal Character DIG; nonterminal axiome; nonterminal Integer nombre; axiome ::= /* vide */ | axiome SEP | axiome nombre:nn {: System.out.println("N=" + nn); :} SEP ; nombre ::= DIG:dd {: RESULT = char2int(dd); :} | nombre:nn DIG:dd {: RESULT = BASE * nn + char2int(dd); :} ;