0
我正在构建语法分析器。单反(1)很好,但我相信有一些减少/移位冲突或某种冲突会使解析器过早拒绝字符串。这里是语法: 注意:我确实留下了语法因素来看看这是否是问题,但这并没有消除歧义。然而,这是没有左保这种上下文无关的语法是不明确的,我不知道为什么。我正在构建的SLR(1)编译器无法按照我期望的方式工作
P'' -> P'$
P' -> P
P -> C | C;D
D -> R | RD
R -> pu{P}
C -> I | I;C
I -> h | O | A | R | Z
O -> i(V) | z(V)
Y -> u
V -> S | N
S -> u
N -> u
A -> S=s | S=S | N=X
X -> N | b | L
L -> d(X,X) | s(X,X) | m(X,X)
R -> f(B)t{C} | f(B)t{C}1{C}
B -> e(V,V) | (N<N) | (N>N) | nB | a(B,B) | o(B,B)
Z -> w(B){C} | r(N=0;N<N;N=a(N,1)){C}
我明白这个语法是相当大的,但如果你能帮助我在这里,你将是一个生命的救星原来的语法。先谢谢你!
嗯,我认为还有一些值得引用的转换值不在相关的语法制作中,就像'C - >我'一个 –
我看不到,你给的作品,任何在字符串末尾产生分号的方法 –
@JeffersonQuesado我添加了文法的其余部分 – user1538070