ANTLR4 中的前缀符号
Prefix notation in ANTLR4
我目前正在使用 Antlr4,我对一个示例感到困惑。我必须用前缀表示法计算表达式的值,这意味着以下表示法:
- 添加表达式表达式或
- SUB expr 表达式或
- MUL expr 表达式或
- DIV expr expr 或
- 整数或
- 双人间
(每个表达式的末尾都需要有';')。
我写过这个语法和正则表达式,但是我有一个教授的测试例子说ADD 1 2 SUB 1;
,它甚至不应该属于这个语法吧?因为对于 SUB 操作我没有右侧的两个表达式?如果有人能为我证实这一点,将不胜感激。
PS。我没有 post 代码因为对于其他示例它有效,只有这个报告错误 "mismatched input on SUB ';'"
如果你的 expr 规则是
expr : 'ADD' expr expr
| 'SUB' expr expr
| 'MUL' expr expr
| 'DIV' expr expr
| Integer
| Double
;
那么是的,ADD 1 2 SUB 1
不匹配。
我目前正在使用 Antlr4,我对一个示例感到困惑。我必须用前缀表示法计算表达式的值,这意味着以下表示法:
- 添加表达式表达式或
- SUB expr 表达式或
- MUL expr 表达式或
- DIV expr expr 或
- 整数或
- 双人间
(每个表达式的末尾都需要有';')。
我写过这个语法和正则表达式,但是我有一个教授的测试例子说ADD 1 2 SUB 1;
,它甚至不应该属于这个语法吧?因为对于 SUB 操作我没有右侧的两个表达式?如果有人能为我证实这一点,将不胜感激。
PS。我没有 post 代码因为对于其他示例它有效,只有这个报告错误 "mismatched input on SUB ';'"
如果你的 expr 规则是
expr : 'ADD' expr expr
| 'SUB' expr expr
| 'MUL' expr expr
| 'DIV' expr expr
| Integer
| Double
;
那么是的,ADD 1 2 SUB 1
不匹配。