From a37f958774bd0f7b1800a68a44492e4f95d26e8c Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 15 Dec 2014 20:07:05 -0400 Subject: Added lambdas! (not yet real closures, but coming soon...) --- src/lang/parser.clj | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/lang/parser.clj') diff --git a/src/lang/parser.clj b/src/lang/parser.clj index 3149cf5d4..2f9a26c66 100644 --- a/src/lang/parser.clj +++ b/src/lang/parser.clj @@ -56,6 +56,11 @@ (partition 2 ?parts)))] (return [::record =kvs]))) +(defparser ^:private parse-lambda + [::&lexer/list ([[::&lexer/ident "lambda"] [::&lexer/tuple ?args] ?body] :seq)] + (exec [=body (apply-m parse-form (list ?body))] + (return [::lambda (mapv ident->string ?args) =body]))) + (defparser ^:private parse-def [::&lexer/list ([[::&lexer/ident "def"] ?name ?body] :seq)] (exec [=name (apply-m parse-form (list ?name)) @@ -192,6 +197,7 @@ parse-ident parse-tuple parse-record + parse-lambda parse-def parse-defdata parse-if -- cgit v1.2.3