diff --git a/main.leg b/main.leg index dac6113..c87f379 100644 --- a/main.leg +++ b/main.leg @@ -1,6 +1,6 @@ # main.leg -- C parser + interpreter # -# Last edited: 2025-02-03 11:58:41 by piumarta on xubuntu +# Last edited: 2025-02-03 13:38:56 by piumarta on zora-1043.local %{ ; @@ -1364,6 +1364,10 @@ void printiln(oop obj, int indent) switch (getType(obj)) { case Undefined: printf("nil\n"); break; case Input: printf("<%s>\n", get(obj, Input,name)); break; + case Token: printf("Token<%s:%d %s>\n", + get(obj, Token,file), + get(obj, Token,line), + get(obj, Token,text)); break; case Integer: printf("%ld\n", integerValue(obj)); break; case Float: printf("%f\n", floatValue(obj)); break; case Pointer: { @@ -3540,6 +3544,7 @@ oop eval(oop exp) switch (getType(exp)) { case Undefined: assert(!"this cannot happen"); case Input: assert(!"this cannot happen"); + case Token: assert(!"this cannot happen"); case Integer: RETURN(exp); case Float: RETURN(exp); case Pointer: RETURN(exp); @@ -3821,6 +3826,7 @@ oop eval(oop exp) switch (getType(type)) { case Tpointer: { if (is(Pointer,rhs)) RETURN(castPointer(rhs, type)); + default: break; } } RETURN(cvt(rhs)); @@ -3933,6 +3939,7 @@ oop preval(oop exp) switch (getType(exp)) { case Undefined: return exp; case Input: break; + case Token: break; case Integer: return exp; case Float: return exp; case Pointer: return exp; @@ -4391,6 +4398,7 @@ void compileOn(oop exp, oop program, oop cs, oop bs) switch (getType(exp)) { case Undefined: EMITio(iPUSH, exp); return; case Input: EMITio(iPUSH, exp); return; + case Token: assert(!"this cannot happen"); case Integer: EMITio(iPUSH, exp); return; case Float: EMITio(iPUSH, exp); return; case Pointer: assert(!"unimplemented");