gpt4 book ai didi

java - ANTLR4 -> 访问者访问词法分析器符号

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:46 25 4
gpt4 key购买 nike

目前,我正在实现 ANTLR4 生成的 BaseListener<Void> .

当我需要检查一个 token 是一个还是另一个时,我会执行以下操作:

@Override
public Void visitTerminal(TerminalNode node) {

if (";".equals(node.getText()))
this.prepareQuery();
else if (",".equals(node.getText()))
this.prepareQuery();

return super.visitTerminal(node);
}

有没有办法避免这些";" , "," ?我明白了,因为我已将此标记声明为语法上的 LEXER 规则:

SCOL : ';';
COMMA : ',';

我可以写类似Lexer.SCOL(...)的东西吗? ,或Lexer.COMMA.equals(...) ?:

最佳答案

您可以通过node.getSymbol().getType()从节点获取词法分析器类型;

关于java - ANTLR4 -> 访问者访问词法分析器符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37044071/

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