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