aboutsummaryrefslogtreecommitdiff
path: root/src/lang/parser.clj
diff options
context:
space:
mode:
authorEduardo Julian2014-12-04 00:28:48 -0400
committerEduardo Julian2014-12-04 00:28:48 -0400
commit0bccd6a2313dc5eadb635d1fbf02dbb0a5ff2cfe (patch)
tree4ad50bca52811d1f6be095028cbb6a3755ab28d9 /src/lang/parser.clj
parentd95a64fddbee73c6433ba7485959766cb2d4c6f9 (diff)
Now compiles booleans and ifs.
Diffstat (limited to '')
-rw-r--r--src/lang/parser.clj7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lang/parser.clj b/src/lang/parser.clj
index d1bd3dbd8..f09d87145 100644
--- a/src/lang/parser.clj
+++ b/src/lang/parser.clj
@@ -19,6 +19,10 @@
(fail* (str "Unmatched token: " token#))))))
;; [Parsers]
+(defparser ^:private parse-boolean
+ [::&lexer/boolean ?boolean]
+ (return [::boolean (Boolean/parseBoolean ?boolean)]))
+
(defparser ^:private parse-int
[::&lexer/int ?int]
(return [::int (Long/parseLong ?int)]))
@@ -162,7 +166,8 @@
(return [::fn-call =f =args])))
(def ^:private parse-form
- (try-all-m [parse-int
+ (try-all-m [parse-boolean
+ parse-int
parse-float
parse-string
parse-ident