/* =========================================================================== */ /* programme principal */ /* =========================================================================== */ PARSER_BEGIN(Expressions) public class Expressions { public static void main(String args[]) throws ParseException { Expressions parser = new Expressions(System.in); parser.Expressions(); System.out.println() ; System.out.println("syntaxe correcte !") ; } } PARSER_END(Expressions) /* =========================================================================== */ /* definition des lexèmes */ /* =========================================================================== */ SKIP : // les séparateurs de lexème { " " | "\t" | "\n" } TOKEN : // les lexèmes { < plus: "+" > | < mult: "*" > | < parg: "(" > | < pard: ")" > | < entier: ["1"-"9"] (["0"-"9"])* > } /* =========================================================================== */ /* definition de la grammaire */ /* =========================================================================== */ // Expressions -> E void Expressions() : {} { E() } // E -> E + T | T void E() : {} { E() T() | T() } // T -> T * F | F void T() : {} { T() F() | F() } // F -> entier | (E) void F() : {} { | E() }