【发布时间】:2019-04-08 20:38:22
【问题描述】:
对于具有 let 和 addition 的表达式语言,什么是等同于以下歧义语法的明确语法?
E ⇒ 让 id = E in E
E ⇒ E + E
E ⇒ 数字
应该解决歧义,以便:
- 加法是左关联的
- add 出现在右边时,其优先级高于 let 表达式
- add 出现在左侧时,其优先级低于 let 表达式
使用大括号表示子表达式的分组,下面说明了表达式应该如何解释:
num + num + num => { num + num } + num
let id = num in num + num => let id = num in { num + num }
num + let id = num in num => num + { let id = num in num }
【问题讨论】:
标签: parsing compiler-construction grammar ambiguous-grammar