2015-05-04 42 views
1

我想解决这个语法。
S-> SS +
S-> SS *
S->一如何通过单反解决这个语法?

我希望构造SLR项集和分析表用行动和GOTO的。 这个语法可以解析而不消除左递归。 这是语法单反。

+0

不,你需要消除左递归! –

回答

2
  1. 不,这种语法不是单反。它是含糊不清的。

  2. 左递归对LR分析器来说不是问题。左递归消除仅适用于LL解析器。

+0

怎么说这个语法是单反?有什么方法可以找到? –

+0

@himanshusaini:构建单表,并观察没有冲突。 – rici

+0

是的,解析表中存在冲突。所以这不是单反语法?如果没有制作解析树,有没有什么办法可以找到文法是SLR? –

0

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

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