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 文件包含了语法中的所有规则和解析器状态。文件开头通常会总结冲突和其他错误,包括因冲突而从未使用过的规则。对于每个状态,它会列出对应的规则
超级会员免费看
订阅专栏 解锁全文
145

被折叠的 条评论
为什么被折叠?



