我正在尝试为命题逻辑编写语法,以创建 LL 解析器(词法分析)。
我尝试了以下语法:
F = F and F
F = F or F
F = F => F
F = F <=> F
F = not F
F = (F)
D = a
但我发现它是模棱两可的。我尝试了以下方法来消除歧义:
F = F and A
F = A
A = F or B
A = B
B = F => C
B = C
C = F <=> C
C=D
D = not F
D = (F)
D = a
这个语法正确吗?我成功地消除了歧义吗?