这是语法:
S' -> S
S-> aBc|bCc|aCd|bBd
B ->e
C ->e
我在 CLR 中解析然后减少/减少冲突出现。接下来做什么?我在下面附上了我解决的问题。
这是语法:
S' -> S
S-> aBc|bCc|aCd|bBd
B ->e
C ->e
我在 CLR 中解析然后减少/减少冲突出现。接下来做什么?我在下面附上了我解决的问题。
任何人请告诉我下一步该怎么做
呃……修复冲突?
当解析器在 e 之后遇到 c 或 d 时,即使仅从最后两个产生式也很清楚:
B -> e . {c, d}
C -> e . {c, d}
单次前瞻不足以确定上述条件是否应减少到 B 或 C。
解析器生成器通常有一个解决方案,即采用语法中第一个出现的那个,但这并不总是一个好的情况。在上述语法中,如果采用这种解决方案,由于 e 总是归约为 B,因此解析器将无法解析 bec 和 aed。
我建议更改语法,以免发生冲突。你知道整个语法只能产生 aec、bec、aed 和 bed。看看序列中什么是更好的,这些序列将被单独制作,这将独特地减少。