【发布时间】:2013-10-08 22:06:11
【问题描述】:
所以,我想知道是什么让解析器像这样:
line : expression EOF;
expression : m_expression (PLUS m_expression)?;
m_expression: basic (TIMES basic)?;
basic : NUMBER | VARIABLE | (OPENING expression CLOSING) | expression;
左递归和无效,而解析器喜欢
line : expression EOF;
expression : m_expression (PLUS m_expression)?;
m_expression: basic (TIMES basic)?;
basic : NUMBER | VARIABLE | (OPENING expression CLOSING);
有效且有效,即使“基本”的定义仍指“表达式”。特别是,我希望能够以
的形式解析表达式a+b+c
不引入作用于两个以上操作数的操作。
【问题讨论】:
标签: parsing antlr grammar left-recursion