23 lines
504 B
C
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();
|
||
|
};
|