From 2f89a2d2823066eb9c8c906b14d85dc6861de289 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Thu, 4 Jul 2019 15:14:02 +0200
Subject: [PATCH] Remove a bunch of unnecessary language namespace embedding

---
 src/language/ASTBuilder.cpp            |  8 ++++----
 src/language/ASTBuilder.hpp            |  2 +-
 src/language/ASTNode.hpp               |  9 +++++----
 src/language/ASTPrinter.cpp            |  3 +--
 src/language/ASTSymbolTableBuilder.cpp |  3 ---
 src/language/ASTSymbolTableBuilder.hpp |  6 +-----
 src/language/PugsParser.cpp            |  6 +++---
 src/language/SymbolTable.hpp           | 10 +++++++---
 8 files changed, 22 insertions(+), 25 deletions(-)

diff --git a/src/language/ASTBuilder.cpp b/src/language/ASTBuilder.cpp
index 67485c297..6790f5bc6 100644
--- a/src/language/ASTBuilder.cpp
+++ b/src/language/ASTBuilder.cpp
@@ -260,11 +260,11 @@ using selector =
                        ASTBuilder::simplify_stream_statement::on<ostream_statement>>;
 
 template <typename InputT>
-std::unique_ptr<language::ASTNode>
+std::unique_ptr<ASTNode>
 ASTBuilder::build(InputT& input)
 {
-  return parse_tree::parse<language::grammar, language::ASTNode, selector, nothing, language::errors>(input);
+  return parse_tree::parse<language::grammar, ASTNode, selector, nothing, language::errors>(input);
 }
 
-template std::unique_ptr<language::ASTNode> ASTBuilder::build(read_input<>& input);
-template std::unique_ptr<language::ASTNode> ASTBuilder::build(string_input<>& input);
+template std::unique_ptr<ASTNode> ASTBuilder::build(read_input<>& input);
+template std::unique_ptr<ASTNode> ASTBuilder::build(string_input<>& input);
diff --git a/src/language/ASTBuilder.hpp b/src/language/ASTBuilder.hpp
index 048c77199..f13532e31 100644
--- a/src/language/ASTBuilder.hpp
+++ b/src/language/ASTBuilder.hpp
@@ -18,7 +18,7 @@ struct ASTBuilder
 
  public:
   template <typename InputT>
-  static std::unique_ptr<language::ASTNode> build(InputT& input);
+  static std::unique_ptr<ASTNode> build(InputT& input);
 };
 
 #endif   // AST_BUILDER_HPP
diff --git a/src/language/ASTNode.hpp b/src/language/ASTNode.hpp
index a485cf787..4b1886a66 100644
--- a/src/language/ASTNode.hpp
+++ b/src/language/ASTNode.hpp
@@ -10,8 +10,6 @@
 
 using namespace TAO_PEGTL_NAMESPACE;
 
-namespace language
-{
 struct ExecUntilBreakOrContinue
 {
   enum class JumpType
@@ -52,7 +50,6 @@ struct ExecUntilBreakOrContinue
   }
 };
 
-class SymbolTable;
 class INodeProcessor
 {
  public:
@@ -65,8 +62,13 @@ class INodeProcessor
   virtual ~INodeProcessor() {}
 };
 
+class SymbolTable;
+
 struct ASTNode : public parse_tree::basic_node<ASTNode>
 {
+  using DataType    = language::DataType;
+  using DataVariant = language::DataVariant;
+
   std::shared_ptr<SymbolTable> m_symbol_table;
   std::unique_ptr<INodeProcessor> m_node_processor;
 
@@ -83,6 +85,5 @@ struct ASTNode : public parse_tree::basic_node<ASTNode>
   DataType m_data_type{DataType::undefined_t};
   DataVariant m_value;
 };
-}   // namespace language
 
 #endif   // AST_NODE_HPP
diff --git a/src/language/ASTPrinter.cpp b/src/language/ASTPrinter.cpp
index 0664cb358..aab87af9e 100644
--- a/src/language/ASTPrinter.cpp
+++ b/src/language/ASTPrinter.cpp
@@ -85,8 +85,7 @@ operator<<(std::ostream& os, const ASTPrinter& ast_printer)
   return os;
 }
 
