From 558e0191ba5a5b0ab99825de7d7d2219387e559e Mon Sep 17 00:00:00 2001
From: Ferenc Szontágh <szf@fsociety.hu>
Date: Sat, 19 Apr 2025 18:36:42 +0000
Subject: [PATCH] constats variable type implementation

---
 src/Interpreter/OperationsFactory.hpp |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/Interpreter/OperationsFactory.hpp b/src/Interpreter/OperationsFactory.hpp
index f69bb14..8965f29 100644
--- a/src/Interpreter/OperationsFactory.hpp
+++ b/src/Interpreter/OperationsFactory.hpp
@@ -54,6 +54,20 @@
                                               Operations::Container::instance()->add(
                                                   ns, Operations::Operation{Operations::Type::Declaration, varName, std::move(stmt)});
                                           }
+    /**
+     * @brief Record a constant declaration operation with an initializer expression.
+     */
+    static void defineConstantWithExpression(const std::string & varName, Symbols::Variables::Type type,
+                                             const Parser::ParsedExpressionPtr pexpr, const std::string & ns,
+                                             const std::string & filename, int line, size_t column) {
+        // Build initializer expression
+        std::unique_ptr<ExpressionNode> expr = buildExpressionFromParsed(pexpr);
+        // Create declaration node with const flag
+        std::unique_ptr<DeclareVariableStatementNode> stmt = std::make_unique<DeclareVariableStatementNode>(
+            varName, ns, type, std::move(expr), filename, line, column, /* isConst */ true);
+        Operations::Container::instance()->add(
+            ns, Operations::Operation{Operations::Type::Declaration, varName, std::move(stmt)});
+    }
     
     /**
      * @brief Record a function call operation with argument expressions.

--
Gitblit v1.9.3