JParsec - Scanner.string() 相当于令牌

JParsec - Scanner.string() equivalent for tokens

我有一个语言解析器,如下所示:

[nodeType OPTIONAL STUFF]

"ask"和"set"等节点类型较少,所以目前askset定义为关键字。这会导致解析器的其他部分出现问题。

有没有办法定义一个只接受包含特定文本的令牌的令牌解析器?

是的。你可以看看Terminals class and this is also explained in the Tutorial

实际上,jparsec 结合了传统上在 lex 和 yacc 中分开的两个解析过程:词法分析阶段(例如 Terminals)解析一个 String 和 returns一个Token 流,句法分析(其他 Parser 实例)解析 Token 流并解释它们,通常构建 AST 或直接嵌入语义。