diff --git a/examples/adder.noja b/examples/adder.noja index 0242305..0c00ae8 100644 --- a/examples/adder.noja +++ b/examples/adder.noja @@ -7,5 +7,6 @@ fun makeAdder(n) { add10 = makeAdder(10); add20 = makeAdder(20); -print(add10(1), '\n'); # 11 -print(add20(1), '\n'); # 21 \ No newline at end of file + +assert(add10(1) == 11); +assert(add20(1) == 21); \ No newline at end of file diff --git a/src/lib/compiler/codegen.c b/src/lib/compiler/codegen.c index c9588cb..e212d62 100644 --- a/src/lib/compiler/codegen.c +++ b/src/lib/compiler/codegen.c @@ -440,7 +440,7 @@ static void emitInstrForExprNode(CodegenContext *ctx, ExprNode *expr, Label *lab ListExprNode *l = (ListExprNode*) expr; Operand op; - + op = (Operand) { .type = OPTP_INT, .as_int = l->itemc }; CodegenContext_EmitInstr(ctx, OPCODE_PUSHLST, &op, 1, expr->base.offset, expr->base.length); @@ -495,21 +495,10 @@ static void emitInstrForExprNode(CodegenContext *ctx, ExprNode *expr, Label *lab return; } - case EXPR_NONE: - CodegenContext_EmitInstr(ctx, OPCODE_PUSHNNE, NULL, 0, expr->base.offset, expr->base.length); - return; - - case EXPR_TRUE: - CodegenContext_EmitInstr(ctx, OPCODE_PUSHTRU, NULL, 0, expr->base.offset, expr->base.length); - return; - - case EXPR_FALSE: - CodegenContext_EmitInstr(ctx, OPCODE_PUSHFLS, NULL, 0, expr->base.offset, expr->base.length); - return; - - default: - UNREACHABLE; - break; + case EXPR_NONE: CodegenContext_EmitInstr(ctx, OPCODE_PUSHNNE, NULL, 0, expr->base.offset, expr->base.length); return; + case EXPR_TRUE: CodegenContext_EmitInstr(ctx, OPCODE_PUSHTRU, NULL, 0, expr->base.offset, expr->base.length); return; + case EXPR_FALSE: CodegenContext_EmitInstr(ctx, OPCODE_PUSHFLS, NULL, 0, expr->base.offset, expr->base.length); return; + default: UNREACHABLE; break; } } diff --git a/src/lib/noja_internals.c b/src/lib/noja_internals.c deleted file mode 100644 index e69de29..0000000 diff --git a/src/lib/noja_internals.h b/src/lib/noja_internals.h deleted file mode 100644 index 30f0417..0000000 --- a/src/lib/noja_internals.h +++ /dev/null @@ -1,8 +0,0 @@ - -typedef struct NOJA_Executable NOJA_Executable; -char *NOJA_disassemble(NOJA_Executable *exe); -NOJA_Executable *NOJA_assembleString(const char *str); -NOJA_Executable *NOJA_assembleFile(const char *file); -NOJA_Executable *NOJA_compileString(const char *str); -NOJA_Executable *NOJA_compileFile(const char *file); -bool NOJA_compareExecutables(NOJA_Executable *exe1, NOJA_Executable *exe2);