Compiler.java 文件源码

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

项目:vba-interpreter 作者:
public Statement compileExpression(String expr, MethodDecl method, ModuleInstance module) throws CompileException {
    VbaLexer lexer = new VbaLexer(new org.antlr.v4.runtime.ANTLRInputStream(expr));

    CommonTokenStream tokenStream = new CommonTokenStream(lexer);
    VbaParser parser = new VbaParser(tokenStream);
    parser.setBuildParseTree(true);
    parser.addErrorListener(new BaseErrorListener() {

        @Override
        public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine,
                String msg, RecognitionException e) {
            // errors.add(new CompileException(new SourceLocation(file, line, charPositionInLine, 0),
            // CompileException.SYNTAX_ERROR, msg, ((CommonToken) offendingSymbol).getText()));
            System.err.println(msg);
        }

    });

    EvalStmtContext eval = parser.evalStmt();
    ParserRuleContext c = (ParserRuleContext) eval.getChild(0);
    if (c instanceof ValueStmtContext) {
        return this.compileValueStatement((ValueStmtContext) c, method).getStatement();
    } else {
        return new BlockCompiler(method, this).compileBlockStatement(c);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号