X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=src%2Fforth.jl;h=bf2c8fedc3c1d72b1957554b1efe3cdc10d7c14d;hb=f756abef44feaa53e5f3cf2b7ff2f9bc7940eb10;hp=e571758f6d76254f7c5f70f023cbe6afa95fc7c2;hpb=7cc4407fe0b3da1af97f444bb03d874e868a7152;p=forth.jl.git diff --git a/src/forth.jl b/src/forth.jl index e571758..bf2c8fe 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -626,24 +626,10 @@ WORD = defPrimWord("WORD", () -> begin 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 @@ -852,7 +838,7 @@ end, name="DOCOL") 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, @@ -871,7 +857,7 @@ LITSTRING = defPrimWord("LITSTRING", () -> begin return NEXT end) -TELL = defPrimWord("TELL", () -> begin +TYPE = defPrimWord("TYPE", () -> begin len = popPS() addr = popPS() str = getString(addr, len) @@ -1000,17 +986,7 @@ EOF_WORD = defPrimWord("\x04", () -> begin 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 @@ -1020,8 +996,6 @@ elseif isfile(Pkg.dir("forth/src/lib.4th")) initFileName = Pkg.dir("forth/src/lib.4th") end - -#### VM loop #### function run(;initialize=true) # Begin with STDIN as source push!(sources, STDIN)