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