similar question和author's website给我这样的解决方案:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= "test"
/ "abc"
此解决方案无法解析像“test_var”这样的标识符。
在这个例子中,语法!ReservedWord将排除以“test”或“abc”开头的所有变量。
提前致谢。
答案 0 :(得分:5)
ReservedWord
成功,当保留字完成时,无论如何。因此,解决方案是在包含更多标识符字符的较长匹配时使其失败:
Identifier "identifier"
= !ReservedWord [A-Za-z_]+
ReservedWord
= ( "test" / "abc" ) ![A-Za-z_]