From 953f49d5a46209f2d75e67b50edea378261108cd Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 29 May 2017 22:05:57 -0400 Subject: - Fixes for pattern-matching (case) analysis. - Small refactorings. - Improved common procedures analysis. - Can now handle tagged structures (variants & records). - Tests for pattern-matching, functions (definition & application), and common procedures. --- new-luxc/source/luxc/analyser/procedure.lux | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 new-luxc/source/luxc/analyser/procedure.lux (limited to 'new-luxc/source/luxc/analyser/procedure.lux') diff --git a/new-luxc/source/luxc/analyser/procedure.lux b/new-luxc/source/luxc/analyser/procedure.lux new file mode 100644 index 000000000..d8778844f --- /dev/null +++ b/new-luxc/source/luxc/analyser/procedure.lux @@ -0,0 +1,17 @@ +(;module: + lux + (lux (control monad) + (data [text] + text/format + (coll ["D" dict]) + maybe)) + (luxc ["&" base] + (lang ["la" analysis #+ Analysis])) + (. ["&&;" common])) + +(def: #export (analyse-procedure analyse proc-name proc-args) + (-> &;Analyser Text (List Code) (Lux Analysis)) + (default (&;fail (format "Unknown procedure: " (%t proc-name))) + (do Monad + [proc (D;get proc-name &&common;procedures)] + (wrap (proc analyse proc-args))))) -- cgit v1.2.3