/**
* Parses a source file using ANTLR4, and walks over the parse tree to
* interpret this source file as a Java object.
*
* @param c
* input character stream
* @param path
* location of the file
* @return an interpreted source file, or null in case of an error.
*/
@Nullable
private ReoFile<T> parse(CharStream c, String path) {
ReoLexer lexer = new ReoLexer(c);
CommonTokenStream tokens = new CommonTokenStream(lexer);
ReoParser parser = new ReoParser(tokens);
ErrorListener errListener = new ErrorListener(m);
parser.removeErrorListeners();
parser.addErrorListener(errListener);
ParseTree tree = parser.file();
if (errListener.hasError)
return null;
ParseTreeWalker walker = new ParseTreeWalker();
listener.setFileName(path);
walker.walk(listener, tree);
return listener.getMain();
}
Interpreter.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:Reo
作者:
评论列表
文章目录