#pragma once #include #include "llvm/IR/IRBuilder.h" namespace bolt { class Node; class SourceFile; class Expression; class LLVMCodeGen { llvm::LLVMContext* TheContext; std::unique_ptr> Builder; std::unique_ptr Module; public: LLVMCodeGen(llvm::LLVMContext* TheContext); llvm::Value* generateExpression(Expression* E); void generateElement(Node* Element); void generate(SourceFile* SF); }; }