Keywords 'break' and 'continue' are working, untested

See #152
This commit is contained in:
2024-12-30 09:50:51 +11:00
parent 6d25beea03
commit b84a70cc34
7 changed files with 252 additions and 32 deletions

33
.notes/disassembly.txt Normal file
View File

@@ -0,0 +1,33 @@
//source
while (true) {
print "1";
break;
print "2";
}
print "3";
//asm
0 TOY_OPCODE_READ [TOY_VALUE_BOOLEAN, true, -]
4 TOY_OPCODE_JUMP [TOY_OP_PARAM_JUMP_RELATIVE, TOY_OP_PARAM_JUMP_IF_FALSE, -]
8 52 (jumps to end '64' after this JUMP instruction)
12 TOY_OPCODE_SCOPE_PUSH
16 TOY_OPCODE_READ [TOY_VALUE_STRING, TOY_STRING_LEAF, 0]
20 0 (string "1")
24 TOY_OPCODE_PRINT
28 TOY_OPCODE_ESCAPE
32 0? (addr)
36 0? (diff)
40 TOY_OPCODE_READ [TOY_VALUE_STRING, TOY_STRING_LEAF, 0]
44 4 (string "2")
48 TOY_OPCODE_PRINT
52 TOY_OPCODE_SCOPE_POP
56 TOY_OPCODE_JUMP [TOY_OP_PARAM_JUMP_RELATIVE, TOY_OP_PARAM_JUMP_ALWAYS, -]
60 -64 (jumps to start '0' after this JUMP instruction)
64 TOY_OPCODE_READ [TOY_VALUE_STRING, TOY_STRING_LEAF, 0]
68 8 (string "3")
72 TOY_OPCODE_PRINT
76 TOY_OPCODE_RETURN