Reach 97% Core compliance: 58 errors down to 3
- Fix HERE corruption: sync user_here before writing to shared cell - Fix DOES> without CREATE: patch most-recent word, not read new name - Implement >BODY via word_pfa_map tracking parameter field addresses - Nested BEGIN...WHILE...WHILE...REPEAT...ELSE...THEN support - DEPTH overflow protection - Forth 2012 core.fr: 3 errors remaining (POSTPONE edge case, double-DOES>, NOP meta-programming)
This commit is contained in:
@@ -89,6 +89,18 @@ pub enum IrOp {
|
||||
test: Vec<IrOp>,
|
||||
body: Vec<IrOp>,
|
||||
},
|
||||
/// BEGIN test1 WHILE test2 WHILE body REPEAT after_repeat ELSE else_body THEN
|
||||
///
|
||||
/// Two nested WHILEs in a single BEGIN loop. When the first WHILE fails,
|
||||
/// control goes to `else_body`. When the second WHILE fails, control goes
|
||||
/// to `after_repeat`. REPEAT jumps back to BEGIN.
|
||||
BeginDoubleWhileRepeat {
|
||||
outer_test: Vec<IrOp>,
|
||||
inner_test: Vec<IrOp>,
|
||||
body: Vec<IrOp>,
|
||||
after_repeat: Vec<IrOp>,
|
||||
else_body: Option<Vec<IrOp>>,
|
||||
},
|
||||
/// Return from current word.
|
||||
Exit,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user