private static StatementContext parseYangSource(final SourceIdentifier source, final InputStream stream)
throws IOException, YangSyntaxErrorException {
final YangStatementLexer lexer = new YangStatementLexer(CharStreams.fromStream(stream));
final CommonTokenStream tokens = new CommonTokenStream(lexer);
final YangStatementParser parser = new YangStatementParser(tokens);
//disconnect from console error output
parser.removeErrorListeners();
final YangErrorListener errorListener = new YangErrorListener(source);
parser.addErrorListener(errorListener);
final StatementContext result = parser.statement();
errorListener.validate();
// Walk the resulting tree and replace each children with an immutable list, lowering memory requirements
// and making sure the resulting tree will not get accidentally modified. An alternative would be to use
// org.antlr.v4.runtime.Parser.TrimToSizeListener, but that does not make the tree immutable.
ParseTreeWalker.DEFAULT.walk(MAKE_IMMUTABLE_LISTENER, result);
return result;
}
YangStatementStreamSource.java 文件源码
java
阅读 17
收藏 0
点赞 0
评论 0
项目:yangtools
作者:
评论列表
文章目录