2
我试图构造一个CFG的布尔运算符NAND .. 这是我到目前为止有:如何删除歧义上下文无关文法的NAND
boolexp --> boolexp NAND boolexp
boolexp --> (boolexp)
boolexp --> True | False
问题是当输入为例如“假NAND假虚拟NAND(真正的NAND真)”
这显然是不明确的,因为根据派生可能有2个不同的分析树。
我该如何消除这种歧义并重新设计我的CFG?
我想是左关联的非运算.. 也就是说,如果输入的是NAND乙NAND C,我希望它是(A非B)NANDç
的第一线,我还需要,, boolexp - > boolexp NAND boolterm | boolterm? – user2436815
语法已经有了。交替'|'只是两个作品的简写,就像答案中一样。 – ibid
@ibid:我忘了它,并在评论后添加为编辑。 – hivert