\ shamelessly stolen from gforth \ added default: clause 0 constant case ( C: -- case-sys ) ( R: -- ) immediate : of ( C: -- of-sys ) ( R: x1 x2 -- |x1 ) 1+ >r postpone over postpone = postpone if postpone drop r> ; immediate : endof ( C: case-sys1 of-sys -- case-sys2 ) ( R: -- ) >r postpone else r> ; immediate : default: postpone drop ; immediate : endcase ( C: case-sys -- ) ( R: x -- ) \ postpone drop \ moved to default: 0 ?do postpone then loop ; immediate