diff options
Diffstat (limited to 'src/lux/analyser.clj')
-rw-r--r-- | src/lux/analyser.clj | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lux/analyser.clj b/src/lux/analyser.clj index 8f05232a2..a26ee44b2 100644 --- a/src/lux/analyser.clj +++ b/src/lux/analyser.clj @@ -35,6 +35,9 @@ [::&parser/Tuple ?elems] (&&lux/analyse-tuple analyse-ast ?elems) + [::&parser/Record ?elems] + (&&lux/analyse-record analyse-ast ?elems) + [::&parser/Tag ?tag] (let [tuple-type [::&type/Tuple (list)]] (return (list [::&&/Expression [::&&/variant ?tag [::&&/Expression [::&&/tuple (list)] tuple-type]] @@ -49,6 +52,12 @@ [::&parser/Form ([[::&parser/Ident "lambda'"] [::&parser/Ident ?self] [::&parser/Ident ?arg] ?body] :seq)] (&&lux/analyse-lambda analyse-ast ?self ?arg ?body) + [::&parser/Form ([[::&parser/Ident "get@'"] [::&parser/Tag ?slot] ?record] :seq)] + (&&lux/analyse-get analyse-ast ?slot ?record) + + [::&parser/Form ([[::&parser/Ident "set@'"] [::&parser/Tag ?slot] ?value ?record] :seq)] + (&&lux/analyse-set analyse-ast ?slot ?value ?record) + [::&parser/Form ([[::&parser/Ident "def'"] [::&parser/Ident ?name] ?value] :seq)] (&&lux/analyse-def analyse-ast ?name ?value) |