From 3895272a7f238c9aef0b584bd3b10b900445245d Mon Sep 17 00:00:00 2001
From: Ferenc Szontágh <szf@fsociety.hu>
Date: Tue, 15 Apr 2025 19:45:02 +0000
Subject: [PATCH] refactored

---
 src/Symbols/SymbolFactory.hpp |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/include/SymbolFactory.hpp b/src/Symbols/SymbolFactory.hpp
similarity index 70%
rename from include/SymbolFactory.hpp
rename to src/Symbols/SymbolFactory.hpp
index da37e15..5b7a168 100644
--- a/include/SymbolFactory.hpp
+++ b/src/Symbols/SymbolFactory.hpp
@@ -24,32 +24,42 @@
     }
 
     static std::shared_ptr<Symbol> createFunction(const std::string & name, const std::string & context,
-                                                  const Symbols::ValueContainer & parameters = {}) {
+                                                  const Symbols::FunctionParameterInfo & parameters = {}) {
         return std::make_shared<FunctionSymbol>(name, context, parameters);
     }
 
     static std::shared_ptr<Symbol> createFunction(const std::string & name, const std::string & context,
-                                                  const Symbols::ValueContainer & parameters,
-                                                  const std::string &             plainBody) {
+                                                  const Symbols::FunctionParameterInfo & parameters,
+                                                  const std::string &                    plainBody) {
         return std::make_shared<FunctionSymbol>(name, context, parameters, plainBody);
+    }
+
+    static std::shared_ptr<Symbol> createFunction(const std::string & name, const std::string & context,
+                                                  const Symbols::FunctionParameterInfo & parameters,
+                                                  const std::string & plainBody, Symbols::Variables::Type returnType) {
+        return std::make_shared<FunctionSymbol>(name, context, parameters, plainBody, returnType);
     }
 
     // Overloadok
     static std::shared_ptr<Symbol> createVariable(const std::string & name, int value, const std::string & context) {
-        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::VT_INT);
+        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::INTEGER);
     }
 
     static std::shared_ptr<Symbol> createVariable(const std::string & name, double value, const std::string & context) {
-        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::VT_DOUBLE);
+        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::DOUBLE);
+    }
+
+    static std::shared_ptr<Symbol> createVariable(const std::string & name, float value, const std::string & context) {
+        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::FLOAT);
     }
 
     static std::shared_ptr<Symbol> createVariable(const std::string & name, const std::string & value,
                                                   const std::string & context) {
-        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::VT_STRING);
+        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::STRING);
     }
 
     static std::shared_ptr<Symbol> createVariable(const std::string & name, bool value, const std::string & context) {
-        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::VT_BOOLEAN);
+        return createVariable(name, Symbols::Value(value), context, Symbols::Variables::Type::BOOLEAN);
     }
 };
 

--
Gitblit v1.9.3