Этот пример antlr не работает должным образом - PullRequest
0 голосов
/ 01 мая 2010

Этот пример ANTLR не анализирует ввод "1;" , Вы можете объяснить, почему? Он разбирает "11;".

grammar TestGrammar;

options {
    output=AST;
}

expr:       mexpr (PLUS^ mexpr)* SEMI!;
mexpr:      atom (STAR^ atom)*; 
atom:       INT; 

LPAREN:     '('; 
RPAREN:     ')'; 
STAR:       '*'; 
PLUS:       '+'; 
SEMI:       ';';

protected
DIGIT:      '0'..'9';
INT:        (DIGIT)+;

WS:         (' ' | '\t' | '\n' | '\r') {
                $channel = HIDDEN;
            };

1 Ответ

1 голос
/ 03 мая 2010

Для цели Java, если вы измените: защищенный DIGIT : '0' .. '9' ;

в фрагмент DIGIT : '0' .. '9' ;

это будет работать.

Надеюсь, это поможет вам.

...