From 2e9cddd4159c405bf8ff853060a87082ce44c7da Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Wed, 13 Jul 2016 00:05:46 +1200 Subject: [PATCH] Started adding support for pre-defined symbols. --- scheme.4th | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/scheme.4th b/scheme.4th index 5ea44ee..120edd2 100644 --- a/scheme.4th +++ b/scheme.4th @@ -18,7 +18,7 @@ include defer-is.4th \ ------ Memory ------ -100 constant N +1000 constant N create car-cells N allot create car-type-cells N allot create cdr-cells N allot @@ -65,6 +65,33 @@ variable nextfree objvar symbol-table nil symbol-table setobj +\ ---- Pre-defined symbols ---- + +: (create-symbol) ( addr n -- symbol-obj ) + dup 0= if + 2drop nil + else + 2dup drop @ character-type 2swap + swap 1+ swap 1- + recurse + + cons + then +; + +: create-symbol ( -- ) + bl word + count + (create-symbol) + drop symbol-type + + symbol-table fetchobj + cons + symbol-table setobj +; + +create-symbol quote + \ ---- Read ---- variable parse-idx -- 2.20.1