我有以下語法,我不知道如何解決它。我檢查,如果是ambiguos與維爾特條件,但也許是因爲野牛使用LR解析器,這是無關緊要的:幫助這個語法,XMl在野牛
第一個版本,7移位/減少
S->DE
D->aKc
E-><J K E2
E2-> /> | > H I
I-> </J>
K-> | KL
L-> j ='N'
H-> | HT
T-> N E3
E3-> | E N
N -> | N N2
N2-> text | j
其中j是一個有效的話,並且文本只是沒有任何特殊字符的文本,a和c是圍繞xml聲明的字符串。 出現的衝突之一是移動/減少,導致規則E3 - >/爲空 /無用。
我做一些改進與小量過渡
第二版2shift /減少
S-> D E
D-> a D2
D2->|K c
E-> <J E1
E1-> E2 | K E2
E2-> /> | > HI
I-> </J>
K-> L | K L
L-> J= 'N'
N-> N N2 | N2
N2-> X | J
H-> HT | T
T-> N|E
2移減少的問題是讀出的X或按J之後,並自帶其他X或按J ,它不知道它是否減少T或移位並準備使用N> N N2 | N2
第三版2shift /減少,但認識我的良好示例XML文件
S-> D E
D-> a D2
D2-> K c | c // a is "<?xml version=\"1.0\"" and c is "?>"
E-> <J E1
E1-> E2 | K E2
E2-> /> | > E3 // this is the other correction, for the case of an empty element
E3-> HI | I
I-> </J>
K-> L | K L
L-> J= 'N'
N-> N N2 | N2
N2-> X | J // X and J are word(any strange word) and ValidWord(used in element and atributes names)
H-> HT | T
T-> N|E
這是功課嗎? – LarsH 2010-11-26 13:50:17