@@ -20,7 +20,7 @@ module Grain_parsing = struct end
2020% token < string > STRING BYTES CHAR
2121% token LBRACK LBRACKRCARET RBRACK LPAREN RPAREN LBRACE RBRACE LCARET RCARET
2222% token COMMA SEMI AS
23- % token THICKARROW ARROW
23+ % token ARROW
2424% token EQUAL GETS
2525% token UNDERSCORE
2626% token COLON QUESTION DOT ELLIPSIS
@@ -99,7 +99,6 @@ module Grain_parsing = struct end
9999 comma
100100 eos
101101 arrow
102- thickarrow
103102 equal
104103 const
105104 pattern
@@ -192,13 +191,6 @@ comma:
192191arrow:
193192 | ARROW opt_eols {}
194193
195- thickarrow:
196- | THICKARROW opt_eols {}
197-
198- either_arrow:
199- | arrow {}
200- | thickarrow {}
201-
202194equal:
203195 | EQUAL opt_eols {}
204196
@@ -324,9 +316,9 @@ data_typ:
324316 | qualified_uid % prec _below_infix { Type. constr ~loc: (to_loc $ loc) $ 1 [] }
325317
326318typ:
327- | FUN data_typ either_arrow typ { Type. arrow ~loc: (to_loc $ loc) [TypeArgument. mk ~loc: (to_loc $ loc($ 2 )) Unlabeled $ 2 ] $ 4 }
328- | FUN LIDENT either_arrow typ { Type. arrow ~loc: (to_loc $ loc) [TypeArgument. mk ~loc: (to_loc $ loc($ 2 )) Unlabeled (Type. var ~loc: (to_loc $ loc($ 2 )) $ 2 )] $ 4 }
329- | FUN lparen arg_typs? rparen either_arrow typ { Type. arrow ~loc: (to_loc $ loc) (Option. value ~default: [] $ 3 ) $ 6 }
319+ | FUN data_typ arrow typ { Type. arrow ~loc: (to_loc $ loc) [TypeArgument. mk ~loc: (to_loc $ loc($ 2 )) Unlabeled $ 2 ] $ 4 }
320+ | FUN LIDENT arrow typ { Type. arrow ~loc: (to_loc $ loc) [TypeArgument. mk ~loc: (to_loc $ loc($ 2 )) Unlabeled (Type. var ~loc: (to_loc $ loc($ 2 )) $ 2 )] $ 4 }
321+ | FUN lparen arg_typs? rparen arrow typ { Type. arrow ~loc: (to_loc $ loc) (Option. value ~default: [] $ 3 ) $ 6 }
330322 | lparen tuple_typs rparen { Type. tuple ~loc: (to_loc $ loc) $ 2 }
331323 | lparen typ rparen { $ 2 }
332324 | LIDENT { Type. var ~loc: (to_loc $ loc) $ 1 }
@@ -542,8 +534,8 @@ lam_args:
542534 | lseparated_nonempty_list(comma, lam_arg) comma? { $ 1 }
543535
544536lam_expr:
545- | FUN lparen lam_args? rparen thickarrow expr { Expression. lambda ~loc: (to_loc $ loc) ~core_loc: (to_loc $ loc) (Option. value ~default: [] $ 3 ) $ 6 }
546- | FUN LIDENT thickarrow expr { Expression. lambda ~loc: (to_loc $ loc) ~core_loc: (to_loc $ loc) [LambdaArgument. mk ~loc: (to_loc $ loc($ 2 )) (Pattern. var ~loc: (to_loc $ loc($ 2 )) (mkstr $ loc($ 2 ) $ 2 )) None ] $ 4 }
537+ | FUN lparen lam_args? rparen arrow expr { Expression. lambda ~loc: (to_loc $ loc) ~core_loc: (to_loc $ loc) (Option. value ~default: [] $ 3 ) $ 6 }
538+ | FUN LIDENT arrow expr { Expression. lambda ~loc: (to_loc $ loc) ~core_loc: (to_loc $ loc) [LambdaArgument. mk ~loc: (to_loc $ loc($ 2 )) (Pattern. var ~loc: (to_loc $ loc($ 2 )) (mkstr $ loc($ 2 ) $ 2 )) None ] $ 4 }
547539
548540attribute_argument:
549541 | STRING { mkstr $ loc $ 1 }
@@ -583,7 +575,7 @@ when_guard:
583575 | opt_eols WHEN expr { $ 3 }
584576
585577match_branch:
586- | pattern ioption(when_guard) thickarrow expr { MatchBranch. mk ~loc: (to_loc $ loc) $ 1 $ 4 $ 2 }
578+ | pattern ioption(when_guard) arrow expr { MatchBranch. mk ~loc: (to_loc $ loc) $ 1 $ 4 $ 2 }
587579
588580match_branches:
589581 | lseparated_nonempty_list(comma, match_branch) comma? { $ 1 }
0 commit comments