From 040be1df88457e4783cf7b719133daabc3562e37 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Wed, 22 Apr 2026 20:28:39 +0200 Subject: [PATCH] Working variables --- semantic/src/scope.rs | 12 ++++++++++-- test/src/main.ms | 7 ++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/semantic/src/scope.rs b/semantic/src/scope.rs index f7b638e..69c2a53 100644 --- a/semantic/src/scope.rs +++ b/semantic/src/scope.rs @@ -38,6 +38,10 @@ impl Scope { Scope::Local(l) => l.parent.next_var_idx(), } } + + pub fn get_name(&self, export: bool) -> String { + format!("{}{}", if export { 'V' } else { 'v' }, self.next_var_idx()) + } } #[derive(Debug)] @@ -89,11 +93,15 @@ impl LocalScope { if let Some(init) = init { let var_type = self.get_type_from_expr(init).unwrap(); + let var_name = name.clone(); + + *name = self.parent.get_name(false); + self.variables.lock().unwrap().insert( - name.clone(), + var_name, Arc::new(VarRef { export: false, - name: name.to_string(), + name: name.clone(), var_type, }), ); diff --git a/test/src/main.ms b/test/src/main.ms index e1170da..0efc119 100644 --- a/test/src/main.ms +++ b/test/src/main.ms @@ -3,9 +3,6 @@ package main; import "fmt"; void main() { - test(67); -} - -void test(int x) { - fmt.println("Hello" + x); + let a = 0; + let b = a + 10; }