我打算用野牛解析一些脚本语言移减少冲突,在这种语言,我可以写类似下面的代码: 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