如何通过SLR解决这个语法?

时间:2015-05-04 07:18:36

标签: parsing compiler-construction grammar left-recursion

我想解决这个语法问题     S-> SS +
    S-> SS *
    S->一种

我想构建SLR项集并使用action和goto解析表。 这个语法可以解析而不会消除左递归。 这是语法单反。

2 个答案:

答案 0 :(得分:2)

  1. 不,这个语法不是单反。它含糊不清。

  2. 对于LR解析器,左递归不是问题。只有LL解析器才需要消除左递归。

答案 1 :(得分:1)

我对此并不完全确定,但我认为这个语法实际上是SLR(1)。我用手构造的SLR(1)表和我获得的一个与不存在冲突(已增加从S&#39 0 - 过渡;(新开始符号) - > S)。

有人可以提供一个句子,可以通过两种不同的方式从这个语法中派生出来吗?我能够在没有任何警告的情况下在Bison中获得解析器。你确定它含糊不清吗?