aboutsummaryrefslogtreecommitdiff
path: root/grammar.txt
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-04-24 08:37:02 +0100
committertslil <tslil@posteo.de>2026-04-24 09:36:19 +0100
commit85f0f5bd9ba573ad288ed582399b37e126f598c9 (patch)
treef7f8ccd2c3ab564bfffc7b4f65f2f513f668e282 /grammar.txt
parentca4fb6dd0d47054688e8ce3cd3931983ddf7eecf (diff)
checking for injections, projections, rm vesitigial App
Diffstat (limited to 'grammar.txt')
-rw-r--r--grammar.txt5
1 files changed, 2 insertions, 3 deletions
diff --git a/grammar.txt b/grammar.txt
index 34d8e1b..607d759 100644
--- a/grammar.txt
+++ b/grammar.txt
@@ -10,7 +10,7 @@ instance_decl = "let instance" , inst_var , "::" , signature , "=" , instanc
set = record_set | variant_set | builtin_set | claimed_set | set_var | "(" , set , ")" ;
record_set = "record" , "{" , [ set_field { "," , set_field } ] , "}" ;
set_field = "." , lower_ident , ":" , set ;
-variant_set = "variant" , "{" , [ variant_field { "|" , variant_field } ] , "}" ;
+variant_set = "variant" , "[" , [ variant_field { "|" , variant_field } ] , "]" ;
variant_field = lower_ident , "." , ":" , set ;
builtin_set = "Nat" | "Int" | "Float" | "Str" | "Bool" ;
claimed_set = "set" , "(" , instance , ")" ;
@@ -22,10 +22,9 @@ function_sig = param_list , "->" , signature ;
param_list = param { param } ;
param = "(" , elem_var , ":" , set , ")" ;
-element = case_elem | app_elem ;
+element = case_elem | dot_elem ;
case_elem = "case" , element , "of" , "{" , [ case_arm { "|" , case_arm } ] , "}" ;
case_arm = inject_elem , elem_var , "=>" , element ;
-app_elem = dot_elem { dot_elem } ;
dot_elem = { inject_elem } , atom_elem , { project_elem } ;
inject_elem = ident , "." ;
project_elem = "." , ident ;