gpt4 book ai didi

ANTLR4 - 如何在 ANTLR 中获取 token TYPE 作为 token 文本?

转载 作者:行者123 更新时间:2023-12-04 01:53:32 26 4
gpt4 key购买 nike

假设我有一个具有如下标记的语法:

AND        : 'AND' | 'and' | '&&' | '&';
OR : 'OR' | 'or' | '||' | '|' ;
NOT : 'NOT' | 'not' | '~' | '!';

当我使用 TreeViewer 可视化 ParseTree 或使用 tree.toStringTree() 打印树时,每个节点的文本与匹配的文本相同。

因此,如果我解析“A 和 B 或 C”,则两个二元运算符将是“和”/“或”。
如果我解析“A && B || C”,它们将是“&&”/“||”。

我希望它们始终是“AND”/“OR/NOT”,无论匹配什么文字符号。这可能吗?

最佳答案

这就是词汇的用途。使用 yourLexer.getVocabulary()yourParser.getVocabulary()然后 vocabulary.getSymbolicName(tokenType)用于标记类型的文本表示。如果返回空字符串,请尝试作为第二步 vocabulary.getLiteralName(tokenType) ,它返回用于定义标记的文本。

关于ANTLR4 - 如何在 ANTLR 中获取 token TYPE 作为 token 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38106771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com