javajparsec扫描器。令牌的等效字符串()
我有一个类似于这样的语言解析器:
[nodeType OPTIONAL STUFF]
有一些节点类型,比如“ask”和“set”,所以目前ask
和set
被定义为关键字。这会导致解析器的其他部分出现问题
有没有办法定义一个只接受包含特定文本的令牌的令牌解析器
你可以在下面搜索框中键入要查询的问题!
我有一个类似于这样的语言解析器:
[nodeType OPTIONAL STUFF]
有一些节点类型,比如“ask”和“set”,所以目前ask
和set
被定义为关键字。这会导致解析器的其他部分出现问题
有没有办法定义一个只接受包含特定文本的令牌的令牌解析器
# 1 楼答案
对。你可以看看Terminals类,这在Tutorial中也有解释
实际上,jparsec结合了传统上在lex和yacc中分离的两个解析过程:词法分析阶段(例如
Terminals
)解析String
并返回一个Token
流,语法分析(其他Parser
实例)解析Token
流并对其进行解释,通常构建AST或直接嵌入语义