Antlr4-隐式定义
我正在尝试创建一个简单的、目前仅限使用的整数算术表达式解析器。目前我有:Antlr4-隐式定义,antlr,antlr4,Antlr,Antlr4,我正在尝试创建一个简单的、目前仅限使用的整数算术表达式解析器。目前我有: grammar MyExpr; input: (expr NEWLINE)+; expr: '(' expr ')' | '-' expr | <assoc = right> expr '^' expr | expr ('*' | '/') expr | expr ('+' | '-') expr | ID '(' ExpressionList? ')' |
grammar MyExpr;
input: (expr NEWLINE)+;
expr: '(' expr ')'
| '-' expr
| <assoc = right> expr '^' expr
| expr ('*' | '/') expr
| expr ('+' | '-') expr
| ID '(' ExpressionList? ')'
| INT;
ExpressionList : expr (',' expr)*;
ID : [a-zA-Z]+;
INT : DIGIT+;
DIGIT: [0-9];
NEWLINE : '\r'?'\n';
WS : [\t]+ -> skip;
我正在使用Eclipse和Antlr4插件。我试图根据antlr4书中给出的cymbol语法来确定自己的方向
有人能告诉我我的小语法出了什么问题吗?我自己发现的: 以大写字母开头的规则参考Lexer规则。所以我所要做的就是将我的ExpressionList重命名为ExpressionList 也许有一天其他人会发现这很有用;)
error(160): MyExpr.g4:14:17: reference to parser rule expr in lexer rule ExpressionList
error(126): MyExpr.g4:7:6: cannot create implicit token for string literal in non-combined grammar: '-'