• # Correction

    Posté par . En réponse au message [Javacc] reconnaissance du token "le plus grand". Évalué à 2.

    Désolé je n'avait pas fait attention que les tokens disparaissent :/

    le code:
    options {
    STATIC = false ;
    }
    PARSER_BEGIN(Adder)
    class Adder {
    public static void main( String[] args )
    throws ParseException, TokenMgrError {
    Adder parser = new Adder( System.in ) ;
    parser.Start() ; }
    }
    PARSER_END(Adder)

    SKIP :
    {
    "\r"
    }

    TOKEN :
    {
    < NUMBER: (["0"-"9"])+ >
    | < WORD : (~[" ","\n"])+ >
    | < WORDS: (<WORD>|" ")+ >
    | < EOL: ("\n") >
    }

    void Start() :
    {
    int n;
    Token t;
    }
    {
    (t = <NUMBER>
    {
    n = Integer.parseInt(t.image);
    System.out.println(n);
    }
    " "<WORD>
    " "<WORDS>
    <EOL>
    )+
    <EOF>
    }



    le résultat:
    echo "123 mot1 mot2 mot3" | java Adder
    Exception in thread "main" ParseException: Encountered " <WORDS> "123 mot1 mot2 mot3 "" at line 1, column 1.
    Was expecting:
    <NUMBER> ...

    at Adder.generateParseException(Adder.java:190)
    at Adder.jj_consume_token(Adder.java:128)
    at Adder.Start(Adder.java:13)
    at Adder.main(Adder.java:6)