Add variable storage: two parallel arrays for names and values, a counter, getVar and setVar.
var var_names: [256][]const u8 = undefined;
var var_values: [256]i64 = undefined;
var num_vars: usize = 0;
fn getVar(name: []const u8) i64 {
var i: usize = num_vars;
while (i > 0) {
i -= 1;
if (streq(var_names[i], name)) {
return var_values[i];
}
}
return 0;
}
fn setVar(name: []const u8, val: i64) void {
for (0..num_vars) |i| {
if (streq(var_names[i], name)) {
var_values[i] = val;
return;
}
}
var_names[num_vars] = name;
var_values[num_vars] = val;
num_vars += 1;
}