Я новичок в ANTLR, и я пытаюсь поиграть с ней. Это простейшая грамматика, о которой я мог думать, и все же она не работает (NoViableAltException), когда я разбираю переменную «id123», но она работает для «abc1», «ab», «c1d2f3».Грамматика не работает (NoViableAltException)
Я использую ANTLR 3.1.3 и ANTLRWorks 1.4.
options
{
language = 'CSharp2';
output = AST;
}
assign : variable '=' value;
value : (variable|constant);
variable: LETTER (LETTER|DIGIT)*;
constant: (STRING|INTEGER);
DIGIT : '0'..'9';
NATURAL : (DIGIT)+;
INTEGER : ('-')? NATURAL;
REAL : (INTEGER '.' NATURAL);
LETTER : ('a'..'z'|'A'..'Z');
CR : '\r' { $channel = HIDDEN; };
LF : '\n' { $channel = HIDDEN; };
CRLF : CR LF { $channel = HIDDEN; };
SPACE : (' '|'\t') { $channel = HIDDEN; };
STRING : '"' (~'"')* '"';
Спасибо за объяснение, но теперь назначить работу это не распространяется. Я пытаюсь «id123 = 2222». Я просто скопировал и вставил ваш ответ. –
Nevermind, неправильная отладка ... это работает! –
Добро пожаловать @ JonathasCosta. –