commit 126cff24aa4b4555da2a74757fa3f184d775d7be
parent aa0b48a376aa8b07b5e909a01c549ae4a8dd1b22
Author: Mohammad-Reza Nabipoor <m.nabipoor@yahoo.com>
Date: Sun, 6 Sep 2020 03:54:09 +0430
kaleidoscope_ast.hpp: Remove codegen from ASTNode
Diffstat:
2 files changed, 10 insertions(+), 25 deletions(-)
diff --git a/Makefile b/Makefile
@@ -30,8 +30,7 @@ tests: $(tbin)
.PHONY: examples
examples: $(ebin)
-kaleidoscope_ast.o: kaleidoscope_ast.cpp kaleidoscope_ast.hpp \
- kaleidoscope_codegen.hpp
+kaleidoscope_ast.o: kaleidoscope_ast.cpp kaleidoscope_ast.hpp
kaleidoscope_codegen.o: kaleidoscope_codegen.cpp kaleidoscope_codegen.hpp \
kaleidoscope_ast.hpp
@@ -51,7 +50,7 @@ kaleidoscope_ast.test.o: CXXFLAGS += $(tflags)
kaleidoscope_ast.test.o: kaleidoscope_ast.hpp $(catch2)
kaleidoscope_ast.test.o: tests/kaleidoscope_ast.test.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
-kaleidoscope_ast.test: kaleidoscope_ast.o kaleidoscope_codegen.o
+kaleidoscope_ast.test: kaleidoscope_ast.o
kaleidoscope_ast.test: kaleidoscope_ast.test.o
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
@@ -59,7 +58,7 @@ kaleidoscope_parser.test.o: CXXFLAGS += $(tflags)
kaleidoscope_parser.test.o: kaleidoscope_parser.hpp kaleidoscope_tokens.hpp
kaleidoscope_parser.test.o: tests/kaleidoscope_parser.test.cpp $(catch2)
$(CXX) $(CXXFLAGS) -c -o $@ $<
-kaleidoscope_parser.test: kaleidoscope_ast.o kaleidoscope_codegen.o
+kaleidoscope_parser.test: kaleidoscope_ast.o
kaleidoscope_parser.test: kaleidoscope_parser.test.o
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(LLVM_LIBS)
diff --git a/kaleidoscope_ast.hpp b/kaleidoscope_ast.hpp
@@ -1,19 +1,20 @@
#pragma once
-#include "kaleidoscope_codegen.hpp"
-
#include <cassert>
#include <memory>
#include <string>
#include <vector>
-namespace llvm {
-class Value;
-}
-
namespace kal {
+struct Number;
+struct Variable;
+struct BinaryOp;
+struct Call;
+struct Prototype;
+struct Function;
+
std::string
to_string(const Number&);
@@ -115,13 +116,6 @@ public:
return n.self_->to_string();
}
- friend llvm::Value* codegen(const ASTNode& n)
- {
- assert(n.self_ != nullptr);
-
- return n.self_->codegen();
- }
-
friend NodeType node_type(const ASTNode& n)
{
assert(n.self_ != nullptr);
@@ -160,7 +154,6 @@ private:
{
virtual ~Concept() = default;
virtual std::string to_string(void) const = 0;
- virtual llvm::Value* codegen(void) const = 0;
virtual NodeType node_type(void) const = 0;
};
@@ -178,13 +171,6 @@ private:
return to_string(value_);
}
- llvm::Value* codegen(void) const override
- {
- using kal::codegen; // FIXME
-
- return codegen(value_);
- }
-
NodeType node_type(void) const override
{
using kal::node_type;