#include <iostream>#include "antlr4-runtime.h"#include "PlayScriptLexer.h"#include "PlayScriptParser.h"#include "IRGen.h"#include "ASTEvaluator.h"#include "PlayScriptJIT.h"using namespace play;using namespace antlr4;int main(int, const char **) {InitializeNativeTarget();InitializeNativeTargetAsmPrinter();InitializeNativeTargetAsmParser();//ANTLRInputStream input("double a = 3.0; double foo(double x, double y){return x + y + 2.0;}; foo(3.0, 6.0); a+10.0;");ANTLRInputStream input("double foo(double x) { return (1.0+2.0+x)*(x+(1.0+2.0));} foo(3.0);");PlayScriptLexer lexer(&input);CommonTokenStream tokens(&lexer);tokens.fill();for (auto token : tokens.getTokens()) {std::cout << token->toString() << std::endl;}PlayScriptParser parser(&tokens);tree::ParseTree *tree = parser.prog();std::cout << tree->toStringTree(&parser) << std::endl;//ASTEvaluator astEvaluator;//astEvaluator.visit(tree);IRGen irGen;// TheJIT = llvm::make_unique<PlayScriptJIT>();irGen.InitializeModuleAndPassManager();// std::unique_ptr<PlayScriptJIT> TheJIT;// DataLayout dl = TheJIT->getTargetMachine().createDataLayout();// TheModule->setDataLayout(dl);irGen.visit(tree);irGen.PrintIR();irGen.ExecuteJIT();return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。