aboutsummaryrefslogtreecommitdiff
path: root/forth/reader.fs
diff options
context:
space:
mode:
authorChouser <chouser@n01se.net>2015-02-15 13:33:44 -0500
committerChouser <chouser@n01se.net>2015-02-21 13:22:44 -0500
commit60801ed68d5b2c6630c83883de150ccce98767f9 (patch)
tree5f37431cd6610050e456401be5990004a70dfea6 /forth/reader.fs
parent79feb89f9c75d30e79b9ef13fa40d2f8e22f4b9b (diff)
downloadmal-60801ed68d5b2c6630c83883de150ccce98767f9.tar.gz
mal-60801ed68d5b2c6630c83883de150ccce98767f9.zip
forth: Add step 4, but not varargs
Diffstat (limited to 'forth/reader.fs')
-rw-r--r--forth/reader.fs9
1 files changed, 7 insertions, 2 deletions
diff --git a/forth/reader.fs b/forth/reader.fs
index f65db2c..2ed3446 100644
--- a/forth/reader.fs
+++ b/forth/reader.fs
@@ -141,8 +141,13 @@ defer read-form ( str-addr str-len -- str-addr str-len mal-obj )
obj swap conj
s" with-meta" MalSymbol. swap conj
else
- read-symbol-str MalSymbol.
- endif endif endif endif endif endif endif endif endif endif endif endif
+ read-symbol-str
+ 2dup s" true" str= if 2drop mal-true
+ else 2dup s" false" str= if 2drop mal-false
+ else 2dup s" nil" str= if 2drop mal-nil
+ else
+ MalSymbol.
+ endif endif endif endif endif endif endif endif endif endif endif endif endif endif endif
dup skip-elem =
while drop repeat ;
' read-form2 is read-form