我将使用PetitParser解析编程语言中的标识符。其中一个要求是标识符名称不能是关键字(例如null),因此null不会是一个有效的标识符。我可以想到的最简单的解析器如下:
identifier := ('null' asParser not, #word asParser plus)
然而,如果输入以关键字开头,则会失败:
identifier end parse: 'nullable'
您有什么建议来解决这个问题吗?谢谢!