aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/analysis.lux
diff options
context:
space:
mode:
Diffstat (limited to 'new-luxc/source/luxc/lang/analysis.lux')
-rw-r--r--new-luxc/source/luxc/lang/analysis.lux30
1 files changed, 30 insertions, 0 deletions
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))