Candle.java 文件源码

java
阅读 17 收藏 0 点赞 0 评论 0

项目:Candle 作者:
/**
 * 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;
        }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号