ANTLR4 中的前缀符号

Prefix notation in ANTLR4

我目前正在使用 Antlr4,我对一个示例感到困惑。我必须用前缀表示法计算表达式的值,这意味着以下表示法:

(每个表达式的末尾都需要有';')。

我写过这个语法和正则表达式,但是我有一个教授的测试例子说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不匹配。