diff --git a/CMakeLists.txt b/CMakeLists.txt index 77c5a88..f756e38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,4 +12,6 @@ file(GLOB_RECURSE SOURCES src/**/*.cpp) add_executable(brb ${SOURCES}) +target_include_directories(brb PRIVATE ${CMAKE_SOURCE_DIR}/src) + target_link_libraries(brb llvm) diff --git a/src/CodeGenerator.cpp b/src/Compiler/CodeGenerator.cpp similarity index 100% rename from src/CodeGenerator.cpp rename to src/Compiler/CodeGenerator.cpp diff --git a/src/CodeGenerator.h b/src/Compiler/CodeGenerator.h similarity index 58% rename from src/CodeGenerator.h rename to src/Compiler/CodeGenerator.h index 48efa5d..fc69427 100644 --- a/src/CodeGenerator.h +++ b/src/Compiler/CodeGenerator.h @@ -3,13 +3,13 @@ #include -#include "llvm/IR/Module.h" -#include "llvm/Support/FileSystem.h" -#include "llvm/IR/LegacyPassManager.h" -#include "llvm/Target/TargetMachine.h" -#include "llvm/MC/TargetRegistry.h" -#include "llvm/Support/TargetSelect.h" -#include "llvm/TargetParser/Host.h" +#include +#include +#include +#include +#include +#include +#include using namespace std; diff --git a/src/ModuleBuilder.cpp b/src/Compiler/ModuleBuilder.cpp similarity index 100% rename from src/ModuleBuilder.cpp rename to src/Compiler/ModuleBuilder.cpp diff --git a/src/ModuleBuilder.h b/src/Compiler/ModuleBuilder.h similarity index 89% rename from src/ModuleBuilder.h rename to src/Compiler/ModuleBuilder.h index 3a4e732..cd88b9d 100644 --- a/src/ModuleBuilder.h +++ b/src/Compiler/ModuleBuilder.h @@ -3,15 +3,15 @@ #include -#include "llvm/IR/Module.h" -#include "llvm/IR/IRBuilder.h" -#include "llvm/IR/LLVMContext.h" -#include "llvm/IR/Constants.h" -#include "llvm/Support/raw_ostream.h" -#include "llvm/IR/Verifier.h" +#include +#include +#include +#include +#include +#include -#include "Expression.h" -#include "Statement.h" +#include "Parser/Expression.h" +#include "Parser/Statement.h" using namespace std; diff --git a/src/Lexer.cpp b/src/Lexer/Lexer.cpp similarity index 100% rename from src/Lexer.cpp rename to src/Lexer/Lexer.cpp diff --git a/src/Lexer.h b/src/Lexer/Lexer.h similarity index 100% rename from src/Lexer.h rename to src/Lexer/Lexer.h diff --git a/src/Token.cpp b/src/Lexer/Token.cpp similarity index 100% rename from src/Token.cpp rename to src/Lexer/Token.cpp diff --git a/src/Token.h b/src/Lexer/Token.h similarity index 100% rename from src/Token.h rename to src/Lexer/Token.h diff --git a/src/Expression.cpp b/src/Parser/Expression.cpp similarity index 100% rename from src/Expression.cpp rename to src/Parser/Expression.cpp diff --git a/src/Expression.h b/src/Parser/Expression.h similarity index 99% rename from src/Expression.h rename to src/Parser/Expression.h index 1e6c337..a0a9a03 100644 --- a/src/Expression.h +++ b/src/Parser/Expression.h @@ -1,7 +1,7 @@ #ifndef EXPRESSION_H #define EXPRESSION_H -#include "Token.h" +#include "Lexer/Token.h" #include "Statement.h" #include "Types.h" diff --git a/src/Parser.cpp b/src/Parser/Parser.cpp similarity index 100% rename from src/Parser.cpp rename to src/Parser/Parser.cpp diff --git a/src/Parser.h b/src/Parser/Parser.h similarity index 98% rename from src/Parser.h rename to src/Parser/Parser.h index d3bd810..aa8d1ea 100644 --- a/src/Parser.h +++ b/src/Parser/Parser.h @@ -3,7 +3,7 @@ #include -#include "Token.h" +#include "Lexer/Token.h" #include "Expression.h" #include "Statement.h" diff --git a/src/Statement.cpp b/src/Parser/Statement.cpp similarity index 100% rename from src/Statement.cpp rename to src/Parser/Statement.cpp diff --git a/src/Statement.h b/src/Parser/Statement.h similarity index 99% rename from src/Statement.h rename to src/Parser/Statement.h index c92bdf4..f48f2a3 100644 --- a/src/Statement.h +++ b/src/Parser/Statement.h @@ -3,7 +3,7 @@ #include -#include "Token.h" +#include "Lexer/Token.h" #include "Expression.h" #include "Types.h" diff --git a/src/main.cpp b/src/main.cpp index f6ecc7a..f95a387 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,16 +2,16 @@ #include #include -#include "llvm/Support/CommandLine.h" +#include -#include "Token.h" -#include "Lexer.h" +#include "Lexer/Token.h" +#include "Lexer/Lexer.h" -#include "Expression.h" -#include "Parser.h" +#include "Parser/Expression.h" +#include "Parser/Parser.h" -#include "ModuleBuilder.h" -#include "CodeGenerator.h" +#include "Compiler/ModuleBuilder.h" +#include "Compiler/CodeGenerator.h" using namespace std; @@ -80,8 +80,8 @@ int main(int argc, char **argv) { module->print(llvm::outs(), nullptr); } - CodeGenerator codeGenerator(module); - codeGenerator.generateObjectFile(outputKind); + //CodeGenerator codeGenerator(module); + //codeGenerator.generateObjectFile(outputKind); return 0; } \ No newline at end of file