From 0505b9563fe862e6cea1810dda16a500ddd42417 Mon Sep 17 00:00:00 2001 From: Jason Evans Date: Fri, 23 Aug 2024 14:22:29 -0700 Subject: [PATCH] Fix test regressions --- bootstrap/bin/hocc/Parse.hmh | 8 +- bootstrap/bin/hocc/Parse.ml | 827 ++++++++++++++++++++--------------- bootstrap/bin/hocc/spec.ml | 20 +- 3 files changed, 493 insertions(+), 362 deletions(-) diff --git a/bootstrap/bin/hocc/Parse.hmh b/bootstrap/bin/hocc/Parse.hmh index 70563cdf..fadf827f 100644 --- a/bootstrap/bin/hocc/Parse.hmh +++ b/bootstrap/bin/hocc/Parse.hmh @@ -467,11 +467,13 @@ include hocc nonterm SemiSuffix of nonterm_semi_suffix ::= | ";" - | epsilon -> SemiSuffix + | epsilon + -> SemiSuffix nonterm ModulePath of nonterm_module_path ::= | CIDENT - | ModulePath "." ModulePath prec pDOT -> ModulePath + | ModulePath "." ModulePath prec pDOT + -> ModulePath nonterm Pattern of nonterm_pattern ::= | "_" @@ -500,7 +502,7 @@ include hocc -> ProdParamPattern {lparen; pattern; rparen; prod_param_symbol} | lcurly:"{" fields:PatternFields SemiSuffix rcurly:"}" ":" prod_param_symbol:ProdParamSymbol -> ProdParamFields {lcurly; fields; rcurly; prod_param_symbol} - | "_" prod_param_symbol:ProdParamSymbol + | "_" ":" prod_param_symbol:ProdParamSymbol | prod_param_symbol:ProdParamSymbol -> ProdParam {prod_param_symbol} diff --git a/bootstrap/bin/hocc/Parse.ml b/bootstrap/bin/hocc/Parse.ml index dd29358a..ab125347 100644 --- a/bootstrap/bin/hocc/Parse.ml +++ b/bootstrap/bin/hocc/Parse.ml @@ -517,141 +517,141 @@ include struct Prod.init ~index:54L ~lhs_index:62L ~rhs_indexes:[|61L|] ~prec:(Some (Array.get 3L precs)) ~callback:54L; Prod.init ~index:55L ~lhs_index:62L ~rhs_indexes:[|61L; 24L; 13L|] - ~prec:(Some (Array.get 3L precs)) ~callback:54L; - Prod.init ~index:56L ~lhs_index:62L ~rhs_indexes:[|61L; 24L; 61L|] ~prec:(Some (Array.get 3L precs)) ~callback:55L; + Prod.init ~index:56L ~lhs_index:62L ~rhs_indexes:[|61L; 24L; 61L|] + ~prec:(Some (Array.get 3L precs)) ~callback:56L; Prod.init ~index:57L ~lhs_index:63L ~rhs_indexes:[|24L|] - ~prec:None ~callback:56L; + ~prec:None ~callback:57L; Prod.init ~index:58L ~lhs_index:63L ~rhs_indexes:[||] - ~prec:None ~callback:56L; + ~prec:None ~callback:58L; Prod.init ~index:59L ~lhs_index:64L ~rhs_indexes:[|12L|] - ~prec:None ~callback:57L; + ~prec:None ~callback:59L; Prod.init ~index:60L ~lhs_index:64L ~rhs_indexes:[|64L; 18L; 64L|] - ~prec:(Some (Array.get 1L precs)) ~callback:57L; + ~prec:(Some (Array.get 1L precs)) ~callback:60L; Prod.init ~index:61L ~lhs_index:65L ~rhs_indexes:[|13L|] - ~prec:None ~callback:58L; + ~prec:None ~callback:61L; Prod.init ~index:62L ~lhs_index:65L ~rhs_indexes:[|60L|] - ~prec:None ~callback:59L; + ~prec:None ~callback:62L; Prod.init ~index:63L ~lhs_index:65L ~rhs_indexes:[|65L; 25L; 60L|] - ~prec:(Some (Array.get 4L precs)) ~callback:59L; + ~prec:(Some (Array.get 4L precs)) ~callback:63L; Prod.init ~index:64L ~lhs_index:65L ~rhs_indexes:[|29L; 65L; 30L|] - ~prec:None ~callback:60L; + ~prec:None ~callback:64L; Prod.init ~index:65L ~lhs_index:65L ~rhs_indexes:[|12L; 65L|] - ~prec:(Some (Array.get 0L precs)) ~callback:60L; + ~prec:(Some (Array.get 0L precs)) ~callback:65L; Prod.init ~index:66L ~lhs_index:65L ~rhs_indexes:[|64L; 18L; 29L; 65L; 30L|] - ~prec:None ~callback:60L; + ~prec:None ~callback:66L; Prod.init ~index:67L ~lhs_index:65L ~rhs_indexes:[|65L; 23L; 65L|] - ~prec:(Some (Array.get 2L precs)) ~callback:61L; + ~prec:(Some (Array.get 2L precs)) ~callback:67L; Prod.init ~index:68L ~lhs_index:65L ~rhs_indexes:[|37L; 62L; 63L; 38L|] - ~prec:None ~callback:62L; + ~prec:None ~callback:68L; Prod.init ~index:69L ~lhs_index:65L ~rhs_indexes:[|64L; 18L; 37L; 62L; 63L; 38L|] - ~prec:None ~callback:62L; + ~prec:None ~callback:69L; Prod.init ~index:70L ~lhs_index:66L ~rhs_indexes:[|12L|] - ~prec:None ~callback:63L; + ~prec:None ~callback:70L; Prod.init ~index:71L ~lhs_index:66L ~rhs_indexes:[|14L|] - ~prec:None ~callback:64L; + ~prec:None ~callback:71L; Prod.init ~index:72L ~lhs_index:67L ~rhs_indexes:[|60L; 17L; 66L|] - ~prec:None ~callback:65L; + ~prec:None ~callback:72L; Prod.init ~index:73L ~lhs_index:67L ~rhs_indexes:[|29L; 65L; 30L; 17L; 66L|] - ~prec:None ~callback:66L; + ~prec:None ~callback:73L; Prod.init ~index:74L ~lhs_index:67L ~rhs_indexes:[|37L; 62L; 63L; 38L; 17L; 66L|] - ~prec:None ~callback:67L; - Prod.init ~index:75L ~lhs_index:67L ~rhs_indexes:[|13L; 66L|] - ~prec:None ~callback:68L; + ~prec:None ~callback:74L; + Prod.init ~index:75L ~lhs_index:67L ~rhs_indexes:[|13L; 17L; 66L|] + ~prec:None ~callback:75L; Prod.init ~index:76L ~lhs_index:67L ~rhs_indexes:[|66L|] - ~prec:None ~callback:68L; + ~prec:None ~callback:76L; Prod.init ~index:77L ~lhs_index:68L ~rhs_indexes:[|67L; 68L|] - ~prec:None ~callback:69L; + ~prec:None ~callback:77L; Prod.init ~index:78L ~lhs_index:68L ~rhs_indexes:[||] - ~prec:None ~callback:70L; + ~prec:None ~callback:78L; Prod.init ~index:79L ~lhs_index:69L ~rhs_indexes:[|67L; 68L|] - ~prec:None ~callback:71L; + ~prec:None ~callback:79L; Prod.init ~index:80L ~lhs_index:70L ~rhs_indexes:[|69L|] - ~prec:None ~callback:72L; + ~prec:None ~callback:80L; Prod.init ~index:81L ~lhs_index:70L ~rhs_indexes:[|4L|] - ~prec:None ~callback:73L; + ~prec:None ~callback:81L; Prod.init ~index:82L ~lhs_index:71L ~rhs_indexes:[|70L; 49L|] - ~prec:None ~callback:74L; + ~prec:None ~callback:82L; Prod.init ~index:83L ~lhs_index:72L ~rhs_indexes:[|20L; 71L; 72L|] - ~prec:None ~callback:75L; + ~prec:None ~callback:83L; Prod.init ~index:84L ~lhs_index:72L ~rhs_indexes:[||] - ~prec:None ~callback:76L; + ~prec:None ~callback:84L; Prod.init ~index:85L ~lhs_index:73L ~rhs_indexes:[|20L; 71L; 72L|] - ~prec:None ~callback:77L; + ~prec:None ~callback:85L; Prod.init ~index:86L ~lhs_index:73L ~rhs_indexes:[|71L; 72L|] - ~prec:None ~callback:77L; + ~prec:None ~callback:86L; Prod.init ~index:87L ~lhs_index:74L ~rhs_indexes:[|73L; 19L; 59L|] - ~prec:None ~callback:78L; + ~prec:None ~callback:87L; Prod.init ~index:88L ~lhs_index:75L ~rhs_indexes:[|20L; 74L; 75L|] - ~prec:None ~callback:79L; + ~prec:None ~callback:88L; Prod.init ~index:89L ~lhs_index:75L ~rhs_indexes:[||] - ~prec:None ~callback:80L; + ~prec:None ~callback:89L; Prod.init ~index:90L ~lhs_index:76L ~rhs_indexes:[|74L; 75L|] - ~prec:None ~callback:81L; + ~prec:None ~callback:90L; Prod.init ~index:91L ~lhs_index:77L ~rhs_indexes:[|3L|] - ~prec:None ~callback:82L; + ~prec:None ~callback:91L; Prod.init ~index:92L ~lhs_index:77L ~rhs_indexes:[|5L|] - ~prec:None ~callback:83L; + ~prec:None ~callback:92L; Prod.init ~index:93L ~lhs_index:78L ~rhs_indexes:[|77L; 12L; 49L; 15L; 73L|] - ~prec:None ~callback:84L; + ~prec:None ~callback:93L; Prod.init ~index:94L ~lhs_index:78L ~rhs_indexes:[|77L; 12L; 47L; 49L; 15L; 76L|] - ~prec:None ~callback:85L; + ~prec:None ~callback:94L; Prod.init ~index:95L ~lhs_index:79L ~rhs_indexes:[|45L|] - ~prec:None ~callback:86L; + ~prec:None ~callback:95L; Prod.init ~index:96L ~lhs_index:79L ~rhs_indexes:[|51L|] - ~prec:None ~callback:87L; + ~prec:None ~callback:96L; Prod.init ~index:97L ~lhs_index:79L ~rhs_indexes:[|78L|] - ~prec:None ~callback:88L; + ~prec:None ~callback:97L; Prod.init ~index:98L ~lhs_index:79L ~rhs_indexes:[|59L|] - ~prec:None ~callback:89L; + ~prec:None ~callback:98L; Prod.init ~index:99L ~lhs_index:80L ~rhs_indexes:[|26L; 79L; 80L|] - ~prec:None ~callback:90L; + ~prec:None ~callback:99L; Prod.init ~index:100L ~lhs_index:80L ~rhs_indexes:[||] - ~prec:None ~callback:91L; + ~prec:None ~callback:100L; Prod.init ~index:101L ~lhs_index:81L ~rhs_indexes:[|79L; 80L|] - ~prec:None ~callback:92L; + ~prec:None ~callback:101L; Prod.init ~index:102L ~lhs_index:82L ~rhs_indexes:[|2L; 27L; 81L; 28L|] - ~prec:None ~callback:93L; + ~prec:None ~callback:102L; Prod.init ~index:103L ~lhs_index:83L ~rhs_indexes:[|57L|] - ~prec:None ~callback:94L; + ~prec:None ~callback:103L; Prod.init ~index:104L ~lhs_index:83L ~rhs_indexes:[|52L|] - ~prec:None ~callback:95L; + ~prec:None ~callback:104L; Prod.init ~index:105L ~lhs_index:83L ~rhs_indexes:[|27L|] - ~prec:None ~callback:96L; + ~prec:None ~callback:105L; Prod.init ~index:106L ~lhs_index:83L ~rhs_indexes:[|28L|] - ~prec:None ~callback:97L; + ~prec:None ~callback:106L; Prod.init ~index:107L ~lhs_index:83L ~rhs_indexes:[|29L|] - ~prec:None ~callback:98L; + ~prec:None ~callback:107L; Prod.init ~index:108L ~lhs_index:83L ~rhs_indexes:[|30L|] - ~prec:None ~callback:99L; + ~prec:None ~callback:108L; Prod.init ~index:109L ~lhs_index:83L ~rhs_indexes:[|31L|] - ~prec:None ~callback:100L; + ~prec:None ~callback:109L; Prod.init ~index:110L ~lhs_index:83L ~rhs_indexes:[|32L|] - ~prec:None ~callback:101L; + ~prec:None ~callback:110L; Prod.init ~index:111L ~lhs_index:83L ~rhs_indexes:[|33L|] - ~prec:None ~callback:102L; + ~prec:None ~callback:111L; Prod.init ~index:112L ~lhs_index:83L ~rhs_indexes:[|34L|] - ~prec:None ~callback:103L; + ~prec:None ~callback:112L; Prod.init ~index:113L ~lhs_index:83L ~rhs_indexes:[|35L|] - ~prec:None ~callback:104L; + ~prec:None ~callback:113L; Prod.init ~index:114L ~lhs_index:83L ~rhs_indexes:[|36L|] - ~prec:None ~callback:105L; + ~prec:None ~callback:114L; Prod.init ~index:115L ~lhs_index:83L ~rhs_indexes:[|37L|] - ~prec:None ~callback:106L; + ~prec:None ~callback:115L; Prod.init ~index:116L ~lhs_index:83L ~rhs_indexes:[|38L|] - ~prec:None ~callback:107L; + ~prec:None ~callback:116L; Prod.init ~index:117L ~lhs_index:84L ~rhs_indexes:[|83L; 84L|] - ~prec:None ~callback:108L; + ~prec:None ~callback:117L; Prod.init ~index:118L ~lhs_index:84L ~rhs_indexes:[||] - ~prec:None ~callback:109L; + ~prec:None ~callback:118L; Prod.init ~index:119L ~lhs_index:85L ~rhs_indexes:[|84L; 82L; 84L; 40L|] - ~prec:None ~callback:110L; + ~prec:None ~callback:119L; Prod.init ~index:120L ~lhs_index:86L ~rhs_indexes:[|85L; 1L|] - ~prec:None ~callback:111L; + ~prec:None ~callback:120L; Prod.init ~index:121L ~lhs_index:87L ~rhs_indexes:[|84L; 2L; 84L; 40L|] - ~prec:None ~callback:112L; + ~prec:None ~callback:121L; Prod.init ~index:122L ~lhs_index:88L ~rhs_indexes:[|87L; 1L|] - ~prec:None ~callback:113L + ~prec:None ~callback:122L |] module Symbol = struct @@ -10520,34 +10520,16 @@ include struct ] ) ~added:( - Lr1Itemset.init [ - ( - let lr0item = Lr0Item.init ~prod:(Array.get 70L prods) ~dot:0L in - let lr1item = Lr1Item.init ~lr0item ~follow:( - Ordset.of_list (module Uns) [10L; 11L; 12L; 13L; 14L; 19L; 20L; 26L; 28L; 29L; 37L] - ) in - lr0item, lr1item - ); - ( - let lr0item = Lr0Item.init ~prod:(Array.get 71L prods) ~dot:0L in - let lr1item = Lr1Item.init ~lr0item ~follow:( - Ordset.of_list (module Uns) [10L; 11L; 12L; 13L; 14L; 19L; 20L; 26L; 28L; 29L; 37L] - ) in - lr0item, lr1item - ); - ] + Lr1Itemset.empty ) ) ~actions:( Map.of_alist (module Uns) [ - (12L, Action.ShiftPrefix 127L); - (14L, Action.ShiftPrefix 129L); + (17L, Action.ShiftPrefix 145L); ] ) ~gotos:( - Map.of_alist (module Uns) [ - (66L, 145L); - ] + Map.empty (module Uns) ); (* 129 *) State.init ~lr1ItemsetClosure:( @@ -11426,26 +11408,34 @@ include struct ] ) ~added:( - Lr1Itemset.empty + Lr1Itemset.init [ + ( + let lr0item = Lr0Item.init ~prod:(Array.get 70L prods) ~dot:0L in + let lr1item = Lr1Item.init ~lr0item ~follow:( + Ordset.of_list (module Uns) [10L; 11L; 12L; 13L; 14L; 19L; 20L; 26L; 28L; 29L; 37L] + ) in + lr0item, lr1item + ); + ( + let lr0item = Lr0Item.init ~prod:(Array.get 71L prods) ~dot:0L in + let lr1item = Lr1Item.init ~lr0item ~follow:( + Ordset.of_list (module Uns) [10L; 11L; 12L; 13L; 14L; 19L; 20L; 26L; 28L; 29L; 37L] + ) in + lr0item, lr1item + ); + ] ) ) ~actions:( Map.of_alist (module Uns) [ - (10L, Action.Reduce 75L); - (11L, Action.Reduce 75L); - (12L, Action.Reduce 75L); - (13L, Action.Reduce 75L); - (14L, Action.Reduce 75L); - (19L, Action.Reduce 75L); - (20L, Action.Reduce 75L); - (26L, Action.Reduce 75L); - (28L, Action.Reduce 75L); - (29L, Action.Reduce 75L); - (37L, Action.Reduce 75L); + (12L, Action.ShiftPrefix 127L); + (14L, Action.ShiftPrefix 129L); ] ) ~gotos:( - Map.empty (module Uns) + Map.of_alist (module Uns) [ + (66L, 168L); + ] ); (* 146 *) State.init ~lr1ItemsetClosure:( @@ -11491,7 +11481,7 @@ include struct ) ~gotos:( Map.of_alist (module Uns) [ - (72L, 168L); + (72L, 169L); ] ); (* 147 *) State.init @@ -11619,7 +11609,7 @@ include struct Map.of_alist (module Uns) [ (60L, 151L); (64L, 152L); - (65L, 169L); + (65L, 170L); ] ); (* 148 *) State.init @@ -11770,7 +11760,7 @@ include struct Map.of_alist (module Uns) [ (60L, 151L); (64L, 152L); - (65L, 170L); + (65L, 171L); ] ); (* 150 *) State.init @@ -11844,7 +11834,7 @@ include struct Map.of_alist (module Uns) [ (60L, 155L); (61L, 156L); - (62L, 171L); + (62L, 172L); ] ); (* 151 *) State.init @@ -11913,7 +11903,7 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (18L, Action.ShiftPrefix 172L); + (18L, Action.ShiftPrefix 173L); ] ) ~gotos:( @@ -11954,9 +11944,9 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (23L, Action.ShiftPrefix 173L); - (25L, Action.ShiftPrefix 174L); - (30L, Action.ShiftPrefix 175L); + (23L, Action.ShiftPrefix 174L); + (25L, Action.ShiftPrefix 175L); + (30L, Action.ShiftPrefix 176L); ] ) ~gotos:( @@ -11990,7 +11980,7 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (22L, Action.ShiftPrefix 176L); + (22L, Action.ShiftPrefix 177L); (24L, Action.Reduce 51L); (38L, Action.Reduce 51L); ] @@ -12061,7 +12051,7 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (24L, Action.ShiftPrefix 177L); + (24L, Action.ShiftPrefix 178L); (38L, Action.Reduce 54L); ] ) @@ -12104,13 +12094,13 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (24L, Action.ShiftPrefix 178L); + (24L, Action.ShiftPrefix 179L); (38L, Action.Reduce 58L); ] ) ~gotos:( Map.of_alist (module Uns) [ - (63L, 179L); + (63L, 180L); ] ); (* 158 *) State.init @@ -12155,7 +12145,7 @@ include struct ) ~gotos:( Map.of_alist (module Uns) [ - (66L, 180L); + (66L, 181L); ] ); (* 159 *) State.init @@ -12268,7 +12258,7 @@ include struct (60L, 133L); (66L, 134L); (67L, 159L); - (68L, 181L); + (68L, 182L); ] ); (* 160 *) State.init @@ -12454,7 +12444,7 @@ include struct (67L, 135L); (69L, 136L); (70L, 137L); - (71L, 182L); + (71L, 183L); ] ); (* 163 *) State.init @@ -12708,7 +12698,7 @@ include struct Map.of_alist (module Uns) [ (56L, 61L); (57L, 62L); - (59L, 183L); + (59L, 184L); ] ); (* 166 *) State.init @@ -12857,7 +12847,7 @@ include struct (70L, 137L); (71L, 138L); (73L, 142L); - (74L, 184L); + (74L, 185L); ] ); (* 167 *) State.init @@ -12892,6 +12882,43 @@ include struct ~lr1ItemsetClosure:( Lr1ItemsetClosure.init ~index:168L + ~kernel:( + Lr1Itemset.init [ + ( + let lr0item = Lr0Item.init ~prod:(Array.get 75L prods) ~dot:3L in + let lr1item = Lr1Item.init ~lr0item ~follow:( + Ordset.of_list (module Uns) [10L; 11L; 12L; 13L; 14L; 19L; 20L; 26L; 28L; 29L; 37L] + ) in + lr0item, lr1item + ); + ] + ) + ~added:( + Lr1Itemset.empty + ) + ) + ~actions:( + Map.of_alist (module Uns) [ + (10L, Action.Reduce 75L); + (11L, Action.Reduce 75L); + (12L, Action.Reduce 75L); + (13L, Action.Reduce 75L); + (14L, Action.Reduce 75L); + (19L, Action.Reduce 75L); + (20L, Action.Reduce 75L); + (26L, Action.Reduce 75L); + (28L, Action.Reduce 75L); + (29L, Action.Reduce 75L); + (37L, Action.Reduce 75L); + ] + ) + ~gotos:( + Map.empty (module Uns) + ); + (* 169 *) State.init + ~lr1ItemsetClosure:( + Lr1ItemsetClosure.init + ~index:169L ~kernel:( Lr1Itemset.init [ ( @@ -12917,10 +12944,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 169 *) State.init + (* 170 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:169L + ~index:170L ~kernel:( Lr1Itemset.init [ ( @@ -12962,10 +12989,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 170 *) State.init + (* 171 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:170L + ~index:171L ~kernel:( Lr1Itemset.init [ ( @@ -12997,18 +13024,18 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (23L, Action.ShiftPrefix 173L); - (25L, Action.ShiftPrefix 174L); - (30L, Action.ShiftPrefix 185L); + (23L, Action.ShiftPrefix 174L); + (25L, Action.ShiftPrefix 175L); + (30L, Action.ShiftPrefix 186L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 171 *) State.init + (* 172 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:171L + ~index:172L ~kernel:( Lr1Itemset.init [ ( @@ -13041,19 +13068,19 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (24L, Action.ShiftPrefix 178L); + (24L, Action.ShiftPrefix 179L); (38L, Action.Reduce 58L); ] ) ~gotos:( Map.of_alist (module Uns) [ - (63L, 186L); + (63L, 187L); ] ); - (* 172 *) State.init + (* 173 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:172L + ~index:173L ~kernel:( Lr1Itemset.init [ ( @@ -13100,20 +13127,20 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (12L, Action.ShiftPrefix 187L); - (29L, Action.ShiftPrefix 188L); - (37L, Action.ShiftPrefix 189L); + (12L, Action.ShiftPrefix 188L); + (29L, Action.ShiftPrefix 189L); + (37L, Action.ShiftPrefix 190L); ] ) ~gotos:( Map.of_alist (module Uns) [ - (64L, 190L); + (64L, 191L); ] ); - (* 173 *) State.init + (* 174 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:173L + ~index:174L ~kernel:( Lr1Itemset.init [ ( @@ -13227,13 +13254,13 @@ include struct Map.of_alist (module Uns) [ (60L, 151L); (64L, 152L); - (65L, 191L); + (65L, 192L); ] ); - (* 174 *) State.init + (* 175 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:174L + ~index:175L ~kernel:( Lr1Itemset.init [ ( @@ -13264,13 +13291,13 @@ include struct ) ~gotos:( Map.of_alist (module Uns) [ - (60L, 192L); + (60L, 193L); ] ); - (* 175 *) State.init + (* 176 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:175L + ~index:176L ~kernel:( Lr1Itemset.init [ ( @@ -13288,16 +13315,16 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (17L, Action.ShiftPrefix 193L); + (17L, Action.ShiftPrefix 194L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 176 *) State.init + (* 177 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:176L + ~index:177L ~kernel:( Lr1Itemset.init [ ( @@ -13411,13 +13438,13 @@ include struct Map.of_alist (module Uns) [ (60L, 151L); (64L, 152L); - (65L, 194L); + (65L, 195L); ] ); - (* 177 *) State.init + (* 178 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:177L + ~index:178L ~kernel:( Lr1Itemset.init [ ( @@ -13465,19 +13492,19 @@ include struct ~actions:( Map.of_alist (module Uns) [ (11L, Action.ShiftPrefix 154L); - (13L, Action.ShiftPrefix 195L); + (13L, Action.ShiftPrefix 196L); ] ) ~gotos:( Map.of_alist (module Uns) [ (60L, 155L); - (61L, 196L); + (61L, 197L); ] ); - (* 178 *) State.init + (* 179 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:178L + ~index:179L ~kernel:( Lr1Itemset.init [ ( @@ -13501,10 +13528,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 179 *) State.init + (* 180 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:179L + ~index:180L ~kernel:( Lr1Itemset.init [ ( @@ -13522,16 +13549,16 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (38L, Action.ShiftPrefix 197L); + (38L, Action.ShiftPrefix 198L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 180 *) State.init + (* 181 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:180L + ~index:181L ~kernel:( Lr1Itemset.init [ ( @@ -13565,10 +13592,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 181 *) State.init + (* 182 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:181L + ~index:182L ~kernel:( Lr1Itemset.init [ ( @@ -13596,10 +13623,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 182 *) State.init + (* 183 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:182L + ~index:183L ~kernel:( Lr1Itemset.init [ ( @@ -13640,13 +13667,13 @@ include struct ) ~gotos:( Map.of_alist (module Uns) [ - (72L, 198L); + (72L, 199L); ] ); - (* 183 *) State.init + (* 184 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:183L + ~index:184L ~kernel:( Lr1Itemset.init [ ( @@ -13672,10 +13699,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 184 *) State.init + (* 185 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:184L + ~index:185L ~kernel:( Lr1Itemset.init [ ( @@ -13715,13 +13742,13 @@ include struct ) ~gotos:( Map.of_alist (module Uns) [ - (75L, 199L); + (75L, 200L); ] ); - (* 185 *) State.init + (* 186 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:185L + ~index:186L ~kernel:( Lr1Itemset.init [ ( @@ -13749,10 +13776,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 186 *) State.init + (* 187 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:186L + ~index:187L ~kernel:( Lr1Itemset.init [ ( @@ -13770,16 +13797,16 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (38L, Action.ShiftPrefix 200L); + (38L, Action.ShiftPrefix 201L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 187 *) State.init + (* 188 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:187L + ~index:188L ~kernel:( Lr1Itemset.init [ ( @@ -13803,10 +13830,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 188 *) State.init + (* 189 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:188L + ~index:189L ~kernel:( Lr1Itemset.init [ ( @@ -13920,13 +13947,13 @@ include struct Map.of_alist (module Uns) [ (60L, 151L); (64L, 152L); - (65L, 201L); + (65L, 202L); ] ); - (* 189 *) State.init + (* 190 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:189L + ~index:190L ~kernel:( Lr1Itemset.init [ ( @@ -13994,13 +14021,13 @@ include struct Map.of_alist (module Uns) [ (60L, 155L); (61L, 156L); - (62L, 202L); + (62L, 203L); ] ); - (* 190 *) State.init + (* 191 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:190L + ~index:191L ~kernel:( Lr1Itemset.init [ ( @@ -14031,10 +14058,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 191 *) State.init + (* 192 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:191L + ~index:192L ~kernel:( Lr1Itemset.init [ ( @@ -14076,10 +14103,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 192 *) State.init + (* 193 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:192L + ~index:193L ~kernel:( Lr1Itemset.init [ ( @@ -14107,10 +14134,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 193 *) State.init + (* 194 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:193L + ~index:194L ~kernel:( Lr1Itemset.init [ ( @@ -14149,13 +14176,13 @@ include struct ) ~gotos:( Map.of_alist (module Uns) [ - (66L, 203L); + (66L, 204L); ] ); - (* 194 *) State.init + (* 195 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:194L + ~index:195L ~kernel:( Lr1Itemset.init [ ( @@ -14187,19 +14214,19 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (23L, Action.ShiftPrefix 173L); + (23L, Action.ShiftPrefix 174L); (24L, Action.Reduce 53L); - (25L, Action.ShiftPrefix 174L); + (25L, Action.ShiftPrefix 175L); (38L, Action.Reduce 53L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 195 *) State.init + (* 196 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:195L + ~index:196L ~kernel:( Lr1Itemset.init [ ( @@ -14224,10 +14251,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 196 *) State.init + (* 197 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:196L + ~index:197L ~kernel:( Lr1Itemset.init [ ( @@ -14252,10 +14279,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 197 *) State.init + (* 198 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:197L + ~index:198L ~kernel:( Lr1Itemset.init [ ( @@ -14273,16 +14300,16 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (17L, Action.ShiftPrefix 204L); + (17L, Action.ShiftPrefix 205L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 198 *) State.init + (* 199 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:198L + ~index:199L ~kernel:( Lr1Itemset.init [ ( @@ -14308,10 +14335,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 199 *) State.init + (* 200 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:199L + ~index:200L ~kernel:( Lr1Itemset.init [ ( @@ -14336,10 +14363,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 200 *) State.init + (* 201 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:200L + ~index:201L ~kernel:( Lr1Itemset.init [ ( @@ -14367,10 +14394,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 201 *) State.init + (* 202 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:201L + ~index:202L ~kernel:( Lr1Itemset.init [ ( @@ -14402,18 +14429,18 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (23L, Action.ShiftPrefix 173L); - (25L, Action.ShiftPrefix 174L); - (30L, Action.ShiftPrefix 205L); + (23L, Action.ShiftPrefix 174L); + (25L, Action.ShiftPrefix 175L); + (30L, Action.ShiftPrefix 206L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 202 *) State.init + (* 203 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:202L + ~index:203L ~kernel:( Lr1Itemset.init [ ( @@ -14446,19 +14473,19 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (24L, Action.ShiftPrefix 178L); + (24L, Action.ShiftPrefix 179L); (38L, Action.Reduce 58L); ] ) ~gotos:( Map.of_alist (module Uns) [ - (63L, 206L); + (63L, 207L); ] ); - (* 203 *) State.init + (* 204 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:203L + ~index:204L ~kernel:( Lr1Itemset.init [ ( @@ -14492,10 +14519,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 204 *) State.init + (* 205 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:204L + ~index:205L ~kernel:( Lr1Itemset.init [ ( @@ -14534,13 +14561,13 @@ include struct ) ~gotos:( Map.of_alist (module Uns) [ - (66L, 207L); + (66L, 208L); ] ); - (* 205 *) State.init + (* 206 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:205L + ~index:206L ~kernel:( Lr1Itemset.init [ ( @@ -14568,10 +14595,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 206 *) State.init + (* 207 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:206L + ~index:207L ~kernel:( Lr1Itemset.init [ ( @@ -14589,16 +14616,16 @@ include struct ) ~actions:( Map.of_alist (module Uns) [ - (38L, Action.ShiftPrefix 208L); + (38L, Action.ShiftPrefix 209L); ] ) ~gotos:( Map.empty (module Uns) ); - (* 207 *) State.init + (* 208 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:207L + ~index:208L ~kernel:( Lr1Itemset.init [ ( @@ -14632,10 +14659,10 @@ include struct ~gotos:( Map.empty (module Uns) ); - (* 208 *) State.init + (* 209 *) State.init ~lr1ItemsetClosure:( Lr1ItemsetClosure.init - ~index:208L + ~index:209L ~kernel:( Lr1Itemset.init [ ( @@ -15583,6 +15610,18 @@ PatternFieldsOne {pattern_field} | _ -> not_reached () ); (* 55 *) (function + | _ + :: _ + :: Elm.{symbol=Symbol.Nonterm (PatternField pattern_field); _} + :: tl__hocc__ -> Symbol.Nonterm (PatternFields ( + (*______________________________________________________________________________*) +#464 "./Parse.hmh" +PatternFieldsOne {pattern_field} + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 56 *) (function | Elm.{symbol=Symbol.Nonterm (PatternField pattern_field_b); _} :: _ :: Elm.{symbol=Symbol.Nonterm (PatternField pattern_field_a); _} @@ -15594,116 +15633,188 @@ PatternFieldsMulti {pattern_field_a; pattern_field_b} )), tl__hocc__ | _ -> not_reached () ); - (* 56 *) (function + (* 57 *) (function | _ :: tl__hocc__ -> Symbol.Nonterm (SemiSuffix ( (*______________________________________________________________________________*) -#470 "./Parse.hmh" +#471 "./Parse.hmh" SemiSuffix (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 57 *) (function + (* 58 *) (function + tl__hocc__ -> Symbol.Nonterm (SemiSuffix ( + (*______________________________________________________________________________*) +#471 "./Parse.hmh" +SemiSuffix + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + ); + (* 59 *) (function | _ :: tl__hocc__ -> Symbol.Nonterm (ModulePath ( (*______________________________________________________________________________*) -#474 "./Parse.hmh" +#476 "./Parse.hmh" ModulePath (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 58 *) (function + (* 60 *) (function + | _ + :: _ + :: _ + :: tl__hocc__ -> Symbol.Nonterm (ModulePath ( + (*______________________________________________________________________________*) +#476 "./Parse.hmh" +ModulePath + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 61 *) (function | _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#478 "./Parse.hmh" +#480 "./Parse.hmh" PatternUscore (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 59 *) (function + (* 62 *) (function | Elm.{symbol=Symbol.Nonterm (Binding binding); _} :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#481 "./Parse.hmh" +#483 "./Parse.hmh" PatternBinding {binding} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 60 *) (function + (* 63 *) (function + | Elm.{symbol=Symbol.Nonterm (Binding binding); _} + :: _ + :: _ + :: tl__hocc__ -> Symbol.Nonterm (Pattern ( + (*______________________________________________________________________________*) +#483 "./Parse.hmh" +PatternBinding {binding} + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 64 *) (function | _ :: Elm.{symbol=Symbol.Nonterm (Pattern pattern); _} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#485 "./Parse.hmh" +#487 "./Parse.hmh" PatternPattern {pattern} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 61 *) (function + (* 65 *) (function + | Elm.{symbol=Symbol.Nonterm (Pattern pattern); _} + :: _ + :: tl__hocc__ -> Symbol.Nonterm (Pattern ( + (*______________________________________________________________________________*) +#487 "./Parse.hmh" +PatternPattern {pattern} + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 66 *) (function + | _ + :: Elm.{symbol=Symbol.Nonterm (Pattern pattern); _} + :: _ + :: _ + :: _ + :: tl__hocc__ -> Symbol.Nonterm (Pattern ( + (*______________________________________________________________________________*) +#487 "./Parse.hmh" +PatternPattern {pattern} + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 67 *) (function | Elm.{symbol=Symbol.Nonterm (Pattern pattern_b); _} :: _ :: Elm.{symbol=Symbol.Nonterm (Pattern pattern_a); _} :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#487 "./Parse.hmh" +#489 "./Parse.hmh" PatternComma {pattern_a; pattern_b} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 62 *) (function + (* 68 *) (function | _ :: _ :: Elm.{symbol=Symbol.Nonterm (PatternFields fields); _} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#490 "./Parse.hmh" +#492 "./Parse.hmh" PatternFields {fields} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 63 *) (function + (* 69 *) (function + | _ + :: _ + :: Elm.{symbol=Symbol.Nonterm (PatternFields fields); _} + :: _ + :: _ + :: _ + :: tl__hocc__ -> Symbol.Nonterm (Pattern ( + (*______________________________________________________________________________*) +#492 "./Parse.hmh" +PatternFields {fields} + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 70 *) (function | Elm.{symbol=Symbol.Token (CIDENT cident); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamSymbol ( (*______________________________________________________________________________*) -#493 "./Parse.hmh" +#495 "./Parse.hmh" ProdParamSymbolCident {cident} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 64 *) (function + (* 71 *) (function | Elm.{symbol=Symbol.Token (ISTRING alias); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamSymbol ( (*______________________________________________________________________________*) -#494 "./Parse.hmh" +#496 "./Parse.hmh" ProdParamSymbolAlias {alias} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 65 *) (function + (* 72 *) (function | Elm.{symbol=Symbol.Nonterm (ProdParamSymbol prod_param_symbol); _} :: _ :: Elm.{symbol=Symbol.Nonterm (Binding binding); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#498 "./Parse.hmh" +#500 "./Parse.hmh" ProdParamBinding {binding; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 66 *) (function + (* 73 *) (function | Elm.{symbol=Symbol.Nonterm (ProdParamSymbol prod_param_symbol); _} :: _ :: Elm.{symbol=Symbol.Token (RPAREN rparen); _} @@ -15711,13 +15822,13 @@ ProdParamBinding {binding; prod_param_symbol} :: Elm.{symbol=Symbol.Token (LPAREN lparen); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#500 "./Parse.hmh" +#502 "./Parse.hmh" ProdParamPattern {lparen; pattern; rparen; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 67 *) (function + (* 74 *) (function | Elm.{symbol=Symbol.Nonterm (ProdParamSymbol prod_param_symbol); _} :: _ :: Elm.{symbol=Symbol.Token (RCURLY rcurly); _} @@ -15726,180 +15837,202 @@ ProdParamPattern {lparen; pattern; rparen; prod_param_symbol} :: Elm.{symbol=Symbol.Token (LCURLY lcurly); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#502 "./Parse.hmh" +#504 "./Parse.hmh" ProdParamFields {lcurly; fields; rcurly; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 68 *) (function + (* 75 *) (function | Elm.{symbol=Symbol.Nonterm (ProdParamSymbol prod_param_symbol); _} :: _ + :: _ :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#505 "./Parse.hmh" +#507 "./Parse.hmh" ProdParam {prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 69 *) (function + (* 76 *) (function + | Elm.{symbol=Symbol.Nonterm (ProdParamSymbol prod_param_symbol); _} + :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( + (*______________________________________________________________________________*) +#507 "./Parse.hmh" +ProdParam {prod_param_symbol} + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 77 *) (function | Elm.{symbol=Symbol.Nonterm (ProdParamsTl prod_params_tl); _} :: Elm.{symbol=Symbol.Nonterm (ProdParam prod_param); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamsTl ( (*______________________________________________________________________________*) -#509 "./Parse.hmh" +#511 "./Parse.hmh" ProdParamsTlProdParam {prod_param; prod_params_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 70 *) (function + (* 78 *) (function tl__hocc__ -> Symbol.Nonterm (ProdParamsTl ( (*______________________________________________________________________________*) -#510 "./Parse.hmh" +#512 "./Parse.hmh" ProdParamsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ ); - (* 71 *) (function + (* 79 *) (function | Elm.{symbol=Symbol.Nonterm (ProdParamsTl prod_params_tl); _} :: Elm.{symbol=Symbol.Nonterm (ProdParam prod_param); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParams ( (*______________________________________________________________________________*) -#514 "./Parse.hmh" +#516 "./Parse.hmh" ProdParamsProdParam {prod_param; prod_params_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 72 *) (function + (* 80 *) (function | Elm.{symbol=Symbol.Nonterm (ProdParams prod_params); _} :: tl__hocc__ -> Symbol.Nonterm (ProdPattern ( (*______________________________________________________________________________*) -#517 "./Parse.hmh" +#519 "./Parse.hmh" ProdPatternParams {prod_params} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 73 *) (function + (* 81 *) (function | Elm.{symbol=Symbol.Token (EPSILON_ epsilon_); _} :: tl__hocc__ -> Symbol.Nonterm (ProdPattern ( (*______________________________________________________________________________*) -#518 "./Parse.hmh" +#520 "./Parse.hmh" ProdPatternEpsilon {epsilon_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 74 *) (function + (* 82 *) (function | Elm.{symbol=Symbol.Nonterm (PrecRef prec_ref); _} :: Elm.{symbol=Symbol.Nonterm (ProdPattern prod_pattern); _} :: tl__hocc__ -> Symbol.Nonterm (Prod ( (*______________________________________________________________________________*) -#521 "./Parse.hmh" +#523 "./Parse.hmh" Prod {prod_pattern; prec_ref} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 75 *) (function + (* 83 *) (function | Elm.{symbol=Symbol.Nonterm (ProdsTl prods_tl); _} :: Elm.{symbol=Symbol.Nonterm (Prod prod); _} :: _ :: tl__hocc__ -> Symbol.Nonterm (ProdsTl ( (*______________________________________________________________________________*) -#524 "./Parse.hmh" +#526 "./Parse.hmh" ProdsTlProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 76 *) (function + (* 84 *) (function tl__hocc__ -> Symbol.Nonterm (ProdsTl ( (*______________________________________________________________________________*) -#525 "./Parse.hmh" +#527 "./Parse.hmh" ProdsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ ); - (* 77 *) (function + (* 85 *) (function | Elm.{symbol=Symbol.Nonterm (ProdsTl prods_tl); _} :: Elm.{symbol=Symbol.Nonterm (Prod prod); _} :: _ :: tl__hocc__ -> Symbol.Nonterm (Prods ( (*______________________________________________________________________________*) -#529 "./Parse.hmh" +#531 "./Parse.hmh" ProdsProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 78 *) (function + (* 86 *) (function + | Elm.{symbol=Symbol.Nonterm (ProdsTl prods_tl); _} + :: Elm.{symbol=Symbol.Nonterm (Prod prod); _} + :: tl__hocc__ -> Symbol.Nonterm (Prods ( + (*______________________________________________________________________________*) +#531 "./Parse.hmh" +ProdsProd {prod; prods_tl} + (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) + )), tl__hocc__ + | _ -> not_reached () + ); + (* 87 *) (function | Elm.{symbol=Symbol.Nonterm (Code code); _} :: _ :: Elm.{symbol=Symbol.Nonterm (Prods prods); _} :: tl__hocc__ -> Symbol.Nonterm (Reduction ( (*______________________________________________________________________________*) -#532 "./Parse.hmh" +#534 "./Parse.hmh" Reduction {prods; code} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 79 *) (function + (* 88 *) (function | Elm.{symbol=Symbol.Nonterm (ReductionsTl reductions_tl); _} :: Elm.{symbol=Symbol.Nonterm (Reduction reduction); _} :: _ :: tl__hocc__ -> Symbol.Nonterm (ReductionsTl ( (*______________________________________________________________________________*) -#536 "./Parse.hmh" +#538 "./Parse.hmh" ReductionsTlReduction {reduction; reductions_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 80 *) (function + (* 89 *) (function tl__hocc__ -> Symbol.Nonterm (ReductionsTl ( (*______________________________________________________________________________*) -#537 "./Parse.hmh" +#539 "./Parse.hmh" ReductionsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ ); - (* 81 *) (function + (* 90 *) (function | Elm.{symbol=Symbol.Nonterm (ReductionsTl reductions_tl); _} :: Elm.{symbol=Symbol.Nonterm (Reduction reduction); _} :: tl__hocc__ -> Symbol.Nonterm (Reductions ( (*______________________________________________________________________________*) -#541 "./Parse.hmh" +#543 "./Parse.hmh" ReductionsReduction {reduction; reductions_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 82 *) (function + (* 91 *) (function | _ :: tl__hocc__ -> Symbol.Nonterm (NontermType ( (*______________________________________________________________________________*) -#544 "./Parse.hmh" +#546 "./Parse.hmh" NontermTypeNonterm (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 83 *) (function + (* 92 *) (function | _ :: tl__hocc__ -> Symbol.Nonterm (NontermType ( (*______________________________________________________________________________*) -#545 "./Parse.hmh" +#547 "./Parse.hmh" NontermTypeStart (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 84 *) (function + (* 93 *) (function | Elm.{symbol=Symbol.Nonterm (Prods prods); _} :: _ :: Elm.{symbol=Symbol.Nonterm (PrecRef prec_ref); _} @@ -15907,13 +16040,13 @@ NontermTypeStart :: Elm.{symbol=Symbol.Nonterm (NontermType nonterm_type); _} :: tl__hocc__ -> Symbol.Nonterm (Nonterm ( (*______________________________________________________________________________*) -#549 "./Parse.hmh" +#551 "./Parse.hmh" NontermProds {nonterm_type; cident; prec_ref; prods} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 85 *) (function + (* 94 *) (function | Elm.{symbol=Symbol.Nonterm (Reductions reductions); _} :: _ :: Elm.{symbol=Symbol.Nonterm (PrecRef prec_ref); _} @@ -15922,112 +16055,112 @@ NontermProds {nonterm_type; cident; prec_ref; prods} :: Elm.{symbol=Symbol.Nonterm (NontermType nonterm_type); _} :: tl__hocc__ -> Symbol.Nonterm (Nonterm ( (*______________________________________________________________________________*) -#552 "./Parse.hmh" +#554 "./Parse.hmh" NontermReductions {nonterm_type; cident; symbol_type; prec_ref; reductions} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 86 *) (function + (* 95 *) (function | Elm.{symbol=Symbol.Nonterm (Prec prec_); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#555 "./Parse.hmh" +#557 "./Parse.hmh" StmtPrec {prec_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 87 *) (function + (* 96 *) (function | Elm.{symbol=Symbol.Nonterm (Token token_); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#556 "./Parse.hmh" +#558 "./Parse.hmh" StmtToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 88 *) (function + (* 97 *) (function | Elm.{symbol=Symbol.Nonterm (Nonterm nonterm_); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#557 "./Parse.hmh" +#559 "./Parse.hmh" StmtNonterm {nonterm_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 89 *) (function + (* 98 *) (function | Elm.{symbol=Symbol.Nonterm (Code code); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#558 "./Parse.hmh" +#560 "./Parse.hmh" StmtCode {code} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 90 *) (function + (* 99 *) (function | Elm.{symbol=Symbol.Nonterm (StmtsTl stmts_tl); _} :: Elm.{symbol=Symbol.Nonterm (Stmt stmt); _} :: _ :: tl__hocc__ -> Symbol.Nonterm (StmtsTl ( (*______________________________________________________________________________*) -#561 "./Parse.hmh" +#563 "./Parse.hmh" StmtsTl {stmt; stmts_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 91 *) (function + (* 100 *) (function tl__hocc__ -> Symbol.Nonterm (StmtsTl ( (*______________________________________________________________________________*) -#562 "./Parse.hmh" +#564 "./Parse.hmh" StmtsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ ); - (* 92 *) (function + (* 101 *) (function | Elm.{symbol=Symbol.Nonterm (StmtsTl stmts_tl); _} :: Elm.{symbol=Symbol.Nonterm (Stmt stmt); _} :: tl__hocc__ -> Symbol.Nonterm (Stmts ( (*______________________________________________________________________________*) -#565 "./Parse.hmh" +#567 "./Parse.hmh" Stmts {stmt; stmts_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 93 *) (function + (* 102 *) (function | Elm.{symbol=Symbol.Token (DEDENT dedent); _} :: Elm.{symbol=Symbol.Nonterm (Stmts stmts); _} :: Elm.{symbol=Symbol.Token (INDENT indent); _} :: Elm.{symbol=Symbol.Token (HOCC hocc_); _} :: tl__hocc__ -> Symbol.Nonterm (Hocc ( (*______________________________________________________________________________*) -#568 "./Parse.hmh" +#570 "./Parse.hmh" Hocc {hocc_; indent; stmts; dedent} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 94 *) (function + (* 103 *) (function | Elm.{symbol=Symbol.Nonterm (CodeToken code_token); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#572 "./Parse.hmh" +#574 "./Parse.hmh" let CodeToken {token_} = code_token in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 95 *) (function + (* 104 *) (function | Elm.{symbol=Symbol.Nonterm (Sep sep); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#575 "./Parse.hmh" +#577 "./Parse.hmh" let token_ = match sep with | SepLineDelim {line_delim=LINE_DELIM {token_}} | SepSemi {semi=SEMI {token_}} @@ -16039,186 +16172,186 @@ let token_ = match sep with )), tl__hocc__ | _ -> not_reached () ); - (* 96 *) (function + (* 105 *) (function | Elm.{symbol=Symbol.Token (INDENT token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#583 "./Parse.hmh" +#585 "./Parse.hmh" let INDENT {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 97 *) (function + (* 106 *) (function | Elm.{symbol=Symbol.Token (DEDENT token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#586 "./Parse.hmh" +#588 "./Parse.hmh" let DEDENT {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 98 *) (function + (* 107 *) (function | Elm.{symbol=Symbol.Token (LPAREN token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#589 "./Parse.hmh" +#591 "./Parse.hmh" let LPAREN {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 99 *) (function + (* 108 *) (function | Elm.{symbol=Symbol.Token (RPAREN token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#592 "./Parse.hmh" +#594 "./Parse.hmh" let RPAREN {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 100 *) (function + (* 109 *) (function | Elm.{symbol=Symbol.Token (LCAPTURE token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#595 "./Parse.hmh" +#597 "./Parse.hmh" let LCAPTURE {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 101 *) (function + (* 110 *) (function | Elm.{symbol=Symbol.Token (RCAPTURE token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#598 "./Parse.hmh" +#600 "./Parse.hmh" let RCAPTURE {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 102 *) (function + (* 111 *) (function | Elm.{symbol=Symbol.Token (LBRACK token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#601 "./Parse.hmh" +#603 "./Parse.hmh" let LBRACK {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 103 *) (function + (* 112 *) (function | Elm.{symbol=Symbol.Token (RBRACK token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#604 "./Parse.hmh" +#606 "./Parse.hmh" let RBRACK {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 104 *) (function + (* 113 *) (function | Elm.{symbol=Symbol.Token (LARRAY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#607 "./Parse.hmh" +#609 "./Parse.hmh" let LARRAY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 105 *) (function + (* 114 *) (function | Elm.{symbol=Symbol.Token (RARRAY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#610 "./Parse.hmh" +#612 "./Parse.hmh" let RARRAY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 106 *) (function + (* 115 *) (function | Elm.{symbol=Symbol.Token (LCURLY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#613 "./Parse.hmh" +#615 "./Parse.hmh" let LCURLY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 107 *) (function + (* 116 *) (function | Elm.{symbol=Symbol.Token (RCURLY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#616 "./Parse.hmh" +#618 "./Parse.hmh" let RCURLY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 108 *) (function + (* 117 *) (function | Elm.{symbol=Symbol.Nonterm (Matter matter); _} :: Elm.{symbol=Symbol.Nonterm (MatterToken matter_token); _} :: tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#621 "./Parse.hmh" +#623 "./Parse.hmh" let MatterToken {token_} = matter_token in Matter {token_; matter} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 109 *) (function + (* 118 *) (function tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#623 "./Parse.hmh" +#625 "./Parse.hmh" MatterEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ ); - (* 110 *) (function + (* 119 *) (function | Elm.{symbol=Symbol.Token (EOI eoi); _} :: Elm.{symbol=Symbol.Nonterm (Matter postlude); _} :: Elm.{symbol=Symbol.Nonterm (Hocc hocc_); _} :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmh ( (*______________________________________________________________________________*) -#626 "./Parse.hmh" +#628 "./Parse.hmh" Hmh {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 111 *) (fun _stack -> not_reached ()); - (* 112 *) (function + (* 120 *) (fun _stack -> not_reached ()); + (* 121 *) (function | Elm.{symbol=Symbol.Token (EOI eoi); _} :: Elm.{symbol=Symbol.Nonterm (Matter postlude); _} :: Elm.{symbol=Symbol.Token (HOCC hocc_); _} :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmhi ( (*______________________________________________________________________________*) -#629 "./Parse.hmh" +#631 "./Parse.hmh" Hmhi {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); - (* 113 *) (fun _stack -> not_reached ()) + (* 122 *) (fun _stack -> not_reached ()) |] let callback t = @@ -16425,7 +16558,7 @@ Hmhi {prelude; hocc_; postlude; eoi} | Status.Prefix -> t |> feed token |> walk | _ -> not_reached () end -#630 "./Parse.hmh" +#632 "./Parse.hmh" let rec scan scanner = let scanner, scan_token = Scan.next scanner in diff --git a/bootstrap/bin/hocc/spec.ml b/bootstrap/bin/hocc/spec.ml index 6ad53d54..0d41ced4 100644 --- a/bootstrap/bin/hocc/spec.ml +++ b/bootstrap/bin/hocc/spec.ml @@ -346,12 +346,8 @@ let symbols_init io precs symbols hmh = in let binding = Parse.source_of_prod_param_binding prod_param |> Option.map ~f:(fun source -> Hmc.Source.Slice.to_string source) in -(* XXX Update. - let io, binding = match prod_param with - | Parse.ProdParamBinding - {ident=IdentUident {uident=UIDENT {token_=ident}}; prod_param_symbol} - | Parse.ProdParamBinding - {ident=IdentCident {cident=CIDENT {token_=ident}}; prod_param_symbol} -> begin + let io = match prod_param with + | Parse.ProdParamBinding {binding=Binding {uident=UIDENT {token_=uident}}; _} -> begin let Symbols.{name; stype; _} = match prod_param_symbol with | ProdParamSymbolCident {cident=CIDENT {token_=cident}} -> begin Symbols.info_of_name_hlt (Hmc.Source.Slice.to_string (Scan.Token.source cident)) @@ -362,13 +358,13 @@ let symbols_init io precs symbols hmh = in let io = match SymbolType.is_explicit stype with | false -> begin - let source = Scan.Token.source ident in + let source = Scan.Token.source uident in let io = io.err |> Fmt.fmt "hocc: At " |> Hmc.Source.Slice.pp source |> Fmt.fmt ": Cannot bind to empty symbol variant: " - |> Fmt.fmt (Hmc.Source.Slice.to_string (Scan.Token.source ident)) + |> Fmt.fmt (Hmc.Source.Slice.to_string (Scan.Token.source uident)) |> Fmt.fmt ":" |> Fmt.fmt name |> Fmt.fmt "\n" |> Io.with_err io in @@ -376,12 +372,12 @@ let symbols_init io precs symbols hmh = end | true -> io in - io, Some (string_of_token ident) + io end - | Parse.ProdParamBinding {ident=IdentUscore _; _} - | Parse.ProdParam _ -> io, None + | ProdParamPattern _ -> not_implemented "XXX" + | ProdParamFields _ -> not_implemented "XXX" + | ProdParam _ -> io in -*) let param = Callback.Param.init ~binding ~symbol_name ~stype ~prod_param:(Some prod_param) in io, param :: prod_params