使用简单的方法调用antrl的语法分析器。
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.tree.ParseTree;
.....
public static String praseAS3(String fileName) throws IOException{
//创建一个新的CharStream,从文件中读取输入数据
CharStream inputStream = CharStreams.fromFileName(fileName, Charset.forName("UTF-8"));
//新建一个词法分析器,处理输入的CharStream
//ActionScript3Lexer 是词法分析G4文件的产物
ActionScript3Lexer lexer = new ActionScript3Lexer(inputStream);
//新建一个词法符号缓冲区,用于存储词法分析器将生成的词法符号
CommonTokenStream tokens = new CommonTokenStream(lexer);
//新建一个语法分析器,处理词法符号缓冲区中的内容
//ActionScript3r 是语法分析G4文件的产物
ActionScript3 parser = new ActionScript3(tokens);
//以树上的节点【compilationUnit】作为根节点,自上而下进行分析。
ParseTree tree = parser.compilationUnit();
//用LISP风格打印生成树
System.out.println(tree.toStringTree(parser));
//Visit的实现类
VisitorImpl visitor = new VisitorImpl();
//根节点传入visit进行遍历
String outString =visitor.visit(tree);
return outString;
}