【发布时间】:2015-12-19 07:12:23
【问题描述】:
我正在尝试创建一个也支持负数的计算器,并最终创建一个 lisp 样式的树。
我这样定义词法分析器规则:
INT :'-'? [0-9]+ ;
LBRACKET : '(';
RBRACKET : ')';
MULTIPLICATION : '*' ;
DIVISION: '/' ;
PLUS: '+' ;
MINUS: '-' ;
而且我对每个操作都有一个规则,例如:
e13=exp MINUS e14=exp{
SPTree tempTree= new SPTree("-");
tempTree.insertChild($e13.tree);
tempTree.insertChild($e14.tree);
$tree=tempTree;
}
但是当我尝试输入表达式时:2-3 出来的 lisp 树是 (2)。
为什么会忽略-3?
【问题讨论】:
标签: antlr