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