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);
}
}
Compiler.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:vba-interpreter
作者:
评论列表
文章目录