From dd5220e13b03c8f85972feac535a34ef64525222 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 9 May 2017 17:48:27 -0400 Subject: - Added tests for some kinds of analysis. - WIP: Porting more code. --- new-luxc/source/luxc/lang/analysis.lux | 30 ++++++++++++++++++++++++++++++ new-luxc/source/luxc/lang/pattern.lux | 15 +++++++++++++++ new-luxc/source/luxc/lang/synthesis.lux | 21 +++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 new-luxc/source/luxc/lang/analysis.lux create mode 100644 new-luxc/source/luxc/lang/pattern.lux create mode 100644 new-luxc/source/luxc/lang/synthesis.lux (limited to 'new-luxc/source/luxc/lang') diff --git a/new-luxc/source/luxc/lang/analysis.lux b/new-luxc/source/luxc/lang/analysis.lux new file mode 100644 index 000000000..092b561f0 --- /dev/null +++ b/new-luxc/source/luxc/lang/analysis.lux @@ -0,0 +1,30 @@ +(;module: + lux + (lux (data [product])) + (.. ["lp" pattern])) + +(type: #export (Analysis' Analysis) + #Unit + (#Bool Bool) + (#Nat Nat) + (#Int Int) + (#Deg Deg) + (#Real Real) + (#Char Char) + (#Text Text) + (#Variant Nat Bool Analysis) + (#Tuple (List Analysis)) + (#Case (List [lp;Pattern Analysis])) + (#Function Scope Analysis) + (#Call Analysis (List Analysis)) + (#Procedure Text (List Analysis)) + (#Relative Ref) + (#Absolute Ident)) + +(type: #export #rec Analysis + (Meta [Type Cursor] + (Analysis' Analysis))) + +(def: #export (get-type analysis) + (-> Analysis Type) + (|> analysis product;left product;left)) diff --git a/new-luxc/source/luxc/lang/pattern.lux b/new-luxc/source/luxc/lang/pattern.lux new file mode 100644 index 000000000..a0077133b --- /dev/null +++ b/new-luxc/source/luxc/lang/pattern.lux @@ -0,0 +1,15 @@ +(;module: + lux) + +(type: #export #rec Pattern + (#Ref Nat) + #Unit + (#Bool Bool) + (#Nat Nat) + (#Int Int) + (#Deg Deg) + (#Real Real) + (#Char Char) + (#Text Text) + (#Tuple (List Pattern)) + (#Variant [Nat Nat] Pattern)) diff --git a/new-luxc/source/luxc/lang/synthesis.lux b/new-luxc/source/luxc/lang/synthesis.lux new file mode 100644 index 000000000..00cccfbe6 --- /dev/null +++ b/new-luxc/source/luxc/lang/synthesis.lux @@ -0,0 +1,21 @@ +(;module: + lux + (.. ["lp" pattern])) + +(type: #export #rec Synthesis + #Unit + (#Bool Bool) + (#Nat Nat) + (#Int Int) + (#Deg Deg) + (#Real Real) + (#Char Char) + (#Text Text) + (#Variant Nat Bool Synthesis) + (#Tuple (List Synthesis)) + (#Case (lp;Pattern Synthesis)) + (#Function Scope Synthesis) + (#Call Synthesis (List Synthesis)) + (#Procedure Text (List Synthesis)) + (#Relative Ref) + (#Absolute Ident)) -- cgit v1.2.3