diff options
author | Eduardo Julian | 2014-12-15 22:28:27 -0400 |
---|---|---|
committer | Eduardo Julian | 2014-12-15 22:28:27 -0400 |
commit | ab72e219835d05d7ce76111626a8119a64f5f283 (patch) | |
tree | 6f13de468108da4fc338f785f3010f61335b112a /src/lang/analyser.clj | |
parent | a37f958774bd0f7b1800a68a44492e4f95d26e8c (diff) |
Added "do" expressions.
Diffstat (limited to '')
-rw-r--r-- | src/lang/analyser.clj | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lang/analyser.clj b/src/lang/analyser.clj index d00fb7319..8572cfa53 100644 --- a/src/lang/analyser.clj +++ b/src/lang/analyser.clj @@ -170,6 +170,11 @@ :let [_ (prn '=else =else)]] (return (annotated [::if =test =then =else] ::&type/nothing)))) +(defanalyser analyse-do + [::&parser/do ?exprs] + (exec [=exprs (map-m analyse-form* ?exprs)] + (return (annotated [::do =exprs] (-> =exprs last :type))))) + (defanalyser analyse-let [::&parser/let ?label ?value ?body] (exec [=value (analyse-form* ?value) @@ -275,6 +280,7 @@ analyse-dynamic-access analyse-fn-call analyse-if + analyse-do analyse-let analyse-defclass analyse-definterface |