-' drop , ' LIT , ' LIT , ' , , 16720 , ' , , ' ; ,
-: ^i ' LIT , ' MODE , ' LIT , ' IWRITE-MODE , ' ! , ' ; ,
-: ^e ' LIT , ' MODE , ' LIT , ' EXECUTE-MODE , ' ! , ' ; ,
-^i
-\: FINISH-STRING DROP STRING-END ;
-\: " STRING-START
-\: KEYPUMP KEY 34 =? JNZ: FINISH-STRING STRING-PUT JMP: KEYPUMP
-\^e
+' drop , ' LIT , ' LIT , ' , , ' EXECUTE-NUM , ' , , ' ; ,
+
+: i ' LIT , ' MODE , ' LIT , ' IWRITE-MODE , ' ! , ' ; ,
+
+\i
+\: e LIT MODE LIT EXECUTE-MODE ! ;
+\: :> word find here define-does ;
+\' :> \dup \define-does
+\: FINISH-" DROP STRING-END ;
+\: " STRING-START \: KLOOP KEY 34 =? JNZ: FINISH-" STRING-PUT JMP: KLOOP
+\:> " " swap lit lit , , lit lit , , ;
+\: IF JZ: \here \8 \+ \, ; word 2drop ;
+\:> IF \: DOIF LIT JZ: , HERE DUP , ;
+\: ELSE ;
+\:> ELSE \: DOELSE LIT JMP: , HERE DUP , SWAP HERE ! ;
+\: THEN ;
+\:> THEN \: DOTHEN HERE ! ;
+\: COMPILE-MODE dup
+\doif 2dup find dup
+ \doif dup find-does dup
+ \doif swap drop rot 2drop execute ;
+ \dothen drop , 2drop ;
+ \dothen drop lit lit , execute-num , ;
+\dothen 2drop ;
+\: c LIT MODE LIT COMPILE-MODE ! ;
+\: DO"
+\e
+