diff options
Diffstat (limited to 'new-luxc/source/luxc/lang.lux')
-rw-r--r-- | new-luxc/source/luxc/lang.lux | 44 |
1 files changed, 44 insertions, 0 deletions
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))) |