-ASTPrinter::ASTPrinter(const language::ASTNode& node, Format format, std::initializer_list<Info> initializer_list)
-  : m_node{node}
+ASTPrinter::ASTPrinter(const ASTNode& node, Format format, std::initializer_list<Info> initializer_list) : m_node{node}
 {
   if (format == Format::pretty) {
     T_junction  = " \u251c\u2500\u2500";
diff --git a/src/language/ASTSymbolTableBuilder.cpp b/src/language/ASTSymbolTableBuilder.cpp
index a0f525522..ef16c6894 100644
--- a/src/language/ASTSymbolTableBuilder.cpp
+++ b/src/language/ASTSymbolTableBuilder.cpp
@@ -3,8 +3,6 @@
 
 #include <PEGGrammar.hpp>
 
-namespace language
-{
 void
 ASTSymbolTableBuilder::buildSymbolTable(ASTNode& n, std::shared_ptr<SymbolTable>& symbol_table)
 {
@@ -53,4 +51,3 @@ ASTSymbolTableBuilder::ASTSymbolTableBuilder(ASTNode& node)
   this->buildSymbolTable(node, symbol_table);
   std::cout << " - checked symbols declaration\n";
 }
-}   // namespace language
diff --git a/src/language/ASTSymbolTableBuilder.hpp b/src/language/ASTSymbolTableBuilder.hpp
index 86dc7ada7..4a7d7563a 100644
--- a/src/language/ASTSymbolTableBuilder.hpp
+++ b/src/language/ASTSymbolTableBuilder.hpp
@@ -2,10 +2,7 @@
 #define AST_SYMBOL_TABLE_BUILDER_HPP
 
 #include <ASTNode.hpp>
-
-namespace language
-{
-class SymbolTable;
+#include <SymbolTable.hpp>
 
 class ASTSymbolTableBuilder
 {
@@ -19,6 +16,5 @@ class ASTSymbolTableBuilder
 
   ~ASTSymbolTableBuilder() = default;
 };
-}   // namespace language
 
 #endif   // AST_SYMBOL_TABLE_BUILDER_HPP
diff --git a/src/language/PugsParser.cpp b/src/language/PugsParser.cpp
index adff2aa4a..d2d3c8910 100644
--- a/src/language/PugsParser.cpp
+++ b/src/language/PugsParser.cpp
@@ -408,13 +408,13 @@ parser(const std::string& filename)
   std::cout << rang::style::bold << "Parsing file " << rang::style::reset << rang::style::underline << filename
             << rang::style::reset << " ...\n";
 
-  std::unique_ptr<language::ASTNode> root_node;
+  std::unique_ptr<ASTNode> root_node;
   read_input input(filename);
   try {
     root_node = ASTBuilder::build(input);
     std::cout << " - AST is built ...... [done]\n";
 
-    language::ASTSymbolTableBuilder{*root_node};
+    ASTSymbolTableBuilder{*root_node};
 
     language::check_symbol_initialization(*root_node);
     {
@@ -438,7 +438,7 @@ parser(const std::string& filename)
 
     std::cout << language::ASTPrinter{*root_node} << '\n';
 
-    language::ExecUntilBreakOrContinue exec_all;
+    ExecUntilBreakOrContinue exec_all;
     root_node->execute(exec_all);
     std::cout << *(root_node->m_symbol_table) << '\n';
   }
diff --git a/src/language/SymbolTable.hpp b/src/language/SymbolTable.hpp
index e2e874f5b..3cfd66a5b 100644
--- a/src/language/SymbolTable.hpp
+++ b/src/language/SymbolTable.hpp
@@ -1,12 +1,17 @@
 #ifndef SYMBOL_TABLE_HPP
 #define SYMBOL_TABLE_HPP
 
-namespace language
-{
+#include <ASTNodeDataType.hpp>
+
 class SymbolTable
 {
+ public:
   class Attributes
   {
+   private:
+    using DataType    = language::DataType;
+    using DataVariant = language::DataVariant;
+
     bool m_is_initialized{false};
     DataType m_data_type{DataType::undefined_t};
     DataVariant m_value;
@@ -121,6 +126,5 @@ class SymbolTable
     ;
   }
 };
-}   // namespace language
 
 #endif   // SYMBOL_TABLE_HPP
-- 
GitLab