+ STATE_CFA, FETCH, ZBRANCH, 27,
+ # Compiling
+ DUP, FIND, ZBRANCH, 17,
+
+ # Found word.
+ DUP, TOCFA, SWAP, INCR, FETCH, LIT, F_IMMED, AND, ZBRANCH, 4,
+ # Immediate: Execute!
+ EXECUTE, BRANCH, -30,
+
+ # Not immediate: Compile!
+ COMMA, BRANCH, -33,
+
+ # No word found, parse number
+ NUMBER, BTICK, LIT, COMMA, BRANCH, -39,
+
+ # Interpreting
+ DUP, FIND, QDUP, ZBRANCH, 7,
+
+ # Found word. Execute!
+ SWAP, DROP, TOCFA, EXECUTE, BRANCH, -50,
+
+ # No word found, parse number and leave on stack
+ NUMBER, BRANCH, -53,
+ EXIT]
+)
+
+PROMPT = defPrimWord("PROMPT", () -> begin
+ if (mem[STATE] == 0 && currentSource() == STDIN)
+ println(" ok")