From bf47bd7b3d4f70bc3a481761b8e9ff074313fb44 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 3 May 2017 18:17:00 -0400 Subject: - WIP: Implemented more functionality. - Lots of refactorings. --- new-luxc/source/luxc/lang.lux | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 new-luxc/source/luxc/lang.lux (limited to 'new-luxc/source/luxc/lang.lux') diff --git a/new-luxc/source/luxc/lang.lux b/new-luxc/source/luxc/lang.lux new file mode 100644 index 000000000..0c5c97192 --- /dev/null +++ b/new-luxc/source/luxc/lang.lux @@ -0,0 +1,44 @@ +(;module: + lux) + +(type: #export (Pattern a) Void) + +(type: #export Primitive + #Unit + (#Bool Bool) + (#Nat Nat) + (#Int Int) + (#Deg Deg) + (#Real Real) + (#Char Char) + (#Text Text)) + +(type: #export Reference + (#Relative Ref) + (#Absolute Ident)) + +(type: #export (Structure a) + (#Variant Nat Bool a) + (#Tuple (List a)) + (#Case (Pattern a)) + (#Function Scope a) + (#Call a (List a)) + (#Procedure Text (List a))) + +(type: #export (Analysis' Analysis) + (#Primitive Primitive) + (#Structure (Structure Analysis)) + (#Reference Reference)) + +(type: #export #rec Analysis + (Meta [Type Cursor] + (Analysis' Analysis))) + +(type: #export Synthesis + Unit) + +(type: #export Eval + (-> Type AST (Lux Top))) + +(type: #export Analyser + (-> Eval AST (Lux Analysis))) -- cgit v1.2.3