JParsec - Scanner.string()等同于令牌

时间:2016-05-04 19:04:22

标签: java parsing parser-combinators jparsec

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

[nodeType OPTIONAL STUFF]

有一些节点类型,例如“ask”和“set”,因此目前askset被定义为关键字。这会导致解析器的其他部分出现问题。

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

1 个答案:

答案 0 :(得分:0)

是。您可以查看Terminals类,Tutorial中也对此进行了解释。

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