Bison语法冲突解析与解决
1. 状态与指针位置
当状态为“state 6: 6, 12, … A’s accepted”时,对应的指针位置如下:
start: threeAs X | twoAs Y; threeAs: /* empty */ | A <1,4> A <2,5> A <3,6> threeAs; twoAs: /* empty */ | A <1,3,5> A <2,4,6> twoAs;这意味着,在threeAs中第一个A之后,解析器可以接受6i + 1或6i + 4个A(i为0、1等)。同样,在twoAs中第一个A之后,解析器可以接受6i + 1、6i + 3或6i + 5个A。
2. name.output文件内容
name.output文件包含了语法中的所有规则和解析器状态。文件开头通常会总结冲突和其他错误,包括因冲突而从未使用过的规则。对于每个状态,它会列出对应的规则