sapphire/src/IRBuilder.h

23 lines
504 B
C++

#pragma once
#include "AST/ASTNode.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
class ASTNode;
class IRBuilder
{
std::unique_ptr<llvm::LLVMContext> context;
std::unique_ptr<llvm::IRBuilder<>> builder;
std::unique_ptr<llvm::Module> module;
public:
IRBuilder();
void create_main_function(std::shared_ptr<ASTNode> expression);
llvm::IRBuilder<>* getBuilder();
std::string getGeneratedIR();
};