#ifndef _CALC_VISITOR_HPP_ #define _CALC_VISITOR_HPP_ #include "BasicBlock.h" #include "Constant.h" #include "Function.h" #include "IRBuilder.h" #include "Module.h" #include "Type.h" #include "calc_ast.hpp" class CalcBuilder : public CalcASTVisitor { public: std::unique_ptr build(CalcAST &ast); private: virtual void visit(CalcASTInput &) override final; virtual void visit(CalcASTNum &) override final; virtual void visit(CalcASTExpression &) override final; virtual void visit(CalcASTTerm &) override final; IRBuilder *builder; Value *val; Type *TyInt32; std::unique_ptr module; }; #endif