我在 Bison 文件中有以下语法:
lst: ID COMMA lst
| ID
| /*empty*/
plst: lst SEMICOLON lst
| SEMICOLON lst
| lst
第一条规则实际上尝试映射标识符列表,例如id1,id2,id3...
第二个想要映射由分号分隔的几个可能的列表。允许的可能性是id11,id12,id13...;id21,id22,id23...
:id1,id2,id3...
或;id1,id2,id3...
。
我想知道这是否是一套正确的规则,因为 Bison 正在返回许多冲突。我认为可能的问题之一可能是规则不完善。所以我的问题是:前面提到的一套规则,是好的还是容易发生冲突?谢谢你。