例如,我想得到字符串' 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
使用了什么样的派生?我可以认为这种语法含糊不清吗?
答案 0 :(得分:0)
在最右边的推导中,导出最右边的非终端。在最左边的推导中,导出最左边的非终端。如果只有一个非终端,则派生最左边和最右边。这不是矛盾。
由于目标字符串有两个以S
开头的派生,因此语法不明确。