.
This commit is contained in:
parent
85065a23e6
commit
822f5c9ae4
2 changed files with 6 additions and 6 deletions
|
|
@ -3,7 +3,6 @@ Interp :: struct {
|
||||||
|
|
||||||
symbols: kv.Kv(string, *Interp_Value);
|
symbols: kv.Kv(string, *Interp_Value);
|
||||||
toplevel: []*Node;
|
toplevel: []*Node;
|
||||||
// stack: [..]*Interp_Value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Interp_Value :: struct {
|
Interp_Value :: struct {
|
||||||
|
|
@ -27,8 +26,6 @@ Interp_Value :: struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
init :: (i: *Interp, allocator: Allocator) {
|
init :: (i: *Interp, allocator: Allocator) {
|
||||||
// i.stack.allocator = allocator;
|
|
||||||
|
|
||||||
value_nil = make_interp_value(i, .nil);
|
value_nil = make_interp_value(i, .nil);
|
||||||
|
|
||||||
value_true = make_interp_value(i, .bool);
|
value_true = make_interp_value(i, .bool);
|
||||||
|
|
@ -56,15 +53,16 @@ interp_program :: (i: *Interp) {
|
||||||
case .print;
|
case .print;
|
||||||
print := it.(*Node_Print);
|
print := it.(*Node_Print);
|
||||||
expr := interp_expr(i, print.expr);
|
expr := interp_expr(i, print.expr);
|
||||||
basic.assert(expr != null); // @errors
|
if expr == null continue;
|
||||||
|
|
||||||
if expr.kind == {
|
if expr.kind == {
|
||||||
case .none; basic.print("()");
|
case .none; // do nothing
|
||||||
case .nil; basic.print("nil");
|
case .nil; basic.print("nil");
|
||||||
case .bool; basic.print("%", expr.b);
|
case .bool; basic.print("%", expr.b);
|
||||||
case .int; basic.print("%", expr.i);
|
case .int; basic.print("%", expr.i);
|
||||||
case .float; basic.print("%", expr.f);
|
case .float; basic.print("%", expr.f);
|
||||||
case .string; basic.print("%", expr.s);
|
case .string; basic.print("%", expr.s);
|
||||||
|
case; basic.assert(false, "unhandled interp value kind: %", expr.kind);
|
||||||
}
|
}
|
||||||
|
|
||||||
basic.print("\n");
|
basic.print("\n");
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,13 @@
|
||||||
|
|
||||||
#scope_module;
|
#scope_module;
|
||||||
|
|
||||||
|
// exported to the entire module since we want these everywhere
|
||||||
|
|
||||||
mem :: #import "jc/memory";
|
mem :: #import "jc/memory";
|
||||||
array :: #import "jc/array";
|
array :: #import "jc/array";
|
||||||
kv :: #import "jc/kv";
|
kv :: #import "jc/kv";
|
||||||
|
|
||||||
basic :: #import "Basic"; // @future
|
basic :: #import "Basic"; // @future
|
||||||
strings :: #import "String"; // @future
|
strings :: #import "String"; // @future
|
||||||
|
|
||||||
#scope_file;
|
#scope_file;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue