init with {: System.out.println("Numeration romaine :"); :} non terminal lignes, ligne; non terminal Integer m, c, d, u, c3, d3, u3; terminal M, C, X, I, D, L, V, NL; lignes ::= /* vide */ | lignes ligne NL ; ligne ::= error {: System.out.println("= Invalide"); :} | m:m c:c d:d u:u {: System.out.println("= "+(1000*m+100*c+10*d+u)); :} ; u ::= u3:u {: RESULT = u; :} | V u3:u {: RESULT = u+5; :} | I V {: RESULT = 4; :} | I X {: RESULT = 9; :} ; u3 ::= /* */ {: RESULT = 0; :} | I {: RESULT = 1; :} | I I {: RESULT = 2; :} | I I I {: RESULT = 3; :} ; d ::= d3:d {: RESULT = d; :} | L d3:d {: RESULT = d+5; :} | X L {: RESULT = 4; :} | X C {: RESULT = 9; :} ; d3 ::= /* */ {: RESULT = 0; :} | X {: RESULT = 1; :} | X X {: RESULT = 2; :} | X X X {: RESULT = 3; :} ; c ::= c3:c {: RESULT = c; :} | D c3:c {: RESULT = c+5; :} | C D {: RESULT = 4; :} | C M {: RESULT = 9; :} ; c3 ::= /* */ {: RESULT = 0; :} | C {: RESULT = 1; :} | C C {: RESULT = 2; :} | C C C {: RESULT = 3; :} ; m ::= /* */ {: RESULT = 0; :} | M {: RESULT = 1; :} | M M {: RESULT = 2; :} | M M M {: RESULT = 3; :} | M M M M {: RESULT = 4; :} ;