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
defConst("DODOES", DODOES)
FROMDOES_PAREN = defWord("(DOES>)",
- [DODOES, LAST, FETCH, TOCFA, STORE, EXIT])
+ [DODOES, LATEST, FETCH, TOCFA, STORE, EXIT])
FROMDOES = defWord("DOES>",
[BTICK, FROMDOES_PAREN, COMMA, BTICK, EXIT, COMMA,
return NEXT
end)
-TELL = defPrimWord("TELL", () -> begin
+TYPE = defPrimWord("TYPE", () -> begin
len = popPS()
addr = popPS()
str = getString(addr, len)
end
end, flags=F_IMMED)
-# Odds and Ends
-
-CHAR = defPrimWord("CHAR", () -> begin
- callPrim(mem[WORD])
- wordLen = popPS()
- wordAddr = popPS()
- word = getString(wordAddr, wordLen)
- pushPS(Int64(word[1]))
-
- return NEXT
-end)
+#### VM loop ####
initialized = false
initFileName = nothing
initFileName = Pkg.dir("forth/src/lib.4th")
end
-
-#### VM loop ####
function run(;initialize=true)
# Begin with STDIN as source
push!(sources, STDIN)