我打算用野牛解析一些腳本語言移減少衝突,在這種語言,我可以寫類似下面的代碼: a = input()
b = a + 1
function myfunc
a = input()
b = a + 1
end function
我發現,該塊 a = input()
b = a + 1
其中進出函數定義的同時出現可以通過相同的規則stmts被減小,所以我寫如下代碼 %
想象一系列表示爲角色複雜的語法,雖然這個簡單的例子就足以表明衝突: role Alpha {
token alpha { :i <[A..Z]> }
}
role Digit {
token digit { <[0..9]> }
}
role Either
does Alpha
does Digit {
token ei