eof_char = Char(EOF)
c = eof_char
- skip_to_end = false
while true
-
callPrim(mem[KEY])
c = Char(popPS())
- if c == '\\'
- skip_to_end = true
- continue
- end
-
- if skip_to_end
- if c == '\n' || c == eof_char
- skip_to_end = false
- end
- continue
- end
-
if c == ' ' || c == '\t'
continue
end
HIDDEN,
EXIT])
-CREATE = defWord("CREATE",
- [WORD,
- HEADER,
- LIT, DOVAR, COMMA, EXIT]);
-
COLON = defWord(":",
[WORD,
HEADER,
BTICK = defWord("[']",
[FROMR, DUP, INCR, TOR, FETCH, EXIT])
+# CREATE and DOES>
+
+CREATE = defWord("CREATE",
+ [WORD,
+ HEADER,
+ LIT, DOVAR, COMMA, EXIT]);
+
+DODOES = defPrim(() -> begin
+ pushRS(reg.IP)
+ reg.IP = reg.W + 1
+ return NEXT
+end, name="DOCOL")
+
+defConst("DODOES", DODOES)
+
+FROMDOES_PAREN = defWord("(DOES>)",
+ [DODOES, LATEST, FETCH, TOCFA, STORE, EXIT])
+
+FROMDOES = defWord("DOES>",
+ [BTICK, FROMDOES_PAREN, COMMA, BTICK, EXIT, COMMA,
+ BTICK, LIT, COMMA, LATEST, FETCH, TODFA, COMMA], flags=F_IMMED)
+
# Strings