對於給定上下文無關語法: S -> G $
G -> PG | P
P -> id : R
R -> id R | epsilon
如何重寫語法,使其LR(1)? 當解析輸入「id:.id」時,當前語法會改變/減少衝突,其中「。」是解析器的輸入指針。 該語法生成滿足正則表達式的語言(id:(id)*)+
我正在嘗試創建上下文無關語法,該語法通過至少一個Kleene星號在{a,b}上生成所有正則表達式。什麼我迄今所做的是: S ::= A + S | A
A ::= B . A | B
B ::= T | B* | (S)
T ::= a | b | eps
我想這可以生成所有的正則表達式,但我不能讓我的周圍頭是如何使至少一個Kleene星需要定義它在那個表達中。