X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=src%2Flib.4th;h=81b1e6fc8403a7b1977526033846ac314f2ec611;hb=dfc28eefbcea7eb34cf9c1e0df010322b291c40a;hp=c9df3d96729631cd2abf60ce1594e518f810c449;hpb=6162399a858a397add5ed60ba33f31a4d6dba4c2;p=forth.jl.git diff --git a/src/lib.4th b/src/lib.4th index c9df3d9..81b1e6f 100644 --- a/src/lib.4th +++ b/src/lib.4th @@ -1,6 +1,5 @@ : \ IMMEDIATE - KEY - 10 = 0BRANCH [ -5 , ] + #TIB @ >IN ! ; \ We can now comment! \ BASIC DEFINITIONS ---------------------------------------------------------------------- @@ -33,11 +32,9 @@ : LITERAL IMMEDIATE ['] LIT , , ; -: CHAR - BL WORD - DROP @ -; +: ' BL WORD FIND >CFA ; +: CHAR BL WORD 1+ @ ; : [CHAR] IMMEDIATE CHAR ['] LIT , , @@ -59,9 +56,6 @@ , \ compile it ; -: DEBUGON TRUE DEBUG ! ; -: DEBUGOFF FALSE DEBUG ! ; - \ CONTROL STRUCTURES ---------------------------------------------------------------------- : IF IMMEDIATE @@ -154,6 +148,7 @@ ; : +LOOP IMMEDIATE + ['] DUP , \ Store copy of increment ['] R> , ['] SWAP , ['] R> , ['] SWAP , ['] R> , ['] SWAP , ['] + , ['] 2DUP , ['] - , @@ -220,11 +215,11 @@ : ( IMMEDIATE 1 \ allowed nested parens by keeping track of depth BEGIN - >IN #TIB >= IF \ End of TIB? + >IN @ #TIB @ >= IF \ End of TIB? QUERY \ Get next line THEN - >IN @ 1 >IN +! + TIB >IN @ + @ 1 >IN +! DUP [CHAR] ( = IF \ open paren? DROP \ drop the open paren 1+ \ depth increases