llvm-journey

LLVM Journey
git clone git://0xff.ir/g/llvm-journey.git
Log | Files | Refs | README | LICENSE

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:
MMakefile | 7+++----
Mkaleidoscope_ast.hpp | 28+++++++---------------------
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;