【发布时间】:2020-08-24 01:18:13
【问题描述】:
所以我有这个语法,我正在尝试为它构建一个 LR(1) 表
E' -> E
E -> E + E
E -> E * E
E -> ( E )
E -> a
到目前为止,这是我的桌子
我正在尝试解决这里的冲突。我想过将语法更改为后缀而不是中缀,但我不确定是否可以这样做。有什么想法吗?
【问题讨论】:
-
如果您尝试使用优先级解决冲突,您应该使用优先级解决算法。它在 Dragon Book(参见 Parsing Ambiguous Grammars)、Bison manual 和任意数量的 SO 答案中都有描述,例如 this one。如果在阅读完材料后,您对这个简单的算法有任何具体问题,请随时提出。
标签: parsing context-free-grammar dfa lr