【发布时间】:2016-12-05 11:30:21
【问题描述】:
计算器数学运算符优先级通常被记住肺炎 PMDAS。
ANTLR home page 上的语法(使用相同的缩写)具有 MDASP 顺序。这不是我所期望的 PMDAS 或反向 PMDAS。例如。 this stackoverflow answer 包含一个看起来像 PMDAS 的语法。
但无论我在命令行中输入什么表达式;解析树看起来是正确的!
grammar Expr;
prog: (expr NEWLINE)* ;
expr: expr ('*'|'/') expr
| expr ('+'|'-') expr
| INT
| '(' expr ')'
;
NEWLINE : [\r\n]+ ;
INT : [0-9]+ ;
这是如何工作的?
【问题讨论】:
-
你尝试解析哪些表达式?
标签: antlr4