编程语言
首页 > 编程语言> > 使用Java遍历Antlr树

使用Java遍历Antlr树

作者:互联网

我对Antlr有疑问,我正在用它构建一个简单的解析器,但无法遍历树.我发现了许多在线教程,它们使用了getAst();. Parser类的功能.有人对这个有经验么?我感觉这样做的方式因版本而异.

grammar SimpleCalc;

options 
{
    output=AST; 
} 

tokens {
    PLUS    = '+' ;
    MINUS   = '-' ;
    MULT    = '*' ;
    DIV = '/' ;
    SEMICOLON = ';';
    EQUAL = '=';
    COMMA = ',';
    BRACKETL = '(';
    BRACKETR = ')';
}

任何人都对如何以另一种方式遍历树有任何想法或建议吗?

解决方法:

getAST()是CommonAST中的一种方法,用于ANTLRv2.x.

ANTLR v3.x改用CommonTree.当定义output = AST时,所有解析器规则都返回一个实例RuleReturnScope,该实例具有getTree()方法,您可以使用get树.

另请参阅此先前的问答,该问答显示了解析某些输入后如何获取AST:How to output the AST built using ANTLR?

标签:antlr,antlr3,java
来源: https://codeday.me/bug/20191201/2084057.html