/**
* Processes an {@link org.antlr.v4.runtime.ANTLRInputStream}.
*
* @param inputStream The input stream.
* @return The document.
*
* @throws com.torchmind.candle.api.error.CandleException when lexing or parsing fails.
*/
@Nonnull
protected Candle read (@Nonnull ANTLRInputStream inputStream) throws CandleException {
try {
CandleLexer lexer = new CandleLexer (inputStream);
lexer.addErrorListener (new LexerErrorListener ());
CommonTokenStream tokenStream = new CommonTokenStream (lexer);
CandleParser parser = new CandleParser (tokenStream);
parser.setErrorHandler (new ParserErrorStrategy ());
ParseTreeWalker walker = new ParseTreeWalker ();
CandleListener listener = new CandleListener (this);
this.clear ();
walker.walk (listener, parser.candle ());
return this;
} catch (RuntimeException ex) {
if (ex.getCause () instanceof CandleException) { throw ((CandleException) ex.getCause ()); }
throw ex;
}
}
Candle.java 文件源码
java
阅读 17
收藏 0
点赞 0
评论 0
项目:Candle
作者:
评论列表
文章目录