X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=src%2Fforth.jl;h=8c5c3de153954ffcbedfbe49073d08952d776be1;hb=ce55be3d16cf4ccb4284d323fc045b2afed20320;hp=cdfe88d901130ae6720aa9e0aa96c8324403d834;hpb=b6b53f943f1a2ceb89b03c2a2930c66d4972df07;p=forth.jl.git diff --git a/src/forth.jl b/src/forth.jl index cdfe88d..8c5c3de 100644 --- a/src/forth.jl +++ b/src/forth.jl @@ -700,6 +700,12 @@ HIDDEN = defPrim("HIDDEN", () -> begin reurn mem[NEXT] end) +HIDE = defWord("HIDE", + [WORD, + FIND, + HIDDEN, + EXIT]) + COLON = defWord(":", [WORD, CREATE, @@ -714,6 +720,12 @@ SEMICOLON = defWord(";", LBRAC, EXIT], flags=F_IMMEDIATE) +IMMEDIATE = defPrim("IMMEDIATE", () -> begin + lenAndFlagsAddr = mem[LATEST] + 1 + mem[lenAndFlagsAddr] = mem[lenAndFlagsAddr] $ F_IMMEDIATE + return mem[NEXT] +end, flags=F_IMMEDIATE) + #### VM loop #### function runVM() jmp = NEXT