我有一个只有两条规则的树顶语法:
grammar RCFAE
rule num
[0-9]+ <Num>
end
rule identifier
[a-zA-Z] [a-zA-Z]* <ID>
end
end
我正在尝试解析简单的字符串(“A”和“5”)。如果我将该规则放在第一位,则“5”被识别为 Num,如果我将该规则放在第二位,则返回 nil。同样,如果我将该规则放在第一位,“A”将被识别为 ID,如果我将该规则放在第二位,则返回 nil。我无法理解这两个规则如何以任何方式重叠。这让我疯狂!
关于树梢或正则表达式,我有什么遗漏或不了解的吗?在此先感谢您的帮助。