trying to fix some goto implementation issues
This commit is contained in:
parent
490804d0aa
commit
55bf7e269e
@ -108,7 +108,15 @@ start:
|
|||||||
[goto B02. A01: 10. B02: 1000. ] value class dump.
|
[goto B02. A01: 10. B02: 1000. ] value class dump.
|
||||||
self q.
|
self q.
|
||||||
|
|
||||||
[ | a | a := 21. if (a = 21) { goto X02 }. X02: ] value dump. ## this causes a stack depletion problem... TODO:
|
[ | a | a := 21. if (a = 21) { goto X02 }. X02: ] value dump. // this causes a stack depletion problem... TODO:
|
||||||
|
|
||||||
|
/*
|
||||||
|
this is horrible... the stack won't be cleared when goto is made...
|
||||||
|
System should never be popped out
|
||||||
|
(if (2 > 1) { 20. System log: (if (2 > 1) {goto X2}) }) dump.
|
||||||
|
X2:
|
||||||
|
a dump.
|
||||||
|
*/
|
||||||
|
|
||||||
EXCEPTION_TEST:
|
EXCEPTION_TEST:
|
||||||
Exception signal: 'experiment with exception signalling'.
|
Exception signal: 'experiment with exception signalling'.
|
||||||
|
@ -959,7 +959,7 @@ enum moo_bcode_t
|
|||||||
BCODE_JUMP2_FORWARD_IF_TRUE = 0xC7, /* 199 ## */
|
BCODE_JUMP2_FORWARD_IF_TRUE = 0xC7, /* 199 ## */
|
||||||
BCODE_JUMP_FORWARD_IF_FALSE = 0xC8, /* 200 ## */
|
BCODE_JUMP_FORWARD_IF_FALSE = 0xC8, /* 200 ## */
|
||||||
BCODE_JUMP2_FORWARD_IF_FALSE = 0xC9, /* 201 ## */
|
BCODE_JUMP2_FORWARD_IF_FALSE = 0xC9, /* 201 ## */
|
||||||
/* JMPOP = JUMP + POP */
|
/* JMPOP = JUMP + POP -> it pops the stack top always but it jumps only if the condition is met */
|
||||||
BCODE_JMPOP_FORWARD_IF_TRUE = 0xCA, /* 202 ## */
|
BCODE_JMPOP_FORWARD_IF_TRUE = 0xCA, /* 202 ## */
|
||||||
BCODE_JMPOP2_FORWARD_IF_TRUE = 0xCB, /* 203 ## */
|
BCODE_JMPOP2_FORWARD_IF_TRUE = 0xCB, /* 203 ## */
|
||||||
BCODE_JMPOP_FORWARD_IF_FALSE = 0xCC, /* 204 ## */
|
BCODE_JMPOP_FORWARD_IF_FALSE = 0xCC, /* 204 ## */
|
||||||
|
Loading…
Reference in New Issue
Block a user