Add headerless definitions
authorUlrich Hoffmann <uho@xlerb.de>
Sat, 23 Nov 2019 11:26:04 +0000 (12:26 +0100)
committerUlrich Hoffmann <uho@xlerb.de>
Sat, 23 Nov 2019 11:26:04 +0000 (12:26 +0100)
preForth/TODO.md
preForth/hi.forth
preForth/seedForthInteractive.seedsource

index 66d5b88..5cd0761 100644 (file)
@@ -54,4 +54,7 @@
 
 - Recognizers based text interpreter/compiler (based on new terms)
 
+- marker
+
+- Prefix Bit and Prefix Dictionary Search
 
index 360daa3..d81df4a 100644 (file)
@@ -168,7 +168,7 @@ t{ 10 20 30 1 pick ->  10 20 30 20 }t
 
 t{ 10 20 30 1 roll ->  10 30 20 }t
 
-Variable (to) (to) off
+Variable (to) (to) off
 
 : Value ( x -- ) 
     Create , 
@@ -198,7 +198,6 @@ t{ 4 3 5 within -> true }t
 t{ 5 3 5 within -> false }t
 t{ 6 3 5 within -> false }t
 
-
 Variable up
 
 : User ( x -- )
@@ -234,23 +233,37 @@ t{ 10 fib -> 55 }t
 
 
 \ remove headers from dictionary
-: unlink-header ( addr name -- ) 2dup ." unlink " . .
-    dup >r ( _link ) @ swap !  r> free throw ; 
+: unlink-header ( addr name -- ) 2dup ." unlink " . .
+     dup >r ( _link ) @ swap !  r> dispose ;
 
 : remove-headers ( -- )
    context dup @ 
    BEGIN ( addr name )
       dup 
    WHILE ( addr name )
-      dup headerless? IF over >r unlink-header r> dup ELSE nip dup THEN
-      @ 
-   REPEAT  
+      dup headerless? IF over >r unlink-header r> ELSE nip THEN ( addr )
+      dup 
+   REPEAT
    2drop ;
 
 | : hidden ." still there - " ;
 
 : visible hidden hidden ;
 
-remove-headers
+\ remove-headers
+
+: package ( <name> -- )  parse-name 2drop ;
+: private ( -- ) heads off ;
+: public ( -- ) heads on ;
+: end-package ( -- ) remove-headers ;
+
+
+package test
+  : a ." a" ;
+private
+  : b ." b" ;
+public
+  : c a b ." c" ;
+end-package
 
 echo on
index dc2d90c..f0b5ed4 100644 (file)
@@ -610,6 +610,8 @@ end-macro
 ' xor         has-header xor
 ' minint      has-header minint
 ' maxint      has-header maxint
+' dispose     has-header dispose
+' alloc       has-header alloc
 
 ' cr          has-header cr        
 ' .s          has-header .s