From 857a6211798c8141e0bbdaf1c4d5081f07878a33 Mon Sep 17 00:00:00 2001 From: Ian Piumarta Date: Wed, 22 Jan 2025 15:10:10 +0900 Subject: [PATCH] handle global variables and addition --- main.leg | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/main.leg b/main.leg index 097bb73..322bda5 100644 --- a/main.leg +++ b/main.leg @@ -1,6 +1,6 @@ # main.leg -- C parser + interpreter # -# Last edited: 2025-01-22 15:05:59 by piumarta on zora +# Last edited: 2025-01-22 15:10:04 by piumarta on zora %{ ; @@ -1943,7 +1943,11 @@ oop preval(oop exp) case Tfunction: assert(!"this cannot happen"); case VarDecls: { oop vars = get(exp, VarDecls,variables); - Array_do(vars, var) assert(Scope_lookup(get(var, Variable,name))); + Array_do(vars, var) { + assert(Scope_lookup(get(var, Variable,name))); + oop init = get(var, Variable,value); + if (!isNil(init)) set(var, Variable,value, preval(init)); + } return nil; } case Scope: assert(!"this cannot happen");