我可以将此推导视为最左侧或/和最右侧吗?

时间:2016-05-19 11:21:33

标签: parsing ambiguity deriving

例如,我想得到字符串' aabbccdd'来自给定的生产集:

S -> AB  | C
A -> aAb | ab
B -> cBd | cd
C -> aCd | aDd
D -> bDc | bc

我可以使用最左边和最右边的派生从AB派生字符串。

但是C怎么样?在派生字符串时,我总是只有一个变量。

来自C的推导:

S -> C
S -> aCd
S -> aaDdd
S -> aabDcdd
S -> aabbccdd

使用了什么样的派生?我可以认为这种语法含糊不清吗?

1 个答案:

答案 0 :(得分:0)

  1. 在最右边的推导中,导出最右边的非终端。在最左边的推导中,导出最左边的非终端。如果只有一个非终端,则派生最左边和最右边。这不是矛盾。

  2. 由于目标字符串有两个以S开头的派生,因此语法不明确。