Browse Source

handle global variables and addition

master
Ian Piumarta 3 months ago
parent
commit
857a621179
1 changed files with 6 additions and 2 deletions
  1. +6
    -2
      main.leg

+ 6
- 2
main.leg View File

@ -1,6 +1,6 @@
# main.leg -- C parser + interpreter # 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 Tfunction: assert(!"this cannot happen");
case VarDecls: { case VarDecls: {
oop vars = get(exp, VarDecls,variables); 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; return nil;
} }
case Scope: assert(!"this cannot happen"); case Scope: assert(!"this cannot happen");

Loading…
Cancel
Save