Define ELSE
[rrq/jonasforth.git] / sys.f
diff --git a/sys.f b/sys.f
index bc9dae9b53f5cae19ac523786215678299ae9e3c..cab2ab7173df3f16b69381af1c9659e0cd19629a 100644 (file)
--- a/sys.f
+++ b/sys.f
@@ -9,3 +9,27 @@ EXIT [
   [ S" [" FIND >CFA , ]
   EXIT
 [ IMMEDIATE
+
+: / /MOD DROP ;
+: MOD /MOD SWAP DROP ;
+: NEG 0 SWAP - ;
+
+: IF IMMEDIATE
+  ' 0BRANCH ,
+  HERE @
+  0 ,
+;
+
+: THEN IMMEDIATE
+  DUP
+  HERE @ SWAP -
+  SWAP !
+;
+
+: ELSE IMMEDIATE
+  ' BRANCH ,
+  HERE @
+  0 ,
+  SWAP DUP HERE @ SWAP - SWAP !
+;
+