diff options
| author | tslil <tslil@posteo.de> | 2026-04-24 08:37:02 +0100 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-04-24 09:36:19 +0100 |
| commit | 85f0f5bd9ba573ad288ed582399b37e126f598c9 (patch) | |
| tree | f7f8ccd2c3ab564bfffc7b4f65f2f513f668e282 /grammar.txt | |
| parent | ca4fb6dd0d47054688e8ce3cd3931983ddf7eecf (diff) | |
checking for injections, projections, rm vesitigial App
Diffstat (limited to 'grammar.txt')
| -rw-r--r-- | grammar.txt | 5 |
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 ; |
