Parsing 解析表达式语法(PEG.js)中的保留字

Parsing 解析表达式语法(PEG.js)中的保留字,parsing,peg,Parsing,Peg,和给我这样的解决方案: Identifier "identifier" = !ReservedWord [A-Za-z_]+ ReservedWord = "test" / "abc" 此解决方案无法解析像“test_var”这样的标识符 在这个例子中,语法!ReservedWord将排除以“test”或“abc”开头的所有变量 提前感谢。ReservedWord在保留字完成时成功,不管接下来发生什么。因此,解决方案是在

和给我这样的解决方案:

Identifier "identifier"
  = !ReservedWord [A-Za-z_]+

ReservedWord
  = "test"
  / "abc"
此解决方案无法解析像“test_var”这样的标识符

在这个例子中,语法!ReservedWord将排除以“test”或“abc”开头的所有变量


提前感谢。

ReservedWord
在保留字完成时成功,不管接下来发生什么。因此,解决方案是在存在包含更多标识符字符的较长匹配时使其失败:

Identifier "identifier"
  = !ReservedWord [A-Za-z_]+

ReservedWord
  = ( "test" / "abc" ) ![A-Za-z_]

很好的解决方案。这对我帮助很大,效率不是很低吗?