【发布时间】:2015-12-07 20:52:02
【问题描述】:
我正在为 LL(1) 形式的简单编程语言编写语法。
对于表达式,我有以下内容
<expression> ::=
<term> “+” <expression>
| <term> “-” <expression>
| <term>
<term> ::=
<factor> “*” <expression>
| <factor> “/” <expression>
| <factor>
<factor> ::=
“(” <expression> “)”
| id
| num
对于我的任务
<assignment> ::= id “=“ <expression>
据我了解,这不是 LL(1) 形式,因为左侧的 ID 可能表示表达式或赋值,我需要额外的前瞻来确定哪个。
我怎样才能将其重写为 LL(1) 形式?
【问题讨论】: