init with {: System.err.println("Moyenne selon Turing"); :} action code {: int nb_OK=0; :} parser code {: // deactivation des messages d'erreurs de syntaxe public void syntax_error(java_cup.runtime.Symbol tok) {} :} terminal A, B, NL; nonterminal axiome, lines, lang; nonterminal debut, fin; axiome ::= lines {: /* final action */ System.out.println(nb_OK + " lignes OK"); :} ; lines ::= /* vide */ | lines lang NL {: nb_OK++; :} | lines error NL {: :} ; /* lang = {a^n b^(n+p)/2 a^p} */ lang ::= debut fin // n et p paires | A debut B fin A // Bonus n et p impaire | debut B fin A // Super Bonus n+p impaire | A debut B fin // Super Bonus n+p impaire ; /* debut = {a^2n b^n n>=0, n paire} */ debut ::= /* vide */ | A A debut B ; /* fin = {b^p a^2p p>=0, p paire} */ fin ::= /* vide */ | B fin A A ;