如何使用词法分析器谓词来测试名称列表?
How to use lexer predicates to test against list of names?
我有一个 AvailableCommands
哈希集成员。它在 lexing/parsing 从外部源开始之前加载了名称。我如何检查集合中是否存在当前 CMD
令牌?
类似于:
CMD : [-_.0-9a-zA-Z]+ {AvailableCommands.Contains(/* what goes here? */);}?
-> mode(IN_CMD)
;
我想在词法分析器中执行此操作,因为它是上下文相关的:命令 lexed/parsed 不同于变量。
匹配词法分析器规则构造一个在Lexer._token
中可用的Token。
CMD : [-_.0-9a-zA-Z]+ {AvailableCommands.Contains(_token.getText());}?
-> mode(IN_CMD)
;
Antlr documentation 说的很清楚。
我有一个 AvailableCommands
哈希集成员。它在 lexing/parsing 从外部源开始之前加载了名称。我如何检查集合中是否存在当前 CMD
令牌?
类似于:
CMD : [-_.0-9a-zA-Z]+ {AvailableCommands.Contains(/* what goes here? */);}?
-> mode(IN_CMD)
;
我想在词法分析器中执行此操作,因为它是上下文相关的:命令 lexed/parsed 不同于变量。
匹配词法分析器规则构造一个在Lexer._token
中可用的Token。
CMD : [-_.0-9a-zA-Z]+ {AvailableCommands.Contains(_token.getText());}?
-> mode(IN_CMD)
;
Antlr documentation 说的很清楚。