From 2291b700be21cba30dd12962e07e4e1e9ac32c42 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Fri, 15 May 2020 12:33:26 +0200
Subject: [PATCH] Continue files displacement

AST related files are now in the 'language/ast' directory
---
 CMakeLists.txt                                |  1 +
 src/language/CMakeLists.txt                   | 29 ++++--------------
 src/language/FunctionTable.hpp                |  4 +--
 src/language/PugsFunctionAdapter.hpp          |  4 +--
 src/language/PugsParser.cpp                   | 24 +++++++--------
 src/language/SymbolTable.hpp                  |  2 +-
 src/language/{ => ast}/ASTBuilder.cpp         |  4 +--
 src/language/{ => ast}/ASTBuilder.hpp         |  2 +-
 src/language/{ => ast}/ASTModulesImporter.cpp |  2 +-
 src/language/{ => ast}/ASTModulesImporter.hpp |  2 +-
 src/language/{ => ast}/ASTNode.hpp            |  2 +-
 .../ASTNodeAffectationExpressionBuilder.cpp   |  4 +--
 .../ASTNodeAffectationExpressionBuilder.hpp   |  2 +-
 ...ASTNodeArraySubscriptExpressionBuilder.cpp |  2 +-
 ...ASTNodeArraySubscriptExpressionBuilder.hpp |  2 +-
 ...ASTNodeBinaryOperatorExpressionBuilder.cpp |  2 +-
 ...ASTNodeBinaryOperatorExpressionBuilder.hpp |  2 +-
 ...STNodeBuiltinFunctionExpressionBuilder.cpp |  6 ++--
 ...STNodeBuiltinFunctionExpressionBuilder.hpp |  4 +--
 src/language/{ => ast}/ASTNodeDataType.cpp    |  4 +--
 src/language/{ => ast}/ASTNodeDataType.hpp    |  0
 .../{ => ast}/ASTNodeDataTypeBuilder.cpp      |  4 +--
 .../{ => ast}/ASTNodeDataTypeBuilder.hpp      |  2 +-
 .../{ => ast}/ASTNodeDataTypeChecker.cpp      |  2 +-
 .../{ => ast}/ASTNodeDataTypeChecker.hpp      |  2 +-
 .../{ => ast}/ASTNodeDataTypeFlattener.cpp    |  2 +-
 .../{ => ast}/ASTNodeDataTypeFlattener.hpp    |  4 +--
 ...TNodeDeclarationToAffectationConverter.cpp |  2 +-
 ...TNodeDeclarationToAffectationConverter.hpp |  2 +-
 .../{ => ast}/ASTNodeEmptyBlockCleaner.cpp    |  2 +-
 .../{ => ast}/ASTNodeEmptyBlockCleaner.hpp    |  2 +-
 .../{ => ast}/ASTNodeExpressionBuilder.cpp    | 18 +++++------
 .../{ => ast}/ASTNodeExpressionBuilder.hpp    |  2 +-
 ...odeFunctionEvaluationExpressionBuilder.cpp |  6 ++--
 ...odeFunctionEvaluationExpressionBuilder.hpp |  2 +-
 .../ASTNodeFunctionExpressionBuilder.cpp      |  6 ++--
 .../ASTNodeFunctionExpressionBuilder.hpp      |  4 +--
 .../ASTNodeIncDecExpressionBuilder.cpp        |  3 +-
 .../ASTNodeIncDecExpressionBuilder.hpp        |  2 +-
 .../{ => ast}/ASTNodeJumpPlacementChecker.cpp |  4 +--
 .../{ => ast}/ASTNodeJumpPlacementChecker.hpp |  2 +-
 ...STNodeListAffectationExpressionBuilder.cpp |  6 ++--
 ...STNodeListAffectationExpressionBuilder.hpp |  4 +--
 .../ASTNodeNaturalConversionChecker.cpp       |  2 +-
 .../ASTNodeNaturalConversionChecker.hpp       |  6 ++--
 src/language/{ => ast}/ASTNodeSubDataType.hpp |  4 +--
 src/language/{ => ast}/ASTNodeTypeCleaner.hpp |  2 +-
 .../ASTNodeUnaryOperatorExpressionBuilder.cpp |  2 +-
 .../ASTNodeUnaryOperatorExpressionBuilder.hpp |  2 +-
 .../ASTSymbolInitializationChecker.cpp        |  2 +-
 .../ASTSymbolInitializationChecker.hpp        |  2 +-
 .../{ => ast}/ASTSymbolTableBuilder.cpp       |  2 +-
 .../{ => ast}/ASTSymbolTableBuilder.hpp       |  2 +-
 src/language/ast/CMakeLists.txt               | 30 +++++++++++++++++++
 src/language/modules/ModuleRepository.cpp     |  2 +-
 .../node_processor/ASTNodeListProcessor.hpp   |  2 +-
 .../ArraySubscriptProcessor.hpp               |  2 +-
 .../BinaryExpressionProcessor.hpp             |  2 +-
 .../ConcatExpressionProcessor.hpp             |  2 +-
 .../node_processor/DoWhileProcessor.hpp       |  2 +-
 src/language/node_processor/ForProcessor.hpp  |  2 +-
 src/language/node_processor/IfProcessor.hpp   |  2 +-
 .../IncDecExpressionProcessor.hpp             |  2 +-
 .../node_processor/LocalNameProcessor.hpp     |  2 +-
 src/language/node_processor/NameProcessor.hpp |  2 +-
 .../node_processor/OStreamProcessor.hpp       |  2 +-
 .../node_processor/TupleToVectorProcessor.hpp |  2 +-
 .../node_processor/ValueProcessor.hpp         |  2 +-
 .../node_processor/WhileProcessor.hpp         |  2 +-
 src/language/utils/ASTDotPrinter.hpp          |  2 +-
 src/language/utils/ASTNodeDataTypeTraits.hpp  |  2 +-
 src/language/utils/ASTPrinter.hpp             |  2 +-
 .../utils/BuiltinFunctionEmbedder.hpp         |  2 +-
 tests/CMakeLists.txt                          |  1 +
 tests/test_ASTBuilder.cpp                     |  2 +-
 tests/test_ASTDotPrinter.cpp                  |  2 +-
 tests/test_ASTModulesImporter.cpp             |  8 ++---
 tests/test_ASTNode.cpp                        |  2 +-
 ...st_ASTNodeAffectationExpressionBuilder.cpp | 16 +++++-----
 ...ASTNodeArraySubscriptExpressionBuilder.cpp |  4 +--
 ...ASTNodeBinaryOperatorExpressionBuilder.cpp | 14 ++++-----
 ...STNodeBuiltinFunctionExpressionBuilder.cpp | 16 +++++-----
 tests/test_ASTNodeDataType.cpp                |  4 +--
 tests/test_ASTNodeDataTypeBuilder.cpp         |  6 ++--
 tests/test_ASTNodeDataTypeChecker.cpp         |  8 ++---
 tests/test_ASTNodeDataTypeFlattener.cpp       | 12 ++++----
 ...TNodeDeclarationToAffectationConverter.cpp |  8 ++---
 tests/test_ASTNodeEmptyBlockCleaner.cpp       | 14 ++++-----
 tests/test_ASTNodeExpressionBuilder.cpp       | 12 ++++----
 ...odeFunctionEvaluationExpressionBuilder.cpp | 14 ++++-----
 .../test_ASTNodeFunctionExpressionBuilder.cpp | 16 +++++-----
 tests/test_ASTNodeIncDecExpressionBuilder.cpp | 14 ++++-----
 tests/test_ASTNodeJumpPlacementChecker.cpp    |  8 ++---
 ...STNodeListAffectationExpressionBuilder.cpp | 14 ++++-----
 tests/test_ASTNodeListProcessor.cpp           | 12 ++++----
 .../test_ASTNodeNaturalConversionChecker.cpp  |  4 +--
 tests/test_ASTNodeTypeCleaner.cpp             |  8 ++---
 ..._ASTNodeUnaryOperatorExpressionBuilder.cpp | 14 ++++-----
 tests/test_ASTPrinter.cpp                     |  2 +-
 tests/test_ASTSymbolInitializationChecker.cpp |  6 ++--
 tests/test_ASTSymbolTableBuilder.cpp          |  4 +--
 tests/test_AffectationProcessor.cpp           | 14 ++++-----
 tests/test_AffectationToStringProcessor.cpp   | 14 ++++-----
 tests/test_ArraySubscriptProcessor.cpp        | 16 +++++-----
 .../test_BinaryExpressionProcessor_utils.hpp  | 12 ++++----
 tests/test_BuiltinFunctionProcessor.cpp       | 14 ++++-----
 tests/test_ConcatExpressionProcessor.cpp      | 14 ++++-----
 tests/test_DoWhileProcessor.cpp               | 14 ++++-----
 tests/test_ForProcessor.cpp                   | 14 ++++-----
 tests/test_FunctionProcessor.cpp              | 14 ++++-----
 tests/test_IfProcessor.cpp                    | 12 ++++----
 tests/test_IncDecExpressionProcessor.cpp      | 12 ++++----
 tests/test_ListAffectationProcessor.cpp       | 12 ++++----
 tests/test_NameProcessor.cpp                  | 12 ++++----
 tests/test_OStreamProcessor.cpp               | 12 ++++----
 tests/test_TupleToVectorProcessor.cpp         | 14 ++++-----
 tests/test_UnaryExpressionProcessor.cpp       | 12 ++++----
 tests/test_WhileProcessor.cpp                 | 14 ++++-----
 118 files changed, 383 insertions(+), 369 deletions(-)
 rename src/language/{ => ast}/ASTBuilder.cpp (99%)
 rename src/language/{ => ast}/ASTBuilder.hpp (93%)
 rename src/language/{ => ast}/ASTModulesImporter.cpp (96%)
 rename src/language/{ => ast}/ASTModulesImporter.hpp (94%)
 rename src/language/{ => ast}/ASTNode.hpp (98%)
 rename src/language/{ => ast}/ASTNodeAffectationExpressionBuilder.cpp (98%)
 rename src/language/{ => ast}/ASTNodeAffectationExpressionBuilder.hpp (88%)
 rename src/language/{ => ast}/ASTNodeArraySubscriptExpressionBuilder.cpp (93%)
 rename src/language/{ => ast}/ASTNodeArraySubscriptExpressionBuilder.hpp (88%)
 rename src/language/{ => ast}/ASTNodeBinaryOperatorExpressionBuilder.cpp (99%)
 rename src/language/{ => ast}/ASTNodeBinaryOperatorExpressionBuilder.hpp (88%)
 rename src/language/{ => ast}/ASTNodeBuiltinFunctionExpressionBuilder.cpp (97%)
 rename src/language/{ => ast}/ASTNodeBuiltinFunctionExpressionBuilder.hpp (93%)
 rename src/language/{ => ast}/ASTNodeDataType.cpp (97%)
 rename src/language/{ => ast}/ASTNodeDataType.hpp (100%)
 rename src/language/{ => ast}/ASTNodeDataTypeBuilder.cpp (99%)
 rename src/language/{ => ast}/ASTNodeDataTypeBuilder.hpp (91%)
 rename src/language/{ => ast}/ASTNodeDataTypeChecker.cpp (90%)
 rename src/language/{ => ast}/ASTNodeDataTypeChecker.hpp (88%)
 rename src/language/{ => ast}/ASTNodeDataTypeFlattener.cpp (97%)
 rename src/language/{ => ast}/ASTNodeDataTypeFlattener.hpp (80%)
 rename src/language/{ => ast}/ASTNodeDeclarationToAffectationConverter.cpp (90%)
 rename src/language/{ => ast}/ASTNodeDeclarationToAffectationConverter.hpp (91%)
 rename src/language/{ => ast}/ASTNodeEmptyBlockCleaner.cpp (94%)
 rename src/language/{ => ast}/ASTNodeEmptyBlockCleaner.hpp (88%)
 rename src/language/{ => ast}/ASTNodeExpressionBuilder.cpp (93%)
 rename src/language/{ => ast}/ASTNodeExpressionBuilder.hpp (87%)
 rename src/language/{ => ast}/ASTNodeFunctionEvaluationExpressionBuilder.cpp (76%)
 rename src/language/{ => ast}/ASTNodeFunctionEvaluationExpressionBuilder.hpp (89%)
 rename src/language/{ => ast}/ASTNodeFunctionExpressionBuilder.cpp (99%)
 rename src/language/{ => ast}/ASTNodeFunctionExpressionBuilder.hpp (93%)
 rename src/language/{ => ast}/ASTNodeIncDecExpressionBuilder.cpp (97%)
 rename src/language/{ => ast}/ASTNodeIncDecExpressionBuilder.hpp (87%)
 rename src/language/{ => ast}/ASTNodeJumpPlacementChecker.cpp (93%)
 rename src/language/{ => ast}/ASTNodeJumpPlacementChecker.hpp (89%)
 rename src/language/{ => ast}/ASTNodeListAffectationExpressionBuilder.cpp (98%)
 rename src/language/{ => ast}/ASTNodeListAffectationExpressionBuilder.hpp (90%)
 rename src/language/{ => ast}/ASTNodeNaturalConversionChecker.cpp (98%)
 rename src/language/{ => ast}/ASTNodeNaturalConversionChecker.hpp (88%)
 rename src/language/{ => ast}/ASTNodeSubDataType.hpp (71%)
 rename src/language/{ => ast}/ASTNodeTypeCleaner.hpp (96%)
 rename src/language/{ => ast}/ASTNodeUnaryOperatorExpressionBuilder.cpp (98%)
 rename src/language/{ => ast}/ASTNodeUnaryOperatorExpressionBuilder.hpp (88%)
 rename src/language/{ => ast}/ASTSymbolInitializationChecker.cpp (99%)
 rename src/language/{ => ast}/ASTSymbolInitializationChecker.hpp (89%)
 rename src/language/{ => ast}/ASTSymbolTableBuilder.cpp (98%)
 rename src/language/{ => ast}/ASTSymbolTableBuilder.hpp (92%)
 create mode 100644 src/language/ast/CMakeLists.txt

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 17e200bf9..a457851f3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -395,6 +395,7 @@ target_link_libraries(
   PugsMesh
   PugsUtils
   PugsLanguage
+  PugsLanguageAST
   PugsLanguageModules
   PugsLanguageUtils
   kokkos
diff --git a/src/language/CMakeLists.txt b/src/language/CMakeLists.txt
index 2cf5f1473..b9c6094e4 100644
--- a/src/language/CMakeLists.txt
+++ b/src/language/CMakeLists.txt
@@ -1,37 +1,20 @@
 # ------------------- Source files --------------------
 
-add_subdirectory(node_processor)
+add_subdirectory(ast)
 add_subdirectory(modules)
+add_subdirectory(node_processor)
 add_subdirectory(utils)
 
 add_library(
   PugsLanguage
-  ASTBuilder.cpp
-  ASTModulesImporter.cpp
-  ASTNodeAffectationExpressionBuilder.cpp
-  ASTNodeArraySubscriptExpressionBuilder.cpp
-  ASTNodeBinaryOperatorExpressionBuilder.cpp
-  ASTNodeBuiltinFunctionExpressionBuilder.cpp
-  ASTNodeDataType.cpp
-  ASTNodeDataTypeFlattener.cpp
-  ASTNodeDataTypeBuilder.cpp
-  ASTNodeDataTypeChecker.cpp
-  ASTNodeDeclarationToAffectationConverter.cpp
-  ASTNodeEmptyBlockCleaner.cpp
-  ASTNodeExpressionBuilder.cpp
-  ASTNodeFunctionExpressionBuilder.cpp
-  ASTNodeFunctionEvaluationExpressionBuilder.cpp
-  ASTNodeIncDecExpressionBuilder.cpp
-  ASTNodeJumpPlacementChecker.cpp
-  ASTNodeListAffectationExpressionBuilder.cpp
-  ASTNodeNaturalConversionChecker.cpp
-  ASTNodeUnaryOperatorExpressionBuilder.cpp
-  ASTSymbolTableBuilder.cpp
-  ASTSymbolInitializationChecker.cpp
   PugsParser.cpp)
 
 # Additional dependencies
 add_dependencies(PugsLanguage
+  PugsLanguage
+  PugsLanguageAST
+  PugsLanguageModules
+  PugsLanguageUtils
   PugsUtils)
 
 # ------------------- Installation --------------------
diff --git a/src/language/FunctionTable.hpp b/src/language/FunctionTable.hpp
index 614817667..43232fd60 100644
--- a/src/language/FunctionTable.hpp
+++ b/src/language/FunctionTable.hpp
@@ -1,8 +1,8 @@
 #ifndef FUNCTION_TABLE_HPP
 #define FUNCTION_TABLE_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeDataType.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 #include <language/utils/DataVariant.hpp>
 #include <utils/PugsAssert.hpp>
 
diff --git a/src/language/PugsFunctionAdapter.hpp b/src/language/PugsFunctionAdapter.hpp
index fc2b752cb..e110dd4ef 100644
--- a/src/language/PugsFunctionAdapter.hpp
+++ b/src/language/PugsFunctionAdapter.hpp
@@ -1,9 +1,9 @@
 #ifndef PUGS_FUNCTION_ADAPTER_HPP
 #define PUGS_FUNCTION_ADAPTER_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeDataType.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 #include <language/node_processor/ExecutionPolicy.hpp>
 #include <language/utils/ASTNodeDataTypeTraits.hpp>
 #include <language/utils/RuntimeError.hpp>
diff --git a/src/language/PugsParser.cpp b/src/language/PugsParser.cpp
index 1c4163f4b..eced83ead 100644
--- a/src/language/PugsParser.cpp
+++ b/src/language/PugsParser.cpp
@@ -1,19 +1,19 @@
 #include <language/PugsParser.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDataTypeChecker.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeEmptyBlockCleaner.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeJumpPlacementChecker.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolInitializationChecker.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeChecker.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeEmptyBlockCleaner.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeJumpPlacementChecker.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolInitializationChecker.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTDotPrinter.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Exceptions.hpp>
diff --git a/src/language/SymbolTable.hpp b/src/language/SymbolTable.hpp
index 2187df927..52866783b 100644
--- a/src/language/SymbolTable.hpp
+++ b/src/language/SymbolTable.hpp
@@ -1,9 +1,9 @@
 #ifndef SYMBOL_TABLE_HPP
 #define SYMBOL_TABLE_HPP
 
-#include <language/ASTNodeDataType.hpp>
 #include <language/EmbedderTable.hpp>
 #include <language/FunctionTable.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 #include <language/utils/DataVariant.hpp>
 #include <utils/PugsMacros.hpp>
 
diff --git a/src/language/ASTBuilder.cpp b/src/language/ast/ASTBuilder.cpp
similarity index 99%
rename from src/language/ASTBuilder.cpp
rename to src/language/ast/ASTBuilder.cpp
index 709953c67..316c9e604 100644
--- a/src/language/ASTBuilder.cpp
+++ b/src/language/ast/ASTBuilder.cpp
@@ -1,10 +1,10 @@
-#include <language/ASTBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
 
 using namespace TAO_PEGTL_NAMESPACE;
 
-#include <language/ASTNode.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <utils/PugsAssert.hpp>
 
 #include <pegtl/contrib/parse_tree.hpp>
diff --git a/src/language/ASTBuilder.hpp b/src/language/ast/ASTBuilder.hpp
similarity index 93%
rename from src/language/ASTBuilder.hpp
rename to src/language/ast/ASTBuilder.hpp
index 2691a724d..8939a0938 100644
--- a/src/language/ASTBuilder.hpp
+++ b/src/language/ast/ASTBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_BUILDER_HPP
 #define AST_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 #include <memory>
 
diff --git a/src/language/ASTModulesImporter.cpp b/src/language/ast/ASTModulesImporter.cpp
similarity index 96%
rename from src/language/ASTModulesImporter.cpp
rename to src/language/ast/ASTModulesImporter.cpp
index ea1e19a5b..197f9dcdd 100644
--- a/src/language/ASTModulesImporter.cpp
+++ b/src/language/ast/ASTModulesImporter.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTModulesImporter.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
 
 #include <language/PEGGrammar.hpp>
 
diff --git a/src/language/ASTModulesImporter.hpp b/src/language/ast/ASTModulesImporter.hpp
similarity index 94%
rename from src/language/ASTModulesImporter.hpp
rename to src/language/ast/ASTModulesImporter.hpp
index 3f8b695a4..2b8c081fd 100644
--- a/src/language/ASTModulesImporter.hpp
+++ b/src/language/ast/ASTModulesImporter.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_MODULES_IMPORTER_HPP
 #define AST_MODULES_IMPORTER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/modules/ModuleRepository.hpp>
 
 #include <set>
diff --git a/src/language/ASTNode.hpp b/src/language/ast/ASTNode.hpp
similarity index 98%
rename from src/language/ASTNode.hpp
rename to src/language/ast/ASTNode.hpp
index 9313d90f2..b3dd41ca6 100644
--- a/src/language/ASTNode.hpp
+++ b/src/language/ast/ASTNode.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_HPP
 #define AST_NODE_HPP
 
-#include <language/ASTNodeDataType.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 #include <language/node_processor/ExecutionPolicy.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 #include <language/utils/DataVariant.hpp>
diff --git a/src/language/ASTNodeAffectationExpressionBuilder.cpp b/src/language/ast/ASTNodeAffectationExpressionBuilder.cpp
similarity index 98%
rename from src/language/ASTNodeAffectationExpressionBuilder.cpp
rename to src/language/ast/ASTNodeAffectationExpressionBuilder.cpp
index 2c2962129..fe1eae649 100644
--- a/src/language/ASTNodeAffectationExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeAffectationExpressionBuilder.cpp
@@ -1,8 +1,8 @@
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
 
 #include <algebra/TinyVector.hpp>
-#include <language/ASTNodeNaturalConversionChecker.hpp>
 #include <language/PEGGrammar.hpp>
+#include <language/ast/ASTNodeNaturalConversionChecker.hpp>
 #include <language/node_processor/AffectationProcessor.hpp>
 
 ASTNodeAffectationExpressionBuilder::ASTNodeAffectationExpressionBuilder(ASTNode& n)
diff --git a/src/language/ASTNodeAffectationExpressionBuilder.hpp b/src/language/ast/ASTNodeAffectationExpressionBuilder.hpp
similarity index 88%
rename from src/language/ASTNodeAffectationExpressionBuilder.hpp
rename to src/language/ast/ASTNodeAffectationExpressionBuilder.hpp
index 61f8947ab..820fc9006 100644
--- a/src/language/ASTNodeAffectationExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeAffectationExpressionBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_AFFECTATION_EXPRESSION_BUILDER_HPP
 #define AST_NODE_AFFECTATION_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 struct ASTNodeAffectationExpressionBuilder
 {
diff --git a/src/language/ASTNodeArraySubscriptExpressionBuilder.cpp b/src/language/ast/ASTNodeArraySubscriptExpressionBuilder.cpp
similarity index 93%
rename from src/language/ASTNodeArraySubscriptExpressionBuilder.cpp
rename to src/language/ast/ASTNodeArraySubscriptExpressionBuilder.cpp
index f77c9b9d2..e50b84668 100644
--- a/src/language/ASTNodeArraySubscriptExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeArraySubscriptExpressionBuilder.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeArraySubscriptExpressionBuilder.hpp>
+#include <language/ast/ASTNodeArraySubscriptExpressionBuilder.hpp>
 
 #include <algebra/TinyVector.hpp>
 #include <language/node_processor/ArraySubscriptProcessor.hpp>
diff --git a/src/language/ASTNodeArraySubscriptExpressionBuilder.hpp b/src/language/ast/ASTNodeArraySubscriptExpressionBuilder.hpp
similarity index 88%
rename from src/language/ASTNodeArraySubscriptExpressionBuilder.hpp
rename to src/language/ast/ASTNodeArraySubscriptExpressionBuilder.hpp
index 8d4f97a07..5bf753a77 100644
--- a/src/language/ASTNodeArraySubscriptExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeArraySubscriptExpressionBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_ARRAY_SUBSCRIPT_EXPRESSION_BUILDER_HPP
 #define AST_NODE_ARRAY_SUBSCRIPT_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTNodeArraySubscriptExpressionBuilder
 {
diff --git a/src/language/ASTNodeBinaryOperatorExpressionBuilder.cpp b/src/language/ast/ASTNodeBinaryOperatorExpressionBuilder.cpp
similarity index 99%
rename from src/language/ASTNodeBinaryOperatorExpressionBuilder.cpp
rename to src/language/ast/ASTNodeBinaryOperatorExpressionBuilder.cpp
index cdd0a5b4e..92074474a 100644
--- a/src/language/ASTNodeBinaryOperatorExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeBinaryOperatorExpressionBuilder.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeBinaryOperatorExpressionBuilder.hpp>
+#include <language/ast/ASTNodeBinaryOperatorExpressionBuilder.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <language/node_processor/BinaryExpressionProcessor.hpp>
diff --git a/src/language/ASTNodeBinaryOperatorExpressionBuilder.hpp b/src/language/ast/ASTNodeBinaryOperatorExpressionBuilder.hpp
similarity index 88%
rename from src/language/ASTNodeBinaryOperatorExpressionBuilder.hpp
rename to src/language/ast/ASTNodeBinaryOperatorExpressionBuilder.hpp
index f6f428e21..5ddad1d8c 100644
--- a/src/language/ASTNodeBinaryOperatorExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeBinaryOperatorExpressionBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_BINARY_OPERATOR_EXPRESSION_BUILDER_HPP
 #define AST_NODE_BINARY_OPERATOR_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 struct ASTNodeBinaryOperatorExpressionBuilder
 {
diff --git a/src/language/ASTNodeBuiltinFunctionExpressionBuilder.cpp b/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.cpp
similarity index 97%
rename from src/language/ASTNodeBuiltinFunctionExpressionBuilder.cpp
rename to src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.cpp
index 332f957e4..96cfcfa52 100644
--- a/src/language/ASTNodeBuiltinFunctionExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.cpp
@@ -1,9 +1,9 @@
-#include <language/ASTNodeBuiltinFunctionExpressionBuilder.hpp>
+#include <language/ast/ASTNodeBuiltinFunctionExpressionBuilder.hpp>
 
-#include <language/ASTNodeDataTypeFlattener.hpp>
-#include <language/ASTNodeNaturalConversionChecker.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNodeDataTypeFlattener.hpp>
+#include <language/ast/ASTNodeNaturalConversionChecker.hpp>
 #include <language/node_processor/BuiltinFunctionProcessor.hpp>
 
 PUGS_INLINE std::unique_ptr<IFunctionArgumentConverter>
diff --git a/src/language/ASTNodeBuiltinFunctionExpressionBuilder.hpp b/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.hpp
similarity index 93%
rename from src/language/ASTNodeBuiltinFunctionExpressionBuilder.hpp
rename to src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.hpp
index 475ac8ba1..7aded1c66 100644
--- a/src/language/ASTNodeBuiltinFunctionExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeBuiltinFunctionExpressionBuilder.hpp
@@ -1,8 +1,8 @@
 #ifndef AST_NODE_C_FUNCTION_EXPRESSION_BUILDER_HPP
 #define AST_NODE_C_FUNCTION_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeDataTypeFlattener.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeDataTypeFlattener.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class BuiltinFunctionProcessor;
diff --git a/src/language/ASTNodeDataType.cpp b/src/language/ast/ASTNodeDataType.cpp
similarity index 97%
rename from src/language/ASTNodeDataType.cpp
rename to src/language/ast/ASTNodeDataType.cpp
index 475971e8b..0befade16 100644
--- a/src/language/ASTNodeDataType.cpp
+++ b/src/language/ast/ASTNodeDataType.cpp
@@ -1,7 +1,7 @@
-#include <language/ASTNodeDataType.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 
-#include <language/ASTNode.hpp>
 #include <language/PEGGrammar.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <utils/PugsAssert.hpp>
 
 ASTNodeDataType
diff --git a/src/language/ASTNodeDataType.hpp b/src/language/ast/ASTNodeDataType.hpp
similarity index 100%
rename from src/language/ASTNodeDataType.hpp
rename to src/language/ast/ASTNodeDataType.hpp
diff --git a/src/language/ASTNodeDataTypeBuilder.cpp b/src/language/ast/ASTNodeDataTypeBuilder.cpp
similarity index 99%
rename from src/language/ASTNodeDataTypeBuilder.cpp
rename to src/language/ast/ASTNodeDataTypeBuilder.cpp
index 4f3ccf8f5..d660534b9 100644
--- a/src/language/ASTNodeDataTypeBuilder.cpp
+++ b/src/language/ast/ASTNodeDataTypeBuilder.cpp
@@ -1,8 +1,8 @@
-#include <language/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
 
-#include <language/ASTNodeNaturalConversionChecker.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNodeNaturalConversionChecker.hpp>
 #include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <utils/PugsAssert.hpp>
 
diff --git a/src/language/ASTNodeDataTypeBuilder.hpp b/src/language/ast/ASTNodeDataTypeBuilder.hpp
similarity index 91%
rename from src/language/ASTNodeDataTypeBuilder.hpp
rename to src/language/ast/ASTNodeDataTypeBuilder.hpp
index 761e7f521..93643c82d 100644
--- a/src/language/ASTNodeDataTypeBuilder.hpp
+++ b/src/language/ast/ASTNodeDataTypeBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_DATA_TYPE_BUILDER_HPP
 #define AST_NODE_DATA_TYPE_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTNodeDataTypeBuilder
 {
diff --git a/src/language/ASTNodeDataTypeChecker.cpp b/src/language/ast/ASTNodeDataTypeChecker.cpp
similarity index 90%
rename from src/language/ASTNodeDataTypeChecker.cpp
rename to src/language/ast/ASTNodeDataTypeChecker.cpp
index 889112318..87ecba522 100644
--- a/src/language/ASTNodeDataTypeChecker.cpp
+++ b/src/language/ast/ASTNodeDataTypeChecker.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeDataTypeChecker.hpp>
+#include <language/ast/ASTNodeDataTypeChecker.hpp>
 
 void
 ASTNodeDataTypeChecker::_checkNodeDataTypes(const ASTNode& n)
diff --git a/src/language/ASTNodeDataTypeChecker.hpp b/src/language/ast/ASTNodeDataTypeChecker.hpp
similarity index 88%
rename from src/language/ASTNodeDataTypeChecker.hpp
rename to src/language/ast/ASTNodeDataTypeChecker.hpp
index 7c6de260e..8e6c06d41 100644
--- a/src/language/ASTNodeDataTypeChecker.hpp
+++ b/src/language/ast/ASTNodeDataTypeChecker.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_DATA_TYPE_CHECKER_HPP
 #define AST_NODE_DATA_TYPE_CHECKER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTNodeDataTypeChecker
 {
diff --git a/src/language/ASTNodeDataTypeFlattener.cpp b/src/language/ast/ASTNodeDataTypeFlattener.cpp
similarity index 97%
rename from src/language/ASTNodeDataTypeFlattener.cpp
rename to src/language/ast/ASTNodeDataTypeFlattener.cpp
index 870aec274..7c3fc9d7e 100644
--- a/src/language/ASTNodeDataTypeFlattener.cpp
+++ b/src/language/ast/ASTNodeDataTypeFlattener.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeDataTypeFlattener.hpp>
+#include <language/ast/ASTNodeDataTypeFlattener.hpp>
 
 #include <language/FunctionTable.hpp>
 #include <language/PEGGrammar.hpp>
diff --git a/src/language/ASTNodeDataTypeFlattener.hpp b/src/language/ast/ASTNodeDataTypeFlattener.hpp
similarity index 80%
rename from src/language/ASTNodeDataTypeFlattener.hpp
rename to src/language/ast/ASTNodeDataTypeFlattener.hpp
index 8d02ae16a..081a9491a 100644
--- a/src/language/ASTNodeDataTypeFlattener.hpp
+++ b/src/language/ast/ASTNodeDataTypeFlattener.hpp
@@ -1,8 +1,8 @@
 #ifndef AST_NODE_DATA_TYPE_FLATTENER_HPP
 #define AST_NODE_DATA_TYPE_FLATTENER_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeSubDataType.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeSubDataType.hpp>
 
 #include <vector>
 
diff --git a/src/language/ASTNodeDeclarationToAffectationConverter.cpp b/src/language/ast/ASTNodeDeclarationToAffectationConverter.cpp
similarity index 90%
rename from src/language/ASTNodeDeclarationToAffectationConverter.cpp
rename to src/language/ast/ASTNodeDeclarationToAffectationConverter.cpp
index cc6b1cb4d..368c8051c 100644
--- a/src/language/ASTNodeDeclarationToAffectationConverter.cpp
+++ b/src/language/ast/ASTNodeDeclarationToAffectationConverter.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <utils/PugsAssert.hpp>
diff --git a/src/language/ASTNodeDeclarationToAffectationConverter.hpp b/src/language/ast/ASTNodeDeclarationToAffectationConverter.hpp
similarity index 91%
rename from src/language/ASTNodeDeclarationToAffectationConverter.hpp
rename to src/language/ast/ASTNodeDeclarationToAffectationConverter.hpp
index b57bf3d37..d0c236072 100644
--- a/src/language/ASTNodeDeclarationToAffectationConverter.hpp
+++ b/src/language/ast/ASTNodeDeclarationToAffectationConverter.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_DECLARATION_TO_AFFECTATION_CONVERTER_HPP
 #define AST_NODE_DECLARATION_TO_AFFECTATION_CONVERTER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTNodeDeclarationToAffectationConverter
 {
diff --git a/src/language/ASTNodeEmptyBlockCleaner.cpp b/src/language/ast/ASTNodeEmptyBlockCleaner.cpp
similarity index 94%
rename from src/language/ASTNodeEmptyBlockCleaner.cpp
rename to src/language/ast/ASTNodeEmptyBlockCleaner.cpp
index 532ce0f72..74d80107c 100644
--- a/src/language/ASTNodeEmptyBlockCleaner.cpp
+++ b/src/language/ast/ASTNodeEmptyBlockCleaner.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeEmptyBlockCleaner.hpp>
+#include <language/ast/ASTNodeEmptyBlockCleaner.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <utils/PugsAssert.hpp>
diff --git a/src/language/ASTNodeEmptyBlockCleaner.hpp b/src/language/ast/ASTNodeEmptyBlockCleaner.hpp
similarity index 88%
rename from src/language/ASTNodeEmptyBlockCleaner.hpp
rename to src/language/ast/ASTNodeEmptyBlockCleaner.hpp
index 2ba37c142..53399ce6f 100644
--- a/src/language/ASTNodeEmptyBlockCleaner.hpp
+++ b/src/language/ast/ASTNodeEmptyBlockCleaner.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_EMPTY_BLOCK_CLEANER_HPP
 #define AST_NODE_EMPTY_BLOCK_CLEANER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTNodeEmptyBlockCleaner
 {
diff --git a/src/language/ASTNodeExpressionBuilder.cpp b/src/language/ast/ASTNodeExpressionBuilder.cpp
similarity index 93%
rename from src/language/ASTNodeExpressionBuilder.cpp
rename to src/language/ast/ASTNodeExpressionBuilder.cpp
index e113dfaa5..ebad79c58 100644
--- a/src/language/ASTNodeExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeExpressionBuilder.cpp
@@ -1,12 +1,12 @@
-#include <language/ASTNodeExpressionBuilder.hpp>
-
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeArraySubscriptExpressionBuilder.hpp>
-#include <language/ASTNodeBinaryOperatorExpressionBuilder.hpp>
-#include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
-#include <language/ASTNodeIncDecExpressionBuilder.hpp>
-#include <language/ASTNodeListAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeUnaryOperatorExpressionBuilder.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeArraySubscriptExpressionBuilder.hpp>
+#include <language/ast/ASTNodeBinaryOperatorExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeIncDecExpressionBuilder.hpp>
+#include <language/ast/ASTNodeListAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeUnaryOperatorExpressionBuilder.hpp>
 #include <language/node_processor/ASTNodeExpressionListProcessor.hpp>
 #include <language/node_processor/ASTNodeListProcessor.hpp>
 #include <language/node_processor/BreakProcessor.hpp>
diff --git a/src/language/ASTNodeExpressionBuilder.hpp b/src/language/ast/ASTNodeExpressionBuilder.hpp
similarity index 87%
rename from src/language/ASTNodeExpressionBuilder.hpp
rename to src/language/ast/ASTNodeExpressionBuilder.hpp
index c53affb02..74a2f7209 100644
--- a/src/language/ASTNodeExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeExpressionBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_EXPRESSION_BUILDER_HPP
 #define AST_NODE_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTNodeExpressionBuilder
 {
diff --git a/src/language/ASTNodeFunctionEvaluationExpressionBuilder.cpp b/src/language/ast/ASTNodeFunctionEvaluationExpressionBuilder.cpp
similarity index 76%
rename from src/language/ASTNodeFunctionEvaluationExpressionBuilder.cpp
rename to src/language/ast/ASTNodeFunctionEvaluationExpressionBuilder.cpp
index b7e1b1083..f7081ba0f 100644
--- a/src/language/ASTNodeFunctionEvaluationExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeFunctionEvaluationExpressionBuilder.cpp
@@ -1,8 +1,8 @@
-#include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
 
-#include <language/ASTNodeBuiltinFunctionExpressionBuilder.hpp>
-#include <language/ASTNodeFunctionExpressionBuilder.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNodeBuiltinFunctionExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionExpressionBuilder.hpp>
 
 ASTNodeFunctionEvaluationExpressionBuilder::ASTNodeFunctionEvaluationExpressionBuilder(ASTNode& node)
 {
diff --git a/src/language/ASTNodeFunctionEvaluationExpressionBuilder.hpp b/src/language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp
similarity index 89%
rename from src/language/ASTNodeFunctionEvaluationExpressionBuilder.hpp
rename to src/language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp
index aacadfbd1..5e474f11d 100644
--- a/src/language/ASTNodeFunctionEvaluationExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_FUNCTION_EVALUATION_EXPRESSION_BUILDER_HPP
 #define AST_NODE_FUNCTION_EVALUATION_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 struct ASTNodeFunctionEvaluationExpressionBuilder
 {
diff --git a/src/language/ASTNodeFunctionExpressionBuilder.cpp b/src/language/ast/ASTNodeFunctionExpressionBuilder.cpp
similarity index 99%
rename from src/language/ASTNodeFunctionExpressionBuilder.cpp
rename to src/language/ast/ASTNodeFunctionExpressionBuilder.cpp
index 769a26206..6983a6917 100644
--- a/src/language/ASTNodeFunctionExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeFunctionExpressionBuilder.cpp
@@ -1,10 +1,10 @@
-#include <language/ASTNodeFunctionExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionExpressionBuilder.hpp>
 
-#include <language/ASTNodeDataTypeFlattener.hpp>
-#include <language/ASTNodeNaturalConversionChecker.hpp>
 #include <language/FunctionTable.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNodeDataTypeFlattener.hpp>
+#include <language/ast/ASTNodeNaturalConversionChecker.hpp>
 #include <language/node_processor/FunctionProcessor.hpp>
 #include <language/node_processor/TupleToVectorProcessor.hpp>
 
diff --git a/src/language/ASTNodeFunctionExpressionBuilder.hpp b/src/language/ast/ASTNodeFunctionExpressionBuilder.hpp
similarity index 93%
rename from src/language/ASTNodeFunctionExpressionBuilder.hpp
rename to src/language/ast/ASTNodeFunctionExpressionBuilder.hpp
index 9bb119696..254f11dc8 100644
--- a/src/language/ASTNodeFunctionExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeFunctionExpressionBuilder.hpp
@@ -1,8 +1,8 @@
 #ifndef AST_NODE_FUNCTION_EXPRESSION_BUILDER_HPP
 #define AST_NODE_FUNCTION_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeSubDataType.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeSubDataType.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class FunctionProcessor;
diff --git a/src/language/ASTNodeIncDecExpressionBuilder.cpp b/src/language/ast/ASTNodeIncDecExpressionBuilder.cpp
similarity index 97%
rename from src/language/ASTNodeIncDecExpressionBuilder.cpp
rename to src/language/ast/ASTNodeIncDecExpressionBuilder.cpp
index 87e53ab85..c5eccdfcf 100644
--- a/src/language/ASTNodeIncDecExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeIncDecExpressionBuilder.cpp
@@ -1,4 +1,5 @@
-#include <language/ASTNodeIncDecExpressionBuilder.hpp>
+#include <language/ast/ASTNodeIncDecExpressionBuilder.hpp>
+
 #include <language/PEGGrammar.hpp>
 #include <language/node_processor/IncDecExpressionProcessor.hpp>
 
diff --git a/src/language/ASTNodeIncDecExpressionBuilder.hpp b/src/language/ast/ASTNodeIncDecExpressionBuilder.hpp
similarity index 87%
rename from src/language/ASTNodeIncDecExpressionBuilder.hpp
rename to src/language/ast/ASTNodeIncDecExpressionBuilder.hpp
index 06c7603f1..91c54c7bb 100644
--- a/src/language/ASTNodeIncDecExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeIncDecExpressionBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_INC_DEC_EXPRESSION_BUILDER_HPP
 #define AST_NODE_INC_DEC_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 struct ASTNodeIncDecExpressionBuilder
 {
diff --git a/src/language/ASTNodeJumpPlacementChecker.cpp b/src/language/ast/ASTNodeJumpPlacementChecker.cpp
similarity index 93%
rename from src/language/ASTNodeJumpPlacementChecker.cpp
rename to src/language/ast/ASTNodeJumpPlacementChecker.cpp
index c632b12d2..c699d8dce 100644
--- a/src/language/ASTNodeJumpPlacementChecker.cpp
+++ b/src/language/ast/ASTNodeJumpPlacementChecker.cpp
@@ -1,9 +1,7 @@
-#include <language/ASTNodeJumpPlacementChecker.hpp>
+#include <language/ast/ASTNodeJumpPlacementChecker.hpp>
 
 #include <language/PEGGrammar.hpp>
 
-#include <vector>
-
 void
 ASTNodeJumpPlacementChecker::_checkJumpPlacement(ASTNode& n, bool is_inside_loop)
 {
diff --git a/src/language/ASTNodeJumpPlacementChecker.hpp b/src/language/ast/ASTNodeJumpPlacementChecker.hpp
similarity index 89%
rename from src/language/ASTNodeJumpPlacementChecker.hpp
rename to src/language/ast/ASTNodeJumpPlacementChecker.hpp
index ba61d5495..a880a79c5 100644
--- a/src/language/ASTNodeJumpPlacementChecker.hpp
+++ b/src/language/ast/ASTNodeJumpPlacementChecker.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_JUMP_PLACEMENT_CHECKER_HPP
 #define AST_NODE_JUMP_PLACEMENT_CHECKER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTNodeJumpPlacementChecker
 {
diff --git a/src/language/ASTNodeListAffectationExpressionBuilder.cpp b/src/language/ast/ASTNodeListAffectationExpressionBuilder.cpp
similarity index 98%
rename from src/language/ASTNodeListAffectationExpressionBuilder.cpp
rename to src/language/ast/ASTNodeListAffectationExpressionBuilder.cpp
index e69b80b52..604c698d7 100644
--- a/src/language/ASTNodeListAffectationExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeListAffectationExpressionBuilder.cpp
@@ -1,8 +1,8 @@
-#include <language/ASTNodeListAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeListAffectationExpressionBuilder.hpp>
 
-#include <language/ASTNodeDataTypeFlattener.hpp>
-#include <language/ASTNodeNaturalConversionChecker.hpp>
 #include <language/PEGGrammar.hpp>
+#include <language/ast/ASTNodeDataTypeFlattener.hpp>
+#include <language/ast/ASTNodeNaturalConversionChecker.hpp>
 #include <language/node_processor/AffectationProcessor.hpp>
 
 template <typename OperatorT>
diff --git a/src/language/ASTNodeListAffectationExpressionBuilder.hpp b/src/language/ast/ASTNodeListAffectationExpressionBuilder.hpp
similarity index 90%
rename from src/language/ASTNodeListAffectationExpressionBuilder.hpp
rename to src/language/ast/ASTNodeListAffectationExpressionBuilder.hpp
index 6b8a74202..50aaf94d2 100644
--- a/src/language/ASTNodeListAffectationExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeListAffectationExpressionBuilder.hpp
@@ -1,8 +1,8 @@
 #ifndef AST_NODE_LIST_AFFECTATION_EXPRESSION_BUILDER_HPP
 #define AST_NODE_LIST_AFFECTATION_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeSubDataType.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeSubDataType.hpp>
 
 template <typename OperatorT>
 class ListAffectationProcessor;
diff --git a/src/language/ASTNodeNaturalConversionChecker.cpp b/src/language/ast/ASTNodeNaturalConversionChecker.cpp
similarity index 98%
rename from src/language/ASTNodeNaturalConversionChecker.cpp
rename to src/language/ast/ASTNodeNaturalConversionChecker.cpp
index e80cd2623..c32f77d30 100644
--- a/src/language/ASTNodeNaturalConversionChecker.cpp
+++ b/src/language/ast/ASTNodeNaturalConversionChecker.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeNaturalConversionChecker.hpp>
+#include <language/ast/ASTNodeNaturalConversionChecker.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <utils/Exceptions.hpp>
diff --git a/src/language/ASTNodeNaturalConversionChecker.hpp b/src/language/ast/ASTNodeNaturalConversionChecker.hpp
similarity index 88%
rename from src/language/ASTNodeNaturalConversionChecker.hpp
rename to src/language/ast/ASTNodeNaturalConversionChecker.hpp
index adc69894a..9d89e3b49 100644
--- a/src/language/ASTNodeNaturalConversionChecker.hpp
+++ b/src/language/ast/ASTNodeNaturalConversionChecker.hpp
@@ -1,9 +1,9 @@
 #ifndef AST_NODE_NATURAL_CONVERSION_CHECKER_HPP
 #define AST_NODE_NATURAL_CONVERSION_CHECKER_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeDataType.hpp>
-#include <language/ASTNodeSubDataType.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
+#include <language/ast/ASTNodeSubDataType.hpp>
 
 class ASTNodeNaturalConversionChecker
 {
diff --git a/src/language/ASTNodeSubDataType.hpp b/src/language/ast/ASTNodeSubDataType.hpp
similarity index 71%
rename from src/language/ASTNodeSubDataType.hpp
rename to src/language/ast/ASTNodeSubDataType.hpp
index 0c0c7459d..d7844d367 100644
--- a/src/language/ASTNodeSubDataType.hpp
+++ b/src/language/ast/ASTNodeSubDataType.hpp
@@ -1,8 +1,8 @@
 #ifndef AST_NODE_SUB_DATA_TYPE_HPP
 #define AST_NODE_SUB_DATA_TYPE_HPP
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeDataType.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 
 struct ASTNodeSubDataType
 {
diff --git a/src/language/ASTNodeTypeCleaner.hpp b/src/language/ast/ASTNodeTypeCleaner.hpp
similarity index 96%
rename from src/language/ASTNodeTypeCleaner.hpp
rename to src/language/ast/ASTNodeTypeCleaner.hpp
index c4a1fc28d..46e516abb 100644
--- a/src/language/ASTNodeTypeCleaner.hpp
+++ b/src/language/ast/ASTNodeTypeCleaner.hpp
@@ -1,8 +1,8 @@
 #ifndef AST_NODE_DECLARATION_CLEANER_HPP
 #define AST_NODE_DECLARATION_CLEANER_HPP
 
-#include <language/ASTNode.hpp>
 #include <language/PEGGrammar.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <utils/PugsAssert.hpp>
 
 #include <stack>
diff --git a/src/language/ASTNodeUnaryOperatorExpressionBuilder.cpp b/src/language/ast/ASTNodeUnaryOperatorExpressionBuilder.cpp
similarity index 98%
rename from src/language/ASTNodeUnaryOperatorExpressionBuilder.cpp
rename to src/language/ast/ASTNodeUnaryOperatorExpressionBuilder.cpp
index 12a368e49..ff081cea9 100644
--- a/src/language/ASTNodeUnaryOperatorExpressionBuilder.cpp
+++ b/src/language/ast/ASTNodeUnaryOperatorExpressionBuilder.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTNodeUnaryOperatorExpressionBuilder.hpp>
+#include <language/ast/ASTNodeUnaryOperatorExpressionBuilder.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <language/node_processor/UnaryExpressionProcessor.hpp>
diff --git a/src/language/ASTNodeUnaryOperatorExpressionBuilder.hpp b/src/language/ast/ASTNodeUnaryOperatorExpressionBuilder.hpp
similarity index 88%
rename from src/language/ASTNodeUnaryOperatorExpressionBuilder.hpp
rename to src/language/ast/ASTNodeUnaryOperatorExpressionBuilder.hpp
index 7e41a90be..7000981e2 100644
--- a/src/language/ASTNodeUnaryOperatorExpressionBuilder.hpp
+++ b/src/language/ast/ASTNodeUnaryOperatorExpressionBuilder.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_UNARY_OPERATOR_EXPRESSION_BUILDER_HPP
 #define AST_NODE_UNARY_OPERATOR_EXPRESSION_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 struct ASTNodeUnaryOperatorExpressionBuilder
 {
diff --git a/src/language/ASTSymbolInitializationChecker.cpp b/src/language/ast/ASTSymbolInitializationChecker.cpp
similarity index 99%
rename from src/language/ASTSymbolInitializationChecker.cpp
rename to src/language/ast/ASTSymbolInitializationChecker.cpp
index 64c6150b8..5e8b04e93 100644
--- a/src/language/ASTSymbolInitializationChecker.cpp
+++ b/src/language/ast/ASTSymbolInitializationChecker.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTSymbolInitializationChecker.hpp>
+#include <language/ast/ASTSymbolInitializationChecker.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
diff --git a/src/language/ASTSymbolInitializationChecker.hpp b/src/language/ast/ASTSymbolInitializationChecker.hpp
similarity index 89%
rename from src/language/ASTSymbolInitializationChecker.hpp
rename to src/language/ast/ASTSymbolInitializationChecker.hpp
index 036de1724..022ac7648 100644
--- a/src/language/ASTSymbolInitializationChecker.hpp
+++ b/src/language/ast/ASTSymbolInitializationChecker.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_SYMBOL_INITIALIZATION_CHECKER_HPP
 #define AST_SYMBOL_INITIALIZATION_CHECKER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTSymbolInitializationChecker
 {
diff --git a/src/language/ASTSymbolTableBuilder.cpp b/src/language/ast/ASTSymbolTableBuilder.cpp
similarity index 98%
rename from src/language/ASTSymbolTableBuilder.cpp
rename to src/language/ast/ASTSymbolTableBuilder.cpp
index 07dc16e33..98d40669b 100644
--- a/src/language/ASTSymbolTableBuilder.cpp
+++ b/src/language/ast/ASTSymbolTableBuilder.cpp
@@ -1,4 +1,4 @@
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
diff --git a/src/language/ASTSymbolTableBuilder.hpp b/src/language/ast/ASTSymbolTableBuilder.hpp
similarity index 92%
rename from src/language/ASTSymbolTableBuilder.hpp
rename to src/language/ast/ASTSymbolTableBuilder.hpp
index 87ccc511a..881712b85 100644
--- a/src/language/ASTSymbolTableBuilder.hpp
+++ b/src/language/ast/ASTSymbolTableBuilder.hpp
@@ -1,8 +1,8 @@
 #ifndef AST_SYMBOL_TABLE_BUILDER_HPP
 #define AST_SYMBOL_TABLE_BUILDER_HPP
 
-#include <language/ASTNode.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTSymbolTableBuilder
 {
diff --git a/src/language/ast/CMakeLists.txt b/src/language/ast/CMakeLists.txt
new file mode 100644
index 000000000..f4c317743
--- /dev/null
+++ b/src/language/ast/CMakeLists.txt
@@ -0,0 +1,30 @@
+# ------------------- Source files --------------------
+
+add_library(PugsLanguageAST
+  ASTBuilder.cpp
+  ASTModulesImporter.cpp
+  ASTNodeAffectationExpressionBuilder.cpp
+  ASTNodeArraySubscriptExpressionBuilder.cpp
+  ASTNodeBinaryOperatorExpressionBuilder.cpp
+  ASTNodeBuiltinFunctionExpressionBuilder.cpp
+  ASTNodeDataTypeBuilder.cpp
+  ASTNodeDataTypeChecker.cpp
+  ASTNodeDataType.cpp
+  ASTNodeDataTypeFlattener.cpp
+  ASTNodeDeclarationToAffectationConverter.cpp
+  ASTNodeEmptyBlockCleaner.cpp
+  ASTNodeExpressionBuilder.cpp
+  ASTNodeFunctionEvaluationExpressionBuilder.cpp
+  ASTNodeFunctionExpressionBuilder.cpp
+  ASTNodeIncDecExpressionBuilder.cpp
+  ASTNodeJumpPlacementChecker.cpp
+  ASTNodeListAffectationExpressionBuilder.cpp
+  ASTNodeNaturalConversionChecker.cpp
+  ASTNodeUnaryOperatorExpressionBuilder.cpp
+  ASTSymbolInitializationChecker.cpp
+  ASTSymbolTableBuilder.cpp
+  )
+
+
+add_dependencies(PugsLanguageAST
+  PugsUtils)
diff --git a/src/language/modules/ModuleRepository.cpp b/src/language/modules/ModuleRepository.cpp
index 8f2c39b99..a6c0805ea 100644
--- a/src/language/modules/ModuleRepository.cpp
+++ b/src/language/modules/ModuleRepository.cpp
@@ -1,7 +1,7 @@
 #include <language/modules/ModuleRepository.hpp>
 
-#include <language/ASTNode.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/modules/MathModule.hpp>
 #include <language/modules/MeshModule.hpp>
 #include <language/modules/VTKModule.hpp>
diff --git a/src/language/node_processor/ASTNodeListProcessor.hpp b/src/language/node_processor/ASTNodeListProcessor.hpp
index ec7cc2826..be0e786ac 100644
--- a/src/language/node_processor/ASTNodeListProcessor.hpp
+++ b/src/language/node_processor/ASTNodeListProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_NODE_LIST_PROCESSOR_HPP
 #define AST_NODE_LIST_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class ASTNodeListProcessor final : public INodeProcessor
diff --git a/src/language/node_processor/ArraySubscriptProcessor.hpp b/src/language/node_processor/ArraySubscriptProcessor.hpp
index 76b202c5a..4853c65d3 100644
--- a/src/language/node_processor/ArraySubscriptProcessor.hpp
+++ b/src/language/node_processor/ArraySubscriptProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef ARRAY_SUBSCRIPT_PROCESSOR_HPP
 #define ARRAY_SUBSCRIPT_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 template <typename ArrayTypeT>
diff --git a/src/language/node_processor/BinaryExpressionProcessor.hpp b/src/language/node_processor/BinaryExpressionProcessor.hpp
index dbbdd56d8..2e4fcef12 100644
--- a/src/language/node_processor/BinaryExpressionProcessor.hpp
+++ b/src/language/node_processor/BinaryExpressionProcessor.hpp
@@ -1,8 +1,8 @@
 #ifndef BINARY_EXPRESSION_PROCESSOR_HPP
 #define BINARY_EXPRESSION_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
 #include <language/PEGGrammar.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 template <typename Op>
diff --git a/src/language/node_processor/ConcatExpressionProcessor.hpp b/src/language/node_processor/ConcatExpressionProcessor.hpp
index 9d8e6eeb7..e47178494 100644
--- a/src/language/node_processor/ConcatExpressionProcessor.hpp
+++ b/src/language/node_processor/ConcatExpressionProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef CONCAT_EXPRESSION_PROCESSOR_HPP
 #define CONCAT_EXPRESSION_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 template <typename B_DataT>
diff --git a/src/language/node_processor/DoWhileProcessor.hpp b/src/language/node_processor/DoWhileProcessor.hpp
index 69a5da7fe..a8240cf34 100644
--- a/src/language/node_processor/DoWhileProcessor.hpp
+++ b/src/language/node_processor/DoWhileProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef DO_WHILE_PROCESSOR_HPP
 #define DO_WHILE_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class DoWhileProcessor final : public INodeProcessor
diff --git a/src/language/node_processor/ForProcessor.hpp b/src/language/node_processor/ForProcessor.hpp
index 568ff7fc5..83c2f8cee 100644
--- a/src/language/node_processor/ForProcessor.hpp
+++ b/src/language/node_processor/ForProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef FOR_PROCESSOR_HPP
 #define FOR_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class ForProcessor final : public INodeProcessor
diff --git a/src/language/node_processor/IfProcessor.hpp b/src/language/node_processor/IfProcessor.hpp
index 9c0baf55b..c1af1b99c 100644
--- a/src/language/node_processor/IfProcessor.hpp
+++ b/src/language/node_processor/IfProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef IF_PROCESSOR_HPP
 #define IF_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class IfProcessor final : public INodeProcessor
diff --git a/src/language/node_processor/IncDecExpressionProcessor.hpp b/src/language/node_processor/IncDecExpressionProcessor.hpp
index 1f328dd5c..2b63b6f37 100644
--- a/src/language/node_processor/IncDecExpressionProcessor.hpp
+++ b/src/language/node_processor/IncDecExpressionProcessor.hpp
@@ -1,9 +1,9 @@
 #ifndef INC_DEC_EXPRESSION_PROCESSOR_HPP
 #define INC_DEC_EXPRESSION_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
 #include <language/PEGGrammar.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 template <typename Op>
diff --git a/src/language/node_processor/LocalNameProcessor.hpp b/src/language/node_processor/LocalNameProcessor.hpp
index 1b6cde20f..be6ea4f4c 100644
--- a/src/language/node_processor/LocalNameProcessor.hpp
+++ b/src/language/node_processor/LocalNameProcessor.hpp
@@ -1,8 +1,8 @@
 #ifndef LOCAL_NODE_PROCESSOR_HPP
 #define LOCAL_NODE_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class LocalNameProcessor final : public INodeProcessor
diff --git a/src/language/node_processor/NameProcessor.hpp b/src/language/node_processor/NameProcessor.hpp
index 390873f82..70dfac0d5 100644
--- a/src/language/node_processor/NameProcessor.hpp
+++ b/src/language/node_processor/NameProcessor.hpp
@@ -1,8 +1,8 @@
 #ifndef NODE_PROCESSOR_HPP
 #define NODE_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class NameProcessor final : public INodeProcessor
diff --git a/src/language/node_processor/OStreamProcessor.hpp b/src/language/node_processor/OStreamProcessor.hpp
index 81dc1a91e..bc5778bc0 100644
--- a/src/language/node_processor/OStreamProcessor.hpp
+++ b/src/language/node_processor/OStreamProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef OSTREAM_PROCESSOR_HPP
 #define OSTREAM_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class OStreamProcessor final : public INodeProcessor
diff --git a/src/language/node_processor/TupleToVectorProcessor.hpp b/src/language/node_processor/TupleToVectorProcessor.hpp
index 3cb70f049..b8b32ac12 100644
--- a/src/language/node_processor/TupleToVectorProcessor.hpp
+++ b/src/language/node_processor/TupleToVectorProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef TUPLE_TO_VECTOR_PROCESSOR_HPP
 #define TUPLE_TO_VECTOR_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 template <typename TupleProcessorT, size_t N>
diff --git a/src/language/node_processor/ValueProcessor.hpp b/src/language/node_processor/ValueProcessor.hpp
index 06052c72f..342198223 100644
--- a/src/language/node_processor/ValueProcessor.hpp
+++ b/src/language/node_processor/ValueProcessor.hpp
@@ -1,8 +1,8 @@
 #ifndef VALUE_PROCESSOR_HPP
 #define VALUE_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
 #include <language/PEGGrammar.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 #include <utils/EscapedString.hpp>
 
diff --git a/src/language/node_processor/WhileProcessor.hpp b/src/language/node_processor/WhileProcessor.hpp
index 82d7fa22a..b0f27a8a5 100644
--- a/src/language/node_processor/WhileProcessor.hpp
+++ b/src/language/node_processor/WhileProcessor.hpp
@@ -1,7 +1,7 @@
 #ifndef WHILE_PROCESSOR_HPP
 #define WHILE_PROCESSOR_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/INodeProcessor.hpp>
 
 class WhileProcessor final : public INodeProcessor
diff --git a/src/language/utils/ASTDotPrinter.hpp b/src/language/utils/ASTDotPrinter.hpp
index bd6b6892f..ce7d4dd39 100644
--- a/src/language/utils/ASTDotPrinter.hpp
+++ b/src/language/utils/ASTDotPrinter.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_DOT_PRINTER_HPP
 #define AST_DOT_PRINTER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 #include <map>
 
diff --git a/src/language/utils/ASTNodeDataTypeTraits.hpp b/src/language/utils/ASTNodeDataTypeTraits.hpp
index 14435925d..90dff3af8 100644
--- a/src/language/utils/ASTNodeDataTypeTraits.hpp
+++ b/src/language/utils/ASTNodeDataTypeTraits.hpp
@@ -2,8 +2,8 @@
 #define AST_NODE_DATA_TYPE_TRAITS_H
 
 #include <algebra/TinyVector.hpp>
-#include <language/ASTNodeDataType.hpp>
 #include <language/FunctionSymbolId.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 
 template <typename T>
 inline ASTNodeDataType ast_node_data_type_from = ASTNodeDataType::undefined_t;
diff --git a/src/language/utils/ASTPrinter.hpp b/src/language/utils/ASTPrinter.hpp
index 93d4231d2..02838edf6 100644
--- a/src/language/utils/ASTPrinter.hpp
+++ b/src/language/utils/ASTPrinter.hpp
@@ -1,7 +1,7 @@
 #ifndef AST_PRINTER_HPP
 #define AST_PRINTER_HPP
 
-#include <language/ASTNode.hpp>
+#include <language/ast/ASTNode.hpp>
 
 class ASTPrinter
 {
diff --git a/src/language/utils/BuiltinFunctionEmbedder.hpp b/src/language/utils/BuiltinFunctionEmbedder.hpp
index ab2523c72..c833762c6 100644
--- a/src/language/utils/BuiltinFunctionEmbedder.hpp
+++ b/src/language/utils/BuiltinFunctionEmbedder.hpp
@@ -1,8 +1,8 @@
 #ifndef BUILTIN_FUNCTION_EMBEDDER_HPP
 #define BUILTIN_FUNCTION_EMBEDDER_HPP
 
-#include <language/ASTNodeDataType.hpp>
 #include <language/FunctionTable.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 #include <language/utils/ASTNodeDataTypeTraits.hpp>
 #include <language/utils/DataHandler.hpp>
 #include <language/utils/DataVariant.hpp>
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index f08ecf6b7..65460257b 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -85,6 +85,7 @@ add_executable (mpi_unit_tests
 
 target_link_libraries (unit_tests
   PugsLanguage
+  PugsLanguageAST
   PugsLanguageModules
   PugsLanguageUtils
   PugsMesh
diff --git a/tests/test_ASTBuilder.cpp b/tests/test_ASTBuilder.cpp
index 51dc847f0..2399a7861 100644
--- a/tests/test_ASTBuilder.cpp
+++ b/tests/test_ASTBuilder.cpp
@@ -1,6 +1,6 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTDotPrinter.cpp b/tests/test_ASTDotPrinter.cpp
index b36ff90a2..d9597ebca 100644
--- a/tests/test_ASTDotPrinter.cpp
+++ b/tests/test_ASTDotPrinter.cpp
@@ -1,6 +1,6 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
 #include <language/utils/ASTDotPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTModulesImporter.cpp b/tests/test_ASTModulesImporter.cpp
index 04d2b1522..5d4d0f5b8 100644
--- a/tests/test_ASTModulesImporter.cpp
+++ b/tests/test_ASTModulesImporter.cpp
@@ -1,10 +1,10 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
 #include <language/SymbolTable.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
 #include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNode.cpp b/tests/test_ASTNode.cpp
index 1c51d7b58..173c83f86 100644
--- a/tests/test_ASTNode.cpp
+++ b/tests/test_ASTNode.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTNode.hpp>
 #include <language/PEGGrammar.hpp>
+#include <language/ast/ASTNode.hpp>
 #include <language/node_processor/FakeProcessor.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeAffectationExpressionBuilder.cpp b/tests/test_ASTNodeAffectationExpressionBuilder.cpp
index 9d16f8c61..db62cbfbc 100644
--- a/tests/test_ASTNodeAffectationExpressionBuilder.cpp
+++ b/tests/test_ASTNodeAffectationExpressionBuilder.cpp
@@ -1,13 +1,13 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolInitializationChecker.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolInitializationChecker.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeArraySubscriptExpressionBuilder.cpp b/tests/test_ASTNodeArraySubscriptExpressionBuilder.cpp
index 30b3abb50..941df56ac 100644
--- a/tests/test_ASTNodeArraySubscriptExpressionBuilder.cpp
+++ b/tests/test_ASTNodeArraySubscriptExpressionBuilder.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeArraySubscriptExpressionBuilder.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeArraySubscriptExpressionBuilder.hpp>
 #include <language/node_processor/ArraySubscriptProcessor.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp b/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp
index c575680a0..18dcb85c1 100644
--- a/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp
+++ b/tests/test_ASTNodeBinaryOperatorExpressionBuilder.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeBinaryOperatorExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeBinaryOperatorExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp b/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp
index b109e3d28..b9f7a9af1 100644
--- a/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp
+++ b/tests/test_ASTNodeBuiltinFunctionExpressionBuilder.cpp
@@ -1,13 +1,13 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
-#include <language/ASTNodeFunctionExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <language/utils/BuiltinFunctionEmbedder.hpp>
 #include <utils/Demangle.hpp>
diff --git a/tests/test_ASTNodeDataType.cpp b/tests/test_ASTNodeDataType.cpp
index 761a0a965..215076d84 100644
--- a/tests/test_ASTNodeDataType.cpp
+++ b/tests/test_ASTNodeDataType.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeDataType.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeDataType.hpp>
 
 namespace language
 {
diff --git a/tests/test_ASTNodeDataTypeBuilder.cpp b/tests/test_ASTNodeDataTypeBuilder.cpp
index fa7a6d13a..96eb27f46 100644
--- a/tests/test_ASTNodeDataTypeBuilder.cpp
+++ b/tests/test_ASTNodeDataTypeBuilder.cpp
@@ -1,8 +1,8 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeDataTypeChecker.cpp b/tests/test_ASTNodeDataTypeChecker.cpp
index 61784aea2..7ce833b6d 100644
--- a/tests/test_ASTNodeDataTypeChecker.cpp
+++ b/tests/test_ASTNodeDataTypeChecker.cpp
@@ -1,9 +1,9 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDataTypeChecker.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeChecker.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTNodeDataTypeFlattener.cpp b/tests/test_ASTNodeDataTypeFlattener.cpp
index b6de87c63..dae7437d9 100644
--- a/tests/test_ASTNodeDataTypeFlattener.cpp
+++ b/tests/test_ASTNodeDataTypeFlattener.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDataTypeFlattener.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeFlattener.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTNodeDeclarationToAffectationConverter.cpp b/tests/test_ASTNodeDeclarationToAffectationConverter.cpp
index d16bc7ee2..8e9912e1a 100644
--- a/tests/test_ASTNodeDeclarationToAffectationConverter.cpp
+++ b/tests/test_ASTNodeDeclarationToAffectationConverter.cpp
@@ -1,9 +1,9 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTNodeEmptyBlockCleaner.cpp b/tests/test_ASTNodeEmptyBlockCleaner.cpp
index 18aafa1b7..a52730e66 100644
--- a/tests/test_ASTNodeEmptyBlockCleaner.cpp
+++ b/tests/test_ASTNodeEmptyBlockCleaner.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeEmptyBlockCleaner.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeEmptyBlockCleaner.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeExpressionBuilder.cpp b/tests/test_ASTNodeExpressionBuilder.cpp
index 5213aa728..7eedbf1be 100644
--- a/tests/test_ASTNodeExpressionBuilder.cpp
+++ b/tests/test_ASTNodeExpressionBuilder.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp b/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp
index ddfae54de..7ecb9ee4d 100644
--- a/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp
+++ b/tests/test_ASTNodeFunctionEvaluationExpressionBuilder.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeFunctionExpressionBuilder.cpp b/tests/test_ASTNodeFunctionExpressionBuilder.cpp
index e915888d8..b350dea6f 100644
--- a/tests/test_ASTNodeFunctionExpressionBuilder.cpp
+++ b/tests/test_ASTNodeFunctionExpressionBuilder.cpp
@@ -1,13 +1,13 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
-#include <language/ASTNodeFunctionExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionEvaluationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeFunctionExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeIncDecExpressionBuilder.cpp b/tests/test_ASTNodeIncDecExpressionBuilder.cpp
index 845b9f987..60ce2489f 100644
--- a/tests/test_ASTNodeIncDecExpressionBuilder.cpp
+++ b/tests/test_ASTNodeIncDecExpressionBuilder.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeIncDecExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeIncDecExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeJumpPlacementChecker.cpp b/tests/test_ASTNodeJumpPlacementChecker.cpp
index 1d8b89371..419519cd5 100644
--- a/tests/test_ASTNodeJumpPlacementChecker.cpp
+++ b/tests/test_ASTNodeJumpPlacementChecker.cpp
@@ -1,9 +1,9 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeJumpPlacementChecker.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeJumpPlacementChecker.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTNodeListAffectationExpressionBuilder.cpp b/tests/test_ASTNodeListAffectationExpressionBuilder.cpp
index a35ea34a7..18a868773 100644
--- a/tests/test_ASTNodeListAffectationExpressionBuilder.cpp
+++ b/tests/test_ASTNodeListAffectationExpressionBuilder.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeListAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeListAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeListProcessor.cpp b/tests/test_ASTNodeListProcessor.cpp
index 7b1105a34..bccd0080f 100644
--- a/tests/test_ASTNodeListProcessor.cpp
+++ b/tests/test_ASTNodeListProcessor.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/node_processor/ASTNodeListProcessor.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTNodeNaturalConversionChecker.cpp b/tests/test_ASTNodeNaturalConversionChecker.cpp
index 5202b437f..373a05909 100644
--- a/tests/test_ASTNodeNaturalConversionChecker.cpp
+++ b/tests/test_ASTNodeNaturalConversionChecker.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTNode.hpp>
-#include <language/ASTNodeNaturalConversionChecker.hpp>
+#include <language/ast/ASTNode.hpp>
+#include <language/ast/ASTNodeNaturalConversionChecker.hpp>
 
 namespace language
 {
diff --git a/tests/test_ASTNodeTypeCleaner.cpp b/tests/test_ASTNodeTypeCleaner.cpp
index 0a02111bc..80d7ccfc0 100644
--- a/tests/test_ASTNodeTypeCleaner.cpp
+++ b/tests/test_ASTNodeTypeCleaner.cpp
@@ -1,9 +1,9 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 
 #define CHECK_AST(data, expected_output)                                                       \
diff --git a/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp b/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp
index f89c58f0e..6c30d3f0a 100644
--- a/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp
+++ b/tests/test_ASTNodeUnaryOperatorExpressionBuilder.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTNodeUnaryOperatorExpressionBuilder.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTNodeUnaryOperatorExpressionBuilder.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ASTPrinter.cpp b/tests/test_ASTPrinter.cpp
index debd85edc..2e0870669 100644
--- a/tests/test_ASTPrinter.cpp
+++ b/tests/test_ASTPrinter.cpp
@@ -1,7 +1,7 @@
 // -*- coding: utf-8 -*-
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ASTSymbolInitializationChecker.cpp b/tests/test_ASTSymbolInitializationChecker.cpp
index 7950a463c..fe59815ac 100644
--- a/tests/test_ASTSymbolInitializationChecker.cpp
+++ b/tests/test_ASTSymbolInitializationChecker.cpp
@@ -1,8 +1,8 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTSymbolInitializationChecker.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTSymbolInitializationChecker.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_ASTSymbolTableBuilder.cpp b/tests/test_ASTSymbolTableBuilder.cpp
index 0cbeb8b27..62df4dce0 100644
--- a/tests/test_ASTSymbolTableBuilder.cpp
+++ b/tests/test_ASTSymbolTableBuilder.cpp
@@ -1,7 +1,7 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 
 #include <pegtl/string_input.hpp>
 
diff --git a/tests/test_AffectationProcessor.cpp b/tests/test_AffectationProcessor.cpp
index a60464448..c94ecdb7d 100644
--- a/tests/test_AffectationProcessor.cpp
+++ b/tests/test_AffectationProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_AffectationToStringProcessor.cpp b/tests/test_AffectationToStringProcessor.cpp
index 4a6e0837e..4053e0231 100644
--- a/tests/test_AffectationToStringProcessor.cpp
+++ b/tests/test_AffectationToStringProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ArraySubscriptProcessor.cpp b/tests/test_ArraySubscriptProcessor.cpp
index 1ce9a5fff..a48390214 100644
--- a/tests/test_ArraySubscriptProcessor.cpp
+++ b/tests/test_ArraySubscriptProcessor.cpp
@@ -1,13 +1,13 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_BinaryExpressionProcessor_utils.hpp b/tests/test_BinaryExpressionProcessor_utils.hpp
index 67cfc9cc2..176c91344 100644
--- a/tests/test_BinaryExpressionProcessor_utils.hpp
+++ b/tests/test_BinaryExpressionProcessor_utils.hpp
@@ -1,12 +1,12 @@
 #ifndef TEST_BINARY_EXPRESSION_PROCESSOR_UTILS_HPP
 #define TEST_BINARY_EXPRESSION_PROCESSOR_UTILS_HPP
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_BuiltinFunctionProcessor.cpp b/tests/test_BuiltinFunctionProcessor.cpp
index 48c7ccb34..0fc088892 100644
--- a/tests/test_BuiltinFunctionProcessor.cpp
+++ b/tests/test_BuiltinFunctionProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/modules/MathModule.hpp>
 
 #define CHECK_BUILTIN_FUNCTION_EVALUATION_RESULT(data, variable_name, expected_value)                \
diff --git a/tests/test_ConcatExpressionProcessor.cpp b/tests/test_ConcatExpressionProcessor.cpp
index 358aa46c6..adc5f49e0 100644
--- a/tests/test_ConcatExpressionProcessor.cpp
+++ b/tests/test_ConcatExpressionProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_DoWhileProcessor.cpp b/tests/test_DoWhileProcessor.cpp
index 1ee60e1ed..b8f88a19a 100644
--- a/tests/test_DoWhileProcessor.cpp
+++ b/tests/test_DoWhileProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_ForProcessor.cpp b/tests/test_ForProcessor.cpp
index cb4166423..31ec05abc 100644
--- a/tests/test_ForProcessor.cpp
+++ b/tests/test_ForProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/utils/ASTPrinter.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_FunctionProcessor.cpp b/tests/test_FunctionProcessor.cpp
index cca3bc054..59386bbae 100644
--- a/tests/test_FunctionProcessor.cpp
+++ b/tests/test_FunctionProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_IfProcessor.cpp b/tests/test_IfProcessor.cpp
index 99eaa6342..ccade1625 100644
--- a/tests/test_IfProcessor.cpp
+++ b/tests/test_IfProcessor.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_IncDecExpressionProcessor.cpp b/tests/test_IncDecExpressionProcessor.cpp
index 910e6cc56..ca13dbde2 100644
--- a/tests/test_IncDecExpressionProcessor.cpp
+++ b/tests/test_IncDecExpressionProcessor.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_ListAffectationProcessor.cpp b/tests/test_ListAffectationProcessor.cpp
index bb5fd303a..e0f17e7f5 100644
--- a/tests/test_ListAffectationProcessor.cpp
+++ b/tests/test_ListAffectationProcessor.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_NameProcessor.cpp b/tests/test_NameProcessor.cpp
index 011e528d4..84669c888 100644
--- a/tests/test_NameProcessor.cpp
+++ b/tests/test_NameProcessor.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/node_processor/NameProcessor.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_OStreamProcessor.cpp b/tests/test_OStreamProcessor.cpp
index 017f1218a..2c2dec499 100644
--- a/tests/test_OStreamProcessor.cpp
+++ b/tests/test_OStreamProcessor.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <language/node_processor/OStreamProcessor.hpp>
 #include <utils/Demangle.hpp>
 
diff --git a/tests/test_TupleToVectorProcessor.cpp b/tests/test_TupleToVectorProcessor.cpp
index 20e7081ec..6ddbf513d 100644
--- a/tests/test_TupleToVectorProcessor.cpp
+++ b/tests/test_TupleToVectorProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTModulesImporter.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTModulesImporter.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_UnaryExpressionProcessor.cpp b/tests/test_UnaryExpressionProcessor.cpp
index 728eed9ff..e933902ad 100644
--- a/tests/test_UnaryExpressionProcessor.cpp
+++ b/tests/test_UnaryExpressionProcessor.cpp
@@ -1,11 +1,11 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
diff --git a/tests/test_WhileProcessor.cpp b/tests/test_WhileProcessor.cpp
index 325efedd0..4a823c068 100644
--- a/tests/test_WhileProcessor.cpp
+++ b/tests/test_WhileProcessor.cpp
@@ -1,12 +1,12 @@
 #include <catch2/catch.hpp>
 
-#include <language/ASTBuilder.hpp>
-#include <language/ASTNodeAffectationExpressionBuilder.hpp>
-#include <language/ASTNodeDataTypeBuilder.hpp>
-#include <language/ASTNodeDeclarationToAffectationConverter.hpp>
-#include <language/ASTNodeExpressionBuilder.hpp>
-#include <language/ASTNodeTypeCleaner.hpp>
-#include <language/ASTSymbolTableBuilder.hpp>
+#include <language/ast/ASTBuilder.hpp>
+#include <language/ast/ASTNodeAffectationExpressionBuilder.hpp>
+#include <language/ast/ASTNodeDataTypeBuilder.hpp>
+#include <language/ast/ASTNodeDeclarationToAffectationConverter.hpp>
+#include <language/ast/ASTNodeExpressionBuilder.hpp>
+#include <language/ast/ASTNodeTypeCleaner.hpp>
+#include <language/ast/ASTSymbolTableBuilder.hpp>
 #include <utils/Demangle.hpp>
 
 #include <pegtl/string_input.hpp>
-- 
GitLab