1

我想解决这个语法。
S->SS+
S->SS*
S->a

我想用 action 和 goto 构建 SLR 项目集和解析表。这个语法可以在不消除左递归的情况下解析吗?这是语法单反。

4

2 回答 2

3
  1. 不,这个语法不是 SLR。这是模棱两可的。

  2. 左递归对于 LR 解析器来说不是问题。左递归消除仅对 LL 解析器是必需的。

于 2015-05-04T17:47:33.873 回答
1

我对此并不完全确定,但我认为这个语法实际上是 SLR(1)。我手工构建了 SLR(1) 表,并获得了一个没有冲突的表(添加了一个从 S'(新开始符号)-> S 的 0 转换)。

有人可以提供一个可以从该语法以两种不同方式派生的句子吗?我能够在 Bison 中得到一个解析器,而没有任何警告。你确定它是模棱两可的吗?

于 2015-11-07T17:47:47.933 回答