/**
* Parses the supplied input using the OTLDListener and returns it after walking it
* @param reader input to parse
* @return walked OTLDListener
* @throws IOException
*/
public static OTLDListener parseFile(InputStream reader) throws IOException {
OTLDErrorListener errorListener = new OTLDErrorListener();
ANTLRInputStream stream = new ANTLRInputStream(reader);
Lexer lexer = new otldLexer(stream);
lexer.removeErrorListeners();
lexer.addErrorListener(errorListener);
TokenStream tokens = new CommonTokenStream(lexer);
otldParser parser = new otldParser(tokens);
parser.removeErrorListeners();
parser.addErrorListener(errorListener);
ParseTree tree = parser.program();
OTLDListener railroad = new OTLDListener();
if (errorListener.getErrors().isEmpty()) {
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(railroad, tree);
} else {
railroad.errors.addAll(errorListener.getErrors());
}
return railroad;
}
OTLDListener.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:transportlanguage
作者:
评论列表
文章目录