At least we got an empty Module now ...
This commit is contained in:
@@ -3,12 +3,14 @@
|
|||||||
|
|
||||||
#include "ASTVisitor.h"
|
#include "ASTVisitor.h"
|
||||||
#include "llvm/IRBuilder.h"
|
#include "llvm/IRBuilder.h"
|
||||||
|
#include "llvm/Module.h"
|
||||||
|
#include "llvm/PassManager.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
class CodeGenVisitor : public ASTVisitor {
|
class CodeGenVisitor : public ASTVisitor {
|
||||||
public:
|
public:
|
||||||
CodeGenVisitor();
|
CodeGenVisitor(llvm::Module* module, llvm::FunctionPassManager* fpm);
|
||||||
virtual ~CodeGenVisitor();
|
virtual ~CodeGenVisitor();
|
||||||
|
|
||||||
virtual void visit(AssignmentExpression* e);
|
virtual void visit(AssignmentExpression* e);
|
||||||
@@ -29,6 +31,8 @@ public:
|
|||||||
virtual void visit(VariableDefinition* e);
|
virtual void visit(VariableDefinition* e);
|
||||||
private:
|
private:
|
||||||
llvm::IRBuilder<>* builder_;
|
llvm::IRBuilder<>* builder_;
|
||||||
|
llvm::FunctionPassManager* fpm_;
|
||||||
|
llvm::Module* module_;
|
||||||
std::map<std::string, llvm::Value*> namedValues_;
|
std::map<std::string, llvm::Value*> namedValues_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
#include "AST/CodeGenVisitor.h"
|
#include "AST/CodeGenVisitor.h"
|
||||||
|
|
||||||
CodeGenVisitor::CodeGenVisitor() {
|
CodeGenVisitor::CodeGenVisitor(llvm::Module* module, llvm::FunctionPassManager *fpm) {
|
||||||
builder_ = new llvm::IRBuilder<>(llvm::getGlobalContext());
|
builder_ = new llvm::IRBuilder<>(llvm::getGlobalContext());
|
||||||
|
module_ = module;
|
||||||
|
fpm_ = fpm;
|
||||||
}
|
}
|
||||||
|
|
||||||
CodeGenVisitor::~CodeGenVisitor() {
|
CodeGenVisitor::~CodeGenVisitor() {
|
||||||
//
|
delete builder_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CodeGenVisitor::visit(AssignmentExpression* e) {
|
void CodeGenVisitor::visit(AssignmentExpression* e) {
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ int main() {
|
|||||||
|
|
||||||
fpm->doInitialization();
|
fpm->doInitialization();
|
||||||
|
|
||||||
CodeGenVisitor* cv = new CodeGenVisitor();
|
CodeGenVisitor* cv = new CodeGenVisitor(module, fpm);
|
||||||
|
|
||||||
void* parser = scullyParserAlloc(malloc);
|
void* parser = scullyParserAlloc(malloc);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user