Adding core forth words.
authorTim Vaughan <tgvaughan@gmail.com>
Sun, 24 Apr 2016 02:28:42 +0000 (14:28 +1200)
committerTim Vaughan <tgvaughan@gmail.com>
Sun, 24 Apr 2016 02:28:42 +0000 (14:28 +1200)
src/forth.jl
src/lib.fs [new file with mode: 0644]

index a3c55f0..19e5965 100644 (file)
@@ -882,7 +882,7 @@ BYE = defPrimWord("BYE", () -> begin
 end)
 
 NL = defPrimWord("\n", () -> begin
-    if mem[STATE] == 0
+    if mem[STATE] == 0 && reg.source == STDIN
         println(" ok")
     end
     return NEXT
diff --git a/src/lib.fs b/src/lib.fs
new file mode 100644 (file)
index 0000000..14194cd
--- /dev/null
@@ -0,0 +1,22 @@
+: / /MOD SWAP DROP ;
+: MOD /MOD DROP ;
+
+: '\n' 10 ;
+: BL 32 ;
+
+: CR '\n' emit ;
+: SPACE BL emit ;
+
+: NEGATE 0 swap - ;
+
+: TRUE -1 ;
+: FALSE 0 ;
+: NOT 0= ;
+
+: LITERAL IMMEDIATE
+    ' LIT ,
+    ,
+    ;
+
+: ':' [ CHAR : ] LITERAL ;
+