// #module_parameters(RUN_TESTS := false); #load "parser.jai"; #load "interp.jai"; #scope_module; // exported to the entire module since we want these everywhere mem :: #import "jc/memory"; array :: #import "jc/array"; kv :: #import "jc/kv"; basic :: #import "Basic"; // @future strings :: #import "String"; // @future #scope_file; #run { parser: Parser; init(*parser, context.allocator); ok := parse_string(*parser, #string END fn add(l, r) do return l + r end fn sub(l, r) do return l - r end fn mul(l, r) do return l * r end fn div(l, r) do return l / r end var x = 21.0 var y = 22.0 x = x + 1.0 / 2.0 print x x = add(x, div(1.0, 2.0)) print x print add(x, y) END); interp: Interp; interp.toplevel = parser.toplevel; init(*interp, context.allocator); interp_program(*interp); } // #if RUN_TESTS { // test :: #import "jc/test"; // }