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/AssignmentStatementNode.hpp | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/Interpreter/AssignmentStatementNode.hpp b/src/Interpreter/AssignmentStatementNode.hpp
index c5eeabc..bfa3b3e 100644
--- a/src/Interpreter/AssignmentStatementNode.hpp
+++ b/src/Interpreter/AssignmentStatementNode.hpp
@@ -35,8 +35,14 @@
using namespace Symbols;
auto * symContainer = SymbolContainer::instance();
// Variables are stored under <scope>.variables
- const std::string base_ns = symContainer->currentScopeName();
- const std::string var_ns = base_ns + ".variables";
+ const std::string base_ns = symContainer->currentScopeName();
+ const std::string var_ns = base_ns + ".variables";
+ const std::string const_ns = base_ns + ".constants";
+ // Prevent assignment to constants
+ if (symContainer->exists(targetName_, const_ns)) {
+ throw Exception(
+ "Cannot assign to constant '" + targetName_ + "'", filename_, line_, column_);
+ }
if (!symContainer->exists(targetName_, var_ns)) {
throw Exception(
"Variable '" + targetName_ + "' does not exist in namespace: " + var_ns,
--
Gitblit v1.9.3