diff --git a/lib/rbs/parser.rb b/lib/rbs/parser.rb index e8913e027..edae17f0d 100644 --- a/lib/rbs/parser.rb +++ b/lib/rbs/parser.rb @@ -8,7 +8,7 @@ module RBS class Parser < Racc::Parser -module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1393) +module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1394) Types = RBS::Types Namespace = RBS::Namespace @@ -340,6 +340,8 @@ def next_token new_token(:tLIDENT) when input.scan(/_[a-z]\w*\b/) new_token(:tUNDERSCOREIDENT) + when input.scan(/_/) + new_token(:kUNDERSCORE) when input.scan(/"(\\"|[^"])*"/) s = input.matched.yield_self {|s| s[1, s.length - 2] } .gsub(DBL_QUOTE_STR_ESCAPE_SEQUENCES_RE) do |match| @@ -422,83 +424,84 @@ def initialize(input:, location:) ##### State transition tables begin ### clist = [ -'350,351,113,33,352,101,102,5,-4,103,-243,49,337,33,33,117,349,-243,40', -'41,335,37,113,55,56,57,58,59,60,61,62,354,33,63,54,64,65,66,77,67,68', -'69,83,53,32,33,345,339,340,33,292,343,341,344,32,32,33,33,342,82,70', -'71,72,74,76,75,338,347,348,73,78,80,126,32,185,323,84,85,81,86,350,351', -'33,33,352,39,32,227,33,33,32,40,41,33,321,180,349,32,32,186,40,41,179', -'55,56,57,58,59,60,61,62,79,228,63,54,64,65,66,77,67,68,69,83,32,32,160', -'345,339,340,32,32,343,341,344,32,42,40,41,342,82,70,71,72,74,76,75,338', -'347,348,73,78,80,282,333,161,365,84,85,81,86,350,351,406,43,352,39,96', -'97,98,99,405,49,208,208,180,48,349,283,186,104,186,263,39,55,56,57,58', -'59,60,61,62,79,397,63,54,64,65,66,77,67,68,69,83,53,53,53,345,339,340', -'409,410,343,341,344,2,3,4,186,342,82,70,71,72,74,76,75,338,347,348,73', -'78,80,40,41,186,186,84,85,81,86,350,351,40,41,352,120,96,97,98,99,40', -'41,40,41,40,41,349,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,125', -'63,54,64,65,66,77,67,68,69,83,40,41,165,345,339,340,40,41,343,341,344', -'40,41,285,286,342,82,70,71,72,74,76,75,338,347,348,73,78,80,368,369', -'40,41,84,85,81,86,350,351,40,41,352,166,96,97,98,99,384,385,40,41,40', -'41,349,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,167,63,54,64,65', -'66,77,67,68,69,83,40,41,168,345,339,340,40,41,343,341,344,170,171,172', -'113,342,82,70,71,72,74,76,75,338,347,348,73,78,80,178,181,184,41,84', -'85,81,86,350,351,187,189,352,180,190,174,-104,-105,177,-106,175,-107', -'-108,-109,349,-110,-111,-112,-113,-114,48,55,56,57,58,59,60,61,62,79', -'176,63,54,64,65,66,77,67,68,69,83,-129,196,197,345,339,340,198,199,343', -'341,344,200,201,209,210,342,82,70,71,72,74,76,75,338,347,348,73,78,80', -'42,211,229,243,84,85,81,86,350,351,252,253,352,254,96,97,98,99,256,258', -'259,42,261,261,349,261,265,42,229,269,273,55,56,57,58,59,60,61,62,79', -'275,63,54,64,65,66,77,67,68,69,83,290,291,314,345,339,340,273,316,343', -'341,344,290,329,330,331,342,82,70,71,72,74,76,75,338,347,348,73,78,80', -'356,356,356,364,84,85,81,86,350,351,366,367,352,370,372,379,380,381', -'389,389,389,401,402,403,349,404,407,408,413,414,415,55,56,57,58,59,60', -'61,62,79,417,63,54,64,65,66,77,67,68,69,83,420,413,,345,339,340,,,343', -'341,344,,,,,342,82,70,71,72,74,76,75,338,347,348,73,78,80,,,,,84,85', -'81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134', -'135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,', -'156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33', -',,96,97,98,99,,,,22,23,21,,26,,25,,30,,131,132,133,134,135,136,137,138', -'142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,,,,,,,,,,82,70,71', -'72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21', -',26,-219,25,,30,,131,132,133,134,135,136,137,138,142,16,139,130,140', -'141,66,77,67,68,69,83,,32,,,,28,,156,,157,159,,,,,,82,70,71,72,74,76', -'75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219', +'192,195,33,193,192,195,33,193,192,195,33,193,113,192,195,33,193,192', +'195,160,193,180,324,192,195,33,193,185,179,33,228,33,33,33,5,33,33,33', +'37,174,283,322,177,32,175,40,41,32,161,40,41,32,186,40,41,229,32,49', +'40,41,293,49,40,41,176,284,32,194,40,41,32,194,32,32,32,194,32,32,32', +'196,194,351,352,196,194,353,42,196,334,53,194,338,196,53,209,407,196', +'350,209,336,40,41,196,406,55,56,57,58,59,60,61,62,355,186,63,54,64,65', +'66,77,67,68,69,83,40,41,53,346,340,341,53,366,344,342,345,126,2,3,4', +'343,82,70,71,72,74,76,75,339,348,349,73,78,80,39,398,410,186,84,85,81', +'86,351,352,40,41,353,180,43,411,-4,48,-244,104,264,33,39,117,350,-244', +'186,186,40,41,113,55,56,57,58,59,60,61,62,79,186,63,54,64,65,66,77,67', +'68,69,83,40,41,120,346,340,341,40,41,344,342,345,32,40,41,125,343,82', +'70,71,72,74,76,75,339,348,349,73,78,80,40,41,40,41,84,85,81,86,351,352', +'40,41,353,39,96,97,98,99,101,102,40,41,103,165,350,40,41,40,41,40,41', +'55,56,57,58,59,60,61,62,79,166,63,54,64,65,66,77,67,68,69,83,40,41,167', +'346,340,341,286,287,344,342,345,369,370,40,41,343,82,70,71,72,74,76', +'75,339,348,349,73,78,80,40,41,385,386,84,85,81,86,351,352,40,41,353', +'168,96,97,98,99,40,41,40,41,40,41,350,40,41,40,41,40,41,55,56,57,58', +'59,60,61,62,79,170,63,54,64,65,66,77,67,68,69,83,171,172,113,346,340', +'341,178,181,344,342,345,184,41,187,189,343,82,70,71,72,74,76,75,339', +'348,349,73,78,80,180,190,-104,-105,84,85,81,86,351,352,-106,-107,353', +'-108,96,97,98,99,-109,-110,-111,-112,-113,-114,350,48,-129,197,198,199', +'200,55,56,57,58,59,60,61,62,79,201,63,54,64,65,66,77,67,68,69,83,202', +'210,211,346,340,341,42,212,344,342,345,230,244,253,254,343,82,70,71', +'72,74,76,75,339,348,349,73,78,80,255,257,259,260,84,85,81,86,351,352', +'42,262,353,262,262,266,42,230,270,274,276,291,292,315,350,274,317,291', +'330,331,332,55,56,57,58,59,60,61,62,79,357,63,54,64,65,66,77,67,68,69', +'83,357,357,365,346,340,341,367,368,344,342,345,371,373,380,381,343,82', +'70,71,72,74,76,75,339,348,349,73,78,80,382,390,390,390,84,85,81,86,351', +'352,402,403,353,404,96,97,98,99,405,408,409,414,415,416,350,418,421', +'414,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,', +'346,340,341,,,344,342,345,,,,,343,82,70,71,72,74,76,75,339,348,349,73', +'78,80,,,,,84,85,81,86,351,352,,,353,,,,,,,,,,,,350,,,,,,,55,56,57,58', +'59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,346,340,341,,,344,342', +'345,,,,,343,82,70,71,72,74,76,75,339,348,349,73,78,80,,,,,84,85,81,86', +'33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136', +'137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157', +'159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97', +'98,99,,,,22,23,21,,26,,25,,30,,131,132,133,134,135,136,137,138,142,16', +'139,130,140,141,66,77,67,68,69,83,,32,,,,28,,,,,,,,,,,82,70,71,72,74', +'76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219', '25,,30,,131,132,133,134,135,136,137,138,142,16,139,130,140,141,66,77', '67,68,69,83,,32,,,,28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73', '78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,', '131,132,133,134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69', -'83,,32,,,,28,,235,,,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84', -'85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134', -'135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,', -'156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33', -',,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137', -'138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,235,,,159,,', -',,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,96,97,98,99,,,,90', -'89,91,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69', -'83,,,,,,,,192,195,,193,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80,,,', -',84,85,81,86,96,97,98,99,,,,90,89,91,,,,,,40,41,55,56,57,58,59,60,61', -'62,79,,63,54,64,65,66,77,67,68,69,83,194,,,,,,,,,,,,,,,,82,70,71,72', -'74,76,75,,95,94,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58', -'59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,235,,,159,,,,,', -'82,70,71,72,74,76,75,,,,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55', -'56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,235,,', -'159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,96,97,98,99,84,85,81,86,,', -',,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,192', -'195,,193,192,195,,193,192,195,,193,192,195,,193,82,70,71,72,74,76,75', -',,,73,78,80,,,,,84,85,81,86,192,195,,193,,,,,40,41,,,40,41,,,40,41,', -',40,41,,,,,,,,,194,,,,194,,,,194,,,,194,,-243,40,41,33,,117,,-243,,', -'311,312,113,,-243,,,33,,117,,-243,,194,311,312,113,,,,,313,,,,,,,,,308', -'307,,,32,313,,,,,,,,,308,307,-243,,32,33,299,117,,-243,,,311,312,113', -',,,,,317,,,174,,,177,,175,,,323,,313,,,,,,,,,308,307,,33,32,,176,,321', -'327,324,325,326,22,23,21,328,26,,25,318,30,,8,12,19,20,9,10,13,14,15', -'16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20', +'83,,32,,,,28,,156,,157,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,', +',84,85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133', +'134,135,136,137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,', +'28,,236,,,159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86', +'33,,,96,97,98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136', +'137,138,142,16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,156,,157', +'159,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97', +'98,99,,,,22,23,21,,26,-219,25,,30,,131,132,133,134,135,136,137,138,142', +'16,139,130,140,141,66,77,67,68,69,83,,32,,,,28,,236,,,159,,,,,,82,70', +'71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,96,97,98,99,,,,90,89,91,', +',,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,', +',,,,,,,,,,,,82,70,71,72,74,76,75,,95,94,73,78,80,,,,,84,85,81,86,96', +'97,98,99,,,,90,89,91,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65', +'66,77,67,68,69,83,,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,,95,94,73,78', +'80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54', +'64,65,66,77,67,68,69,83,,,,,,,,236,,,159,,,,,,82,70,71,72,74,76,75,', +',,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62', +'79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,236,,,159,,,,,,82,70,71,72', +'74,76,75,,,,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,,,55,56,57,58,59', +'60,61,62,79,,63,54,64,65,66,77,67,68,69,83,-244,,,33,,117,,-244,,,312', +'313,113,,,,82,70,71,72,74,76,75,,,,73,78,80,,,314,,84,85,81,86,,,,309', +'308,-244,,32,33,,117,,-244,,,312,313,113,,-244,,,33,300,117,,-244,,', +'312,313,113,,,,,314,,,,,,,,,309,308,,,32,314,,,,,,,,,309,308,,33,32', +',318,,,,,,,22,23,21,,26,,25,319,30,,8,12,19,20,9,10,13,14,15,16,17,18', +'11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,45,30,,8,12,19,20,9,10,13,14', +'15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20', '9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30', ',8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21', ',26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,', '28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33', ',,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18', '11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14', -'15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20', -'9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,-247', +'15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,-248,30,,8,12,19', +'20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,', '30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23', '21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32', ',,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27', @@ -534,10 +537,9 @@ def initialize(input:, location:) '17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12,19,20,9,10', '13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25,,30,,8,12', '19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23,21,,26,,25', -',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,33,,,,,32,,,,28,22,23', -'21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,,,,,,,,32,,', -',28' ] - racc_action_table = arr = ::Array.new(3118, nil) +',30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,174,,,177,,175,,32,324', +',,28,,,,,,,,,,,,,,176,,322,328,325,326,327,,,,329' ] + racc_action_table = arr = ::Array.new(3142, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -547,142 +549,142 @@ def initialize(input:, location:) end clist = [ -'323,323,279,48,323,31,31,1,34,31,34,28,322,34,177,34,323,34,44,44,322', -'5,34,323,323,323,323,323,323,323,323,323,219,323,323,323,323,323,323', -'323,323,323,323,28,48,220,323,323,323,221,279,323,323,323,34,177,263', -'269,323,323,323,323,323,323,323,323,323,323,323,323,323,323,47,219,123', -'297,323,323,323,323,355,355,275,290,355,34,220,183,321,327,221,169,169', -'328,297,116,355,263,269,123,47,47,116,355,355,355,355,355,355,355,355', -'355,183,355,355,355,355,355,355,355,355,355,355,275,290,51,355,355,355', -'321,327,355,355,355,328,7,6,6,355,355,355,355,355,355,355,355,355,355', -'355,355,355,355,270,320,51,332,355,355,355,355,357,357,389,24,357,6', -'357,357,357,357,389,119,160,209,249,27,357,270,320,32,332,249,35,357', -'357,357,357,357,357,357,357,357,382,357,357,357,357,357,357,357,357', -'357,357,119,160,209,357,357,357,394,395,357,357,357,0,0,0,382,357,357', -'357,357,357,357,357,357,357,357,357,357,357,357,188,188,394,395,357', -'357,357,357,358,358,213,213,358,36,358,358,358,358,214,214,215,215,216', -'216,358,217,217,218,218,224,224,358,358,358,358,358,358,358,358,358', -'46,358,358,358,358,358,358,358,358,358,358,225,225,87,358,358,358,226', -'226,358,358,358,266,266,272,272,358,358,358,358,358,358,358,358,358', -'358,358,358,358,358,346,346,362,362,358,358,358,358,359,359,363,363', -'359,89,359,359,359,359,367,367,387,387,390,390,359,392,392,396,396,416', -'416,359,359,359,359,359,359,359,359,359,90,359,359,359,359,359,359,359', -'359,359,359,418,418,91,359,359,359,419,419,359,359,359,93,94,95,113', -'359,359,359,359,359,359,359,359,359,359,359,359,359,359,115,117,120', -'121,359,359,359,359,370,370,124,127,370,128,129,114,130,131,114,132', -'114,133,134,135,370,136,137,138,139,140,141,370,370,370,370,370,370', -'370,370,370,114,370,370,370,370,370,370,370,370,370,370,142,145,146', -'370,370,370,148,150,370,370,370,153,154,161,162,370,370,370,370,370', -'370,370,370,370,370,370,370,370,370,163,164,190,207,370,370,370,370', -'383,383,222,223,383,228,383,383,383,383,233,244,245,246,247,248,383', -'250,251,255,258,260,261,383,383,383,383,383,383,383,383,383,262,383', -'383,383,383,383,383,383,383,383,383,276,278,281,383,383,383,283,284', -'383,383,383,288,311,312,313,383,383,383,383,383,383,383,383,383,383', -'383,383,383,383,324,325,326,331,383,383,383,383,415,415,334,336,415', -'354,356,360,361,364,374,376,378,384,385,386,415,388,391,393,398,400', -'403,415,415,415,415,415,415,415,415,415,406,415,415,415,415,415,415', -'415,415,415,415,412,420,,415,415,415,,,415,415,415,,,,,415,415,415,415', -'415,415,415,415,415,415,415,415,415,415,,,,,415,415,415,415,49,,,49', +'143,143,48,143,203,203,177,203,205,205,220,205,280,206,206,221,206,207', +'207,51,207,116,298,240,240,222,240,123,116,264,183,270,276,291,1,322', +'328,329,5,114,271,298,114,48,114,143,143,177,51,203,203,220,123,205', +'205,183,221,28,206,206,280,119,207,207,114,271,222,143,240,240,264,203', +'270,276,291,205,322,328,329,143,206,324,324,203,207,324,7,205,321,28', +'240,323,206,119,160,390,207,324,210,323,44,44,240,390,324,324,324,324', +'324,324,324,324,324,321,324,324,324,324,324,324,324,324,324,324,6,6', +'160,324,324,324,210,333,324,324,324,47,0,0,0,324,324,324,324,324,324', +'324,324,324,324,324,324,324,324,6,383,395,333,324,324,324,324,356,356', +'47,47,356,250,24,396,34,27,34,32,250,34,35,34,356,34,383,395,169,169', +'34,356,356,356,356,356,356,356,356,356,396,356,356,356,356,356,356,356', +'356,356,356,188,188,36,356,356,356,214,214,356,356,356,34,215,215,46', +'356,356,356,356,356,356,356,356,356,356,356,356,356,356,216,216,217', +'217,356,356,356,356,358,358,218,218,358,34,358,358,358,358,31,31,219', +'219,31,87,358,225,225,226,226,227,227,358,358,358,358,358,358,358,358', +'358,89,358,358,358,358,358,358,358,358,358,358,267,267,90,358,358,358', +'273,273,358,358,358,347,347,363,363,358,358,358,358,358,358,358,358', +'358,358,358,358,358,358,364,364,368,368,358,358,358,358,359,359,388', +'388,359,91,359,359,359,359,391,391,393,393,397,397,359,417,417,419,419', +'420,420,359,359,359,359,359,359,359,359,359,93,359,359,359,359,359,359', +'359,359,359,359,94,95,113,359,359,359,115,117,359,359,359,120,121,124', +'127,359,359,359,359,359,359,359,359,359,359,359,359,359,359,128,129', +'130,131,359,359,359,359,360,360,132,133,360,134,360,360,360,360,135', +'136,137,138,139,140,360,141,142,145,146,148,150,360,360,360,360,360', +'360,360,360,360,153,360,360,360,360,360,360,360,360,360,360,154,161', +'162,360,360,360,163,164,360,360,360,190,208,223,224,360,360,360,360', +'360,360,360,360,360,360,360,360,360,360,229,234,245,246,360,360,360', +'360,371,371,247,248,371,249,251,252,256,259,261,262,263,277,279,282', +'371,284,285,289,312,313,314,371,371,371,371,371,371,371,371,371,325', +'371,371,371,371,371,371,371,371,371,371,326,327,332,371,371,371,335', +'337,371,371,371,355,357,361,362,371,371,371,371,371,371,371,371,371', +'371,371,371,371,371,365,375,377,379,371,371,371,371,384,384,385,386', +'384,387,384,384,384,384,389,392,394,399,401,404,384,407,413,421,,,,384', +'384,384,384,384,384,384,384,384,,384,384,384,384,384,384,384,384,384', +'384,,,,384,384,384,,,384,384,384,,,,,384,384,384,384,384,384,384,384', +'384,384,384,384,384,384,,,,,384,384,384,384,416,416,,,416,,,,,,,,,,', +',416,,,,,,,416,416,416,416,416,416,416,416,416,,416,416,416,416,416', +'416,416,416,416,416,,,,416,416,416,,,416,416,416,,,,,416,416,416,416', +'416,416,416,416,416,416,416,416,416,416,,,,,416,416,416,416,49,,,49', '49,49,49,,,,49,49,49,,49,49,49,,49,,49,49,49,49,49,49,49,49,49,49,49', '49,49,49,49,49,49,49,49,49,,49,,,,49,,49,,49,49,,,,,,49,49,49,49,49', '49,49,,,,49,49,49,,,,,49,49,49,49,156,,,156,156,156,156,,,,156,156,156', ',156,,156,,156,,156,156,156,156,156,156,156,156,156,156,156,156,156', '156,156,156,156,156,156,156,,156,,,,156,,,,,,,,,,,156,156,156,156,156', -'156,156,,,,156,156,156,,,,,156,156,156,156,197,,,197,197,197,197,,,', -'197,197,197,,197,197,197,,197,,197,197,197,197,197,197,197,197,197,197', -'197,197,197,197,197,197,197,197,197,197,,197,,,,197,,197,,197,197,,', -',,,197,197,197,197,197,197,197,,,,197,197,197,,,,,197,197,197,197,198', -',,198,198,198,198,,,,198,198,198,,198,198,198,,198,,198,198,198,198', -'198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,,198', -',,,198,,198,,198,198,,,,,,198,198,198,198,198,198,198,,,,198,198,198', -',,,,198,198,198,198,199,,,199,199,199,199,,,,199,199,199,,199,199,199', -',199,,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199', -'199,199,199,199,,199,,,,199,,199,,,199,,,,,,199,199,199,199,199,199', -'199,,,,199,199,199,,,,,199,199,199,199,208,,,208,208,208,208,,,,208', -'208,208,,208,208,208,,208,,208,208,208,208,208,208,208,208,208,208,208', -'208,208,208,208,208,208,208,208,208,,208,,,,208,,208,,208,208,,,,,,208', -'208,208,208,208,208,208,,,,208,208,208,,,,,208,208,208,208,256,,,256', -'256,256,256,,,,256,256,256,,256,256,256,,256,,256,256,256,256,256,256', -'256,256,256,256,256,256,256,256,256,256,256,256,256,256,,256,,,,256', -',256,,,256,,,,,,256,256,256,256,256,256,256,,,,256,256,256,,,,,256,256', -'256,256,30,30,30,30,,,,30,30,30,,,,,,,,30,30,30,30,30,30,30,30,30,,30', -'30,30,30,30,30,30,30,30,30,,,,,,,,143,143,,143,,,,,,30,30,30,30,30,30', -'30,,30,30,30,30,30,,,,,30,30,30,30,165,165,165,165,,,,165,165,165,,', -',,,143,143,165,165,165,165,165,165,165,165,165,,165,165,165,165,165', -'165,165,165,165,165,143,,,,,,,,,,,,,,,,165,165,165,165,165,165,165,', -'165,165,165,165,165,200,200,200,200,165,165,165,165,,,,,,,,,,200,200', -'200,200,200,200,200,200,200,,200,200,200,200,200,200,200,200,200,200', -',,,,,,,200,,,200,,,,,,200,200,200,200,200,200,200,,,,200,200,200,201', -'201,201,201,200,200,200,200,,,,,,,,,,201,201,201,201,201,201,201,201', -'201,,201,201,201,201,201,201,201,201,201,201,,,,,,,,201,,,201,,,,,,201', -'201,201,201,201,201,201,,,,201,201,201,235,235,235,235,201,201,201,201', -',,,,,,,,,235,235,235,235,235,235,235,235,235,,235,235,235,235,235,235', -'235,235,235,235,202,202,,202,204,204,,204,205,205,,205,206,206,,206', -'235,235,235,235,235,235,235,,,,235,235,235,,,,,235,235,235,235,239,239', -',239,,,,,202,202,,,204,204,,,205,205,,,206,206,,,,,,,,,202,,,,204,,', -',205,,,,206,,280,239,239,280,,280,,280,,,280,280,280,,287,,,287,,287', -',287,,239,287,287,287,,,,,280,,,,,,,,,280,280,,,280,287,,,,,,,,,287', -'287,289,,287,289,280,289,,289,,,289,289,289,,,,,,287,,,298,,,298,,298', -',,298,,289,,,,,,,,,289,289,,2,289,,298,,298,298,298,298,298,2,2,2,298', -'2,,2,289,2,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25', -',25,25,25,,25,25,25,25,25,25,25,25,25,25,25,25,25,25,,,26,,,,,25,,,', -'25,26,26,26,,26,,26,,26,,26,26,26,26,26,26,26,26,26,26,26,26,26,26,', -',40,,,,,26,,,,26,40,40,40,,40,,40,,40,,40,40,40,40,40,40,40,40,40,40', -'40,40,40,40,,,41,,,,,40,,,,40,41,41,41,,41,,41,,41,,41,41,41,41,41,41', -'41,41,41,41,41,41,41,41,,,43,,,,,41,,,,41,43,43,43,,43,,43,,43,,43,43', -'43,43,43,43,43,43,43,43,43,43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,', -'53,,53,,53,53,53,53,53,53,53,53,53,53,53,53,53,53,,,92,,,,,53,,,,53', -'92,92,92,,92,,92,,92,,92,92,92,92,92,92,92,92,92,92,92,92,92,92,,,125', -',,,,92,,,,92,125,125,125,,125,,125,125,125,,125,125,125,125,125,125', -'125,125,125,125,125,125,125,125,,,157,,,,,125,,,,125,157,157,157,,157', -',157,,157,,157,157,157,157,157,157,157,157,157,157,157,157,157,157,', -',158,,,,,157,,,,157,158,158,158,,158,,158,,158,,158,158,158,158,158', -'158,158,158,158,158,158,158,158,158,,,159,,,,,158,,,,158,159,159,159', -',159,,159,,159,,159,159,159,159,159,159,159,159,159,159,159,159,159', -'159,,,166,,,,,159,,,,159,166,166,166,,166,,166,,166,,166,166,166,166', -'166,166,166,166,166,166,166,166,166,166,,,167,,,,,166,,,,166,167,167', -'167,,167,,167,,167,,167,167,167,167,167,167,167,167,167,167,167,167', -'167,167,,,168,,,,,167,,,,167,168,168,168,,168,,168,,168,,168,168,168', -'168,168,168,168,168,168,168,168,168,168,168,,,170,,,,,168,,,,168,170', -'170,170,,170,,170,,170,,170,170,170,170,170,170,170,170,170,170,170', -'170,170,170,,,171,,,,,170,,,,170,171,171,171,,171,,171,,171,,171,171', -'171,171,171,171,171,171,171,171,171,171,171,171,,,172,,,,,171,,,,171', -'172,172,172,,172,,172,,172,,172,172,172,172,172,172,172,172,172,172', -'172,172,172,172,,,178,,,,,172,,,,172,178,178,178,,178,,178,,178,,178', -'178,178,178,178,178,178,178,178,178,178,178,178,178,,,179,,,,,178,,', -',178,179,179,179,,179,,179,,179,,179,179,179,179,179,179,179,179,179', -'179,179,179,179,179,,,181,,,,,179,,,,179,181,181,181,,181,,181,,181', -',181,181,181,181,181,181,181,181,181,181,181,181,181,181,,,186,,,,,181', -',,,181,186,186,186,,186,,186,,186,,186,186,186,186,186,186,186,186,186', -'186,186,186,186,186,,,203,,,,,186,,,,186,203,203,203,,203,,203,,203', -',203,203,203,203,203,203,203,203,203,203,203,203,203,203,,,210,,,,,203', -',,,203,210,210,210,,210,,210,,210,,210,210,210,210,210,210,210,210,210', -'210,210,210,210,210,,,229,,,,,210,,,,210,229,229,229,,229,,229,,229', -',229,229,229,229,229,229,229,229,229,229,229,229,229,229,,,252,,,,,229', -',,,229,252,252,252,,252,,252,,252,,252,252,252,252,252,252,252,252,252', -'252,252,252,252,252,,,291,,,,,252,,,,252,291,291,291,,291,,291,,291', -',291,291,291,291,291,291,291,291,291,291,291,291,291,291,,,314,,,,,291', -',,,291,314,314,314,,314,,314,,314,,314,314,314,314,314,314,314,314,314', -'314,314,314,314,314,,,329,,,,,314,,,,314,329,329,329,,329,,329,,329', -',329,329,329,329,329,329,329,329,329,329,329,329,329,329,,,330,,,,,329', -',,,329,330,330,330,,330,,330,,330,,330,330,330,330,330,330,330,330,330', -'330,330,330,330,330,,,366,,,,,330,,,,330,366,366,366,,366,,366,,366', -',366,366,366,366,366,366,366,366,366,366,366,366,366,366,,,373,,,,,366', -',,,366,373,373,373,,373,,373,,373,,373,373,373,373,373,373,373,373,373', -'373,373,373,373,373,,,375,,,,,373,,,,373,375,375,375,,375,,375,,375', -',375,375,375,375,375,375,375,375,375,375,375,375,375,375,,,377,,,,,375', -',,,375,377,377,377,,377,,377,,377,,377,377,377,377,377,377,377,377,377', -'377,377,377,377,377,,,379,,,,,377,,,,377,379,379,379,,379,,379,,379', -',379,379,379,379,379,379,379,379,379,379,379,379,379,379,,,380,,,,,379', -',,,379,380,380,380,,380,,380,,380,,380,380,380,380,380,380,380,380,380', +'156,156,,,,156,156,156,,,,,156,156,156,156,198,,,198,198,198,198,,,', +'198,198,198,,198,198,198,,198,,198,198,198,198,198,198,198,198,198,198', +'198,198,198,198,198,198,198,198,198,198,,198,,,,198,,198,,198,198,,', +',,,198,198,198,198,198,198,198,,,,198,198,198,,,,,198,198,198,198,199', +',,199,199,199,199,,,,199,199,199,,199,199,199,,199,,199,199,199,199', +'199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,199,,199', +',,,199,,199,,199,199,,,,,,199,199,199,199,199,199,199,,,,199,199,199', +',,,,199,199,199,199,200,,,200,200,200,200,,,,200,200,200,,200,200,200', +',200,,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200', +'200,200,200,200,,200,,,,200,,200,,,200,,,,,,200,200,200,200,200,200', +'200,,,,200,200,200,,,,,200,200,200,200,209,,,209,209,209,209,,,,209', +'209,209,,209,209,209,,209,,209,209,209,209,209,209,209,209,209,209,209', +'209,209,209,209,209,209,209,209,209,,209,,,,209,,209,,209,209,,,,,,209', +'209,209,209,209,209,209,,,,209,209,209,,,,,209,209,209,209,257,,,257', +'257,257,257,,,,257,257,257,,257,257,257,,257,,257,257,257,257,257,257', +'257,257,257,257,257,257,257,257,257,257,257,257,257,257,,257,,,,257', +',257,,,257,,,,,,257,257,257,257,257,257,257,,,,257,257,257,,,,,257,257', +'257,257,30,30,30,30,,,,30,30,30,,,,,,,,30,30,30,30,30,30,30,30,30,,30', +'30,30,30,30,30,30,30,30,30,,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,,30', +'30,30,30,30,,,,,30,30,30,30,165,165,165,165,,,,165,165,165,,,,,,,,165', +'165,165,165,165,165,165,165,165,,165,165,165,165,165,165,165,165,165', +'165,,,,,,,,,,,,,,,,,165,165,165,165,165,165,165,,165,165,165,165,165', +'201,201,201,201,165,165,165,165,,,,,,,,,,201,201,201,201,201,201,201', +'201,201,,201,201,201,201,201,201,201,201,201,201,,,,,,,,201,,,201,,', +',,,201,201,201,201,201,201,201,,,,201,201,201,202,202,202,202,201,201', +'201,201,,,,,,,,,,202,202,202,202,202,202,202,202,202,,202,202,202,202', +'202,202,202,202,202,202,,,,,,,,202,,,202,,,,,,202,202,202,202,202,202', +'202,,,,202,202,202,236,236,236,236,202,202,202,202,,,,,,,,,,236,236', +'236,236,236,236,236,236,236,,236,236,236,236,236,236,236,236,236,236', +'281,,,281,,281,,281,,,281,281,281,,,,236,236,236,236,236,236,236,,,', +'236,236,236,,,281,,236,236,236,236,,,,281,281,288,,281,288,,288,,288', +',,288,288,288,,290,,,290,281,290,,290,,,290,290,290,,,,,288,,,,,,,,', +'288,288,,,288,290,,,,,,,,,290,290,,2,290,,288,,,,,,,2,2,2,,2,,2,290', +'2,,2,2,2,2,2,2,2,2,2,2,2,2,2,2,,,25,,,,,2,,,,2,25,25,25,,25,,25,25,25', +',25,25,25,25,25,25,25,25,25,25,25,25,25,25,,,26,,,,,25,,,,25,26,26,26', +',26,,26,,26,,26,26,26,26,26,26,26,26,26,26,26,26,26,26,,,40,,,,,26,', +',,26,40,40,40,,40,,40,,40,,40,40,40,40,40,40,40,40,40,40,40,40,40,40', +',,41,,,,,40,,,,40,41,41,41,,41,,41,,41,,41,41,41,41,41,41,41,41,41,41', +'41,41,41,41,,,43,,,,,41,,,,41,43,43,43,,43,,43,,43,,43,43,43,43,43,43', +'43,43,43,43,43,43,43,43,,,53,,,,,43,,,,43,53,53,53,,53,,53,,53,,53,53', +'53,53,53,53,53,53,53,53,53,53,53,53,,,92,,,,,53,,,,53,92,92,92,,92,', +'92,,92,,92,92,92,92,92,92,92,92,92,92,92,92,92,92,,,125,,,,,92,,,,92', +'125,125,125,,125,,125,125,125,,125,125,125,125,125,125,125,125,125,125', +'125,125,125,125,,,157,,,,,125,,,,125,157,157,157,,157,,157,,157,,157', +'157,157,157,157,157,157,157,157,157,157,157,157,157,,,158,,,,,157,,', +',157,158,158,158,,158,,158,,158,,158,158,158,158,158,158,158,158,158', +'158,158,158,158,158,,,159,,,,,158,,,,158,159,159,159,,159,,159,,159', +',159,159,159,159,159,159,159,159,159,159,159,159,159,159,,,166,,,,,159', +',,,159,166,166,166,,166,,166,,166,,166,166,166,166,166,166,166,166,166', +'166,166,166,166,166,,,167,,,,,166,,,,166,167,167,167,,167,,167,,167', +',167,167,167,167,167,167,167,167,167,167,167,167,167,167,,,168,,,,,167', +',,,167,168,168,168,,168,,168,,168,,168,168,168,168,168,168,168,168,168', +'168,168,168,168,168,,,170,,,,,168,,,,168,170,170,170,,170,,170,,170', +',170,170,170,170,170,170,170,170,170,170,170,170,170,170,,,171,,,,,170', +',,,170,171,171,171,,171,,171,,171,,171,171,171,171,171,171,171,171,171', +'171,171,171,171,171,,,172,,,,,171,,,,171,172,172,172,,172,,172,,172', +',172,172,172,172,172,172,172,172,172,172,172,172,172,172,,,178,,,,,172', +',,,172,178,178,178,,178,,178,,178,,178,178,178,178,178,178,178,178,178', +'178,178,178,178,178,,,179,,,,,178,,,,178,179,179,179,,179,,179,,179', +',179,179,179,179,179,179,179,179,179,179,179,179,179,179,,,181,,,,,179', +',,,179,181,181,181,,181,,181,,181,,181,181,181,181,181,181,181,181,181', +'181,181,181,181,181,,,186,,,,,181,,,,181,186,186,186,,186,,186,,186', +',186,186,186,186,186,186,186,186,186,186,186,186,186,186,,,204,,,,,186', +',,,186,204,204,204,,204,,204,,204,,204,204,204,204,204,204,204,204,204', +'204,204,204,204,204,,,211,,,,,204,,,,204,211,211,211,,211,,211,,211', +',211,211,211,211,211,211,211,211,211,211,211,211,211,211,,,230,,,,,211', +',,,211,230,230,230,,230,,230,,230,,230,230,230,230,230,230,230,230,230', +'230,230,230,230,230,,,253,,,,,230,,,,230,253,253,253,,253,,253,,253', +',253,253,253,253,253,253,253,253,253,253,253,253,253,253,,,292,,,,,253', +',,,253,292,292,292,,292,,292,,292,,292,292,292,292,292,292,292,292,292', +'292,292,292,292,292,,,315,,,,,292,,,,292,315,315,315,,315,,315,,315', +',315,315,315,315,315,315,315,315,315,315,315,315,315,315,,,330,,,,,315', +',,,315,330,330,330,,330,,330,,330,,330,330,330,330,330,330,330,330,330', +'330,330,330,330,330,,,331,,,,,330,,,,330,331,331,331,,331,,331,,331', +',331,331,331,331,331,331,331,331,331,331,331,331,331,331,,,367,,,,,331', +',,,331,367,367,367,,367,,367,,367,,367,367,367,367,367,367,367,367,367', +'367,367,367,367,367,,,374,,,,,367,,,,367,374,374,374,,374,,374,,374', +',374,374,374,374,374,374,374,374,374,374,374,374,374,374,,,376,,,,,374', +',,,374,376,376,376,,376,,376,,376,,376,376,376,376,376,376,376,376,376', +'376,376,376,376,376,,,378,,,,,376,,,,376,378,378,378,,378,,378,,378', +',378,378,378,378,378,378,378,378,378,378,378,378,378,378,,,380,,,,,378', +',,,378,380,380,380,,380,,380,,380,,380,380,380,380,380,380,380,380,380', '380,380,380,380,380,,,381,,,,,380,,,,380,381,381,381,,381,,381,,381', -',381,381,381,381,381,381,381,381,381,381,381,381,381,381,,,404,,,,,381', -',,,381,404,404,404,,404,,404,,404,,404,404,404,404,404,404,404,404,404', -'404,404,404,404,404,,,407,,,,,404,,,,404,407,407,407,,407,,407,,407', -',407,407,407,407,407,407,407,407,407,407,407,407,407,407,,,408,,,,,407', -',,,407,408,408,408,,408,,408,,408,,408,408,408,408,408,408,408,408,408', -'408,408,408,408,408,,,,,,,,408,,,,408' ] - racc_action_check = arr = ::Array.new(3118, nil) +',381,381,381,381,381,381,381,381,381,381,381,381,381,381,,,382,,,,,381', +',,,381,382,382,382,,382,,382,,382,,382,382,382,382,382,382,382,382,382', +'382,382,382,382,382,,,405,,,,,382,,,,382,405,405,405,,405,,405,,405', +',405,405,405,405,405,405,405,405,405,405,405,405,405,405,,,408,,,,,405', +',,,405,408,408,408,,408,,408,,408,,408,408,408,408,408,408,408,408,408', +'408,408,408,408,408,,,409,,,,,408,,,,408,409,409,409,,409,,409,,409', +',409,409,409,409,409,409,409,409,409,409,409,409,409,409,299,,,299,', +'299,,409,299,,,409,,,,,,,,,,,,,,299,,299,299,299,299,299,,,,299' ] + racc_action_check = arr = ::Array.new(3142, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -692,455 +694,456 @@ def initialize(input:, location:) end racc_action_pointer = [ - 140, 7, 1663, nil, nil, 21, 88, 83, nil, nil, + 62, 34, 1663, nil, nil, 38, 76, 34, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 142, 1699, 1735, 156, -8, nil, - 1171, 3, 174, nil, 8, 105, 224, nil, nil, nil, - 1771, 1807, nil, 1843, -30, nil, 225, 52, -2, 635, - nil, 102, nil, 1879, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 146, 1699, 1735, 151, 38, nil, + 1252, 249, 167, nil, 169, 98, 185, nil, nil, nil, + 1771, 1807, nil, 1843, 52, nil, 171, 115, -3, 716, + nil, -4, nil, 1879, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 238, nil, 269, - 296, 309, 1915, 329, 330, 331, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 209, nil, 217, + 230, 270, 1915, 308, 319, 320, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 363, 371, 347, 93, 348, nil, 152, - 392, 346, nil, 52, 380, 1951, nil, 383, 403, 386, - 363, 364, 366, 368, 369, 370, 372, 373, 374, 375, - 376, 403, 398, 1220, nil, 399, 398, nil, 402, nil, - 403, nil, nil, 407, 408, nil, 712, 1987, 2023, 2059, - 153, 433, 406, 420, 449, 1245, 2095, 2131, 2167, 43, - 2203, 2239, 2275, nil, nil, nil, nil, 9, 2311, 2347, - nil, 2383, nil, 65, nil, nil, 2419, nil, 184, nil, - 423, nil, nil, nil, nil, nil, nil, 789, 866, 943, - 1311, 1377, 1485, 2455, 1489, 1493, 1497, 451, 1020, 154, - 2491, nil, nil, 194, 202, 204, 206, 209, 211, 27, - 40, 44, 425, 480, 213, 235, 241, nil, 483, 2527, - nil, nil, nil, 443, nil, 1443, nil, nil, nil, 1522, - nil, nil, nil, nil, 471, 468, 441, 473, 474, 172, - 476, 492, 2563, nil, nil, 447, 1097, nil, 449, nil, - 441, 422, 467, 51, nil, nil, 246, nil, nil, 52, - 130, nil, 218, nil, nil, 77, 476, nil, 503, -12, - 1567, 504, nil, 449, 528, nil, nil, 1581, 487, 1623, - 78, 2599, nil, nil, nil, nil, nil, 31, 1610, nil, + nil, nil, nil, 352, 3, 325, 19, 326, nil, 42, + 373, 327, nil, 5, 355, 1951, nil, 358, 391, 374, + 350, 351, 358, 359, 361, 366, 367, 368, 369, 370, + 371, 399, 374, -3, nil, 375, 374, nil, 375, nil, + 376, nil, nil, 386, 397, nil, 793, 1987, 2023, 2059, + 75, 422, 395, 398, 427, 1326, 2095, 2131, 2167, 133, + 2203, 2239, 2275, nil, nil, nil, nil, 1, 2311, 2347, + nil, 2383, nil, 8, nil, nil, 2419, nil, 156, nil, + 404, nil, nil, nil, nil, nil, nil, nil, 870, 947, + 1024, 1392, 1458, 1, 2455, 5, 10, 14, 432, 1101, + 79, 2491, nil, nil, 162, 168, 185, 187, 195, 205, + 5, 10, 20, 400, 455, 210, 212, 214, nil, 471, + 2527, nil, nil, nil, 427, nil, 1524, nil, nil, nil, + 20, nil, nil, nil, nil, 455, 452, 431, 463, 465, + 164, 466, 482, 2563, nil, nil, 437, 1178, nil, 439, + nil, 431, 412, 448, 24, nil, nil, 236, nil, nil, + 26, 18, nil, 212, nil, nil, 27, 447, nil, 474, + -2, 1567, 475, nil, 418, 497, nil, nil, 1609, 453, + 1623, 28, 2599, nil, nil, nil, nil, nil, -22, 3070, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 490, 491, 479, 2635, nil, nil, nil, nil, nil, - 131, 83, -61, -2, 519, 520, 521, 84, 88, 2671, - 2707, 543, 133, nil, 541, nil, 523, nil, nil, nil, - nil, nil, nil, nil, nil, nil, 260, nil, nil, nil, - nil, nil, nil, nil, 507, 78, 508, 158, 238, 318, - 546, 547, 266, 274, 524, nil, 2743, 297, nil, nil, - 398, nil, nil, 2779, 551, 2815, 552, 2851, 553, 2887, - 2923, 2959, 170, 478, 515, 516, 542, 284, 532, 150, - 286, 533, 289, 534, 187, 188, 291, nil, 521, nil, - 536, nil, nil, 524, 2995, nil, 572, 3031, 3067, nil, - nil, nil, 555, nil, nil, 558, 293, nil, 315, 321, - 545, nil, nil ] + nil, nil, 456, 457, 445, 2635, nil, nil, nil, nil, + nil, 66, 30, 18, 79, 480, 491, 492, 31, 32, + 2671, 2707, 514, 109, nil, 509, nil, 491, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 243, nil, nil, + nil, nil, nil, nil, nil, 477, 159, 478, 239, 319, + 399, 516, 517, 249, 265, 508, nil, 2743, 282, nil, + nil, 479, nil, nil, 2779, 535, 2815, 536, 2851, 537, + 2887, 2923, 2959, 132, 559, 505, 506, 533, 275, 526, + 83, 283, 527, 285, 528, 133, 146, 287, nil, 515, + nil, 530, nil, nil, 518, 2995, nil, 558, 3031, 3067, + nil, nil, nil, 531, nil, nil, 639, 290, nil, 292, + 294, 521, nil, nil ] racc_action_default = [ - -249, -249, -243, -6, -15, -249, -4, -157, -160, -161, + -250, -250, -244, -6, -15, -250, -4, -157, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, - -172, -173, -174, -175, -176, -243, -243, -249, -80, -184, - -249, -249, -244, -246, -16, -4, -147, 423, -1, -5, - -243, -243, -183, -243, -185, -178, -248, -249, -243, -243, - -182, -249, -204, -243, -104, -105, -106, -107, -108, -109, + -172, -173, -174, -175, -176, -244, -244, -250, -80, -184, + -250, -250, -245, -247, -16, -4, -147, 424, -1, -5, + -244, -244, -183, -244, -185, -178, -249, -250, -244, -244, + -182, -250, -204, -244, -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124, -125, -126, -127, -128, -129, - -130, -131, -132, -133, -134, -135, -136, -248, -188, -249, - -249, -249, -243, -249, -249, -249, -199, -200, -201, -202, - -236, -237, -238, -239, -245, -2, -7, -8, -9, -10, - -11, -12, -13, -16, -249, -249, -249, -249, -3, -80, - -249, -158, -159, -249, -249, -243, -180, -249, -249, -249, + -130, -131, -132, -133, -134, -135, -136, -249, -188, -250, + -250, -250, -244, -250, -250, -250, -199, -200, -201, -202, + -237, -238, -239, -240, -246, -2, -7, -8, -9, -10, + -11, -12, -13, -16, -250, -250, -250, -250, -3, -80, + -250, -158, -159, -250, -250, -244, -180, -250, -250, -250, -170, -160, -164, -171, -172, -161, -162, -165, -166, -169, - -163, -115, -167, -231, -197, -249, -208, -209, -211, -212, - -214, -215, -218, -221, -223, -224, -243, -243, -243, -243, - -249, -249, -249, -206, -249, -247, -243, -243, -243, -193, - -243, -243, -243, -17, -14, -14, -14, -243, -243, -243, - -241, -243, -79, -249, -149, -177, -243, -179, -186, -181, - -81, -225, -232, -233, -234, -235, -198, -243, -243, -243, - -219, -219, -231, -243, -231, -231, -231, -249, -243, -249, - -243, -187, -189, -190, -191, -192, -194, -195, -196, -243, - -243, -243, -249, -249, -154, -155, -156, -148, -249, -243, - -207, -215, -210, -217, -213, -249, -220, -222, -226, -231, - -227, -228, -230, -82, -249, -249, -203, -137, -137, -249, - -137, -249, -243, -242, -150, -205, -243, -229, -249, -83, - -19, -145, -24, -243, -57, -240, -153, -216, -30, -243, - -249, -139, -142, -146, -30, -243, -30, -26, -29, -16, - -16, -20, -138, -145, -249, -143, -144, -16, -25, -16, - -243, -243, -56, -58, -59, -60, -61, -71, -71, -18, - -31, -32, -33, -34, -35, -36, -37, -38, -39, -40, - -41, -249, -249, -249, -243, -140, -141, -22, -23, -27, - -249, -243, -68, -249, -42, -42, -42, -243, -243, -243, - -243, -249, -249, -28, -62, -69, -249, -72, -86, -87, - -88, -89, -90, -91, -92, -93, -94, -97, -98, -99, - -100, -101, -102, -103, -129, -249, -249, -249, -249, -249, - -64, -66, -53, -54, -249, -21, -243, -73, -95, -96, - -249, -151, -43, -243, -50, -243, -50, -243, -50, -243, - -243, -243, -249, -249, -249, -249, -249, -44, -249, -249, - -46, -249, -48, -249, -249, -249, -55, -63, -15, -84, - -249, -74, -75, -249, -243, -51, -249, -243, -243, -65, - -67, -70, -76, -77, -85, -249, -45, -52, -47, -49, - -15, -152, -78 ] + -163, -115, -167, -231, -197, -250, -208, -209, -211, -212, + -214, -215, -218, -221, -223, -224, -244, -244, -244, -244, + -250, -250, -250, -206, -250, -248, -244, -244, -244, -193, + -244, -244, -244, -17, -14, -14, -14, -244, -244, -244, + -242, -244, -79, -250, -149, -177, -244, -179, -186, -181, + -81, -225, -232, -233, -234, -235, -236, -198, -244, -244, + -244, -219, -219, -231, -244, -231, -231, -231, -250, -244, + -250, -244, -187, -189, -190, -191, -192, -194, -195, -196, + -244, -244, -244, -250, -250, -154, -155, -156, -148, -250, + -244, -207, -215, -210, -217, -213, -250, -220, -222, -226, + -231, -227, -228, -230, -82, -250, -250, -203, -137, -137, + -250, -137, -250, -244, -243, -150, -205, -244, -229, -250, + -83, -19, -145, -24, -244, -57, -241, -153, -216, -30, + -244, -250, -139, -142, -146, -30, -244, -30, -26, -29, + -16, -16, -20, -138, -145, -250, -143, -144, -16, -25, + -16, -244, -244, -56, -58, -59, -60, -61, -71, -71, + -18, -31, -32, -33, -34, -35, -36, -37, -38, -39, + -40, -41, -250, -250, -250, -244, -140, -141, -22, -23, + -27, -250, -244, -68, -250, -42, -42, -42, -244, -244, + -244, -244, -250, -250, -28, -62, -69, -250, -72, -86, + -87, -88, -89, -90, -91, -92, -93, -94, -97, -98, + -99, -100, -101, -102, -103, -129, -250, -250, -250, -250, + -250, -64, -66, -53, -54, -250, -21, -244, -73, -95, + -96, -250, -151, -43, -244, -50, -244, -50, -244, -50, + -244, -244, -244, -250, -250, -250, -250, -250, -44, -250, + -250, -46, -250, -48, -250, -250, -250, -55, -63, -15, + -84, -250, -74, -75, -250, -244, -51, -250, -244, -244, + -65, -67, -70, -76, -77, -85, -250, -45, -52, -47, + -49, -15, -152, -78 ] racc_goto_table = [ - 6, 46, 116, 127, 93, 163, 114, 92, 88, 191, - 50, 207, 129, 203, 355, 278, 128, 124, 231, 123, - 234, 411, 271, 38, 47, 233, 233, 278, 276, 280, - 388, 1, 391, 34, 393, 287, 35, 289, 121, 122, - 288, 106, 278, 422, 315, 268, 371, 143, 374, 376, - 378, 105, 118, 260, 262, 274, 264, 319, 164, 294, - 245, 386, 219, 220, 221, 357, 358, 359, 238, 295, - 240, 241, 242, 334, 400, 236, 237, 267, 296, 360, - 361, 250, 279, 233, 293, 173, 336, 383, 398, 119, - 169, 162, 203, 270, 284, 183, 222, 87, 232, 100, - nil, 182, nil, nil, nil, 257, 421, nil, nil, nil, + 6, 46, 116, 88, 93, 163, 114, 92, 127, 191, + 356, 129, 50, 204, 208, 232, 128, 235, 124, 123, + 234, 234, 279, 38, 47, 277, 412, 281, 272, 261, + 263, 1, 265, 288, 279, 290, 34, 289, 121, 122, + 237, 238, 372, 35, 375, 377, 379, 143, 423, 279, + 316, 105, 118, 106, 389, 269, 392, 387, 394, 164, + 220, 221, 222, 275, 246, 358, 359, 360, 320, 239, + 401, 241, 242, 243, 268, 295, 296, 297, 234, 251, + 335, 280, 294, 337, 384, 173, 361, 362, 399, 119, + 169, 162, 271, 204, 285, 183, 223, 87, 233, 100, + nil, nil, 422, 182, nil, nil, 258, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 188, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 93, - nil, nil, 92, 212, nil, 223, nil, nil, nil, nil, - nil, nil, nil, nil, 202, 204, 205, 206, nil, nil, - 230, nil, 246, nil, 213, 214, 215, nil, 216, 217, - 218, 244, nil, nil, 247, 248, 224, 225, nil, 226, - nil, 255, nil, nil, 188, nil, nil, 128, 249, 251, - nil, nil, nil, nil, nil, 143, 143, 143, nil, nil, - nil, 239, nil, nil, nil, nil, 143, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 213, 93, + nil, nil, 92, nil, nil, 224, nil, nil, nil, nil, + nil, nil, nil, nil, 203, 205, 206, 207, nil, nil, + 231, nil, nil, 247, 214, 215, 216, nil, 217, 218, + 219, 245, nil, nil, nil, nil, 225, 226, nil, 227, + 248, 249, 256, nil, 188, nil, nil, nil, 128, 250, + 252, nil, nil, nil, nil, nil, 143, 143, 143, nil, + nil, nil, 240, nil, nil, nil, nil, 143, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 281, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 128, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 116, nil, - 266, 297, nil, nil, 143, 116, nil, 116, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 320, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 282, nil, nil, nil, nil, nil, nil, nil, 128, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, 116, + nil, 267, 298, nil, nil, 143, 116, nil, 116, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 321, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 332, nil, nil, nil, nil, nil, nil, 353, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 333, nil, nil, nil, nil, nil, nil, 354, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 362, 363, 353, - nil, 353, 353, 353, 373, 375, 377, nil, nil, nil, - nil, nil, 382, nil, 353, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 394, 395, 353, nil, nil, - 399, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 387, nil, 390, nil, 392, nil, nil, nil, 396, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 353, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 416, nil, nil, 418, 419 ] + nil, nil, nil, nil, nil, nil, nil, nil, 363, 364, + 354, nil, 354, 354, 354, 374, 376, 378, nil, nil, + nil, nil, nil, 383, nil, 354, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 395, 396, 354, nil, + nil, 400, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, 388, nil, 391, nil, 393, nil, nil, nil, + 397, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 354, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 417, nil, nil, 419, 420 ] racc_goto_check = [ - 2, 20, 22, 16, 53, 60, 15, 35, 64, 76, - 47, 51, 49, 65, 36, 25, 22, 61, 71, 20, - 71, 45, 55, 3, 2, 66, 66, 25, 23, 19, - 37, 1, 37, 4, 37, 19, 5, 19, 2, 2, - 23, 6, 25, 45, 55, 18, 36, 2, 36, 36, - 36, 3, 3, 17, 17, 21, 17, 24, 61, 27, - 51, 36, 13, 13, 13, 34, 34, 34, 76, 28, - 76, 76, 76, 25, 36, 72, 72, 71, 33, 25, - 25, 38, 39, 66, 40, 15, 41, 43, 44, 46, - 2, 50, 65, 54, 57, 58, 59, 63, 67, 77, - nil, 47, nil, nil, nil, 76, 36, nil, nil, nil, + 2, 20, 22, 64, 53, 60, 15, 35, 16, 76, + 36, 49, 47, 65, 51, 71, 22, 71, 61, 20, + 66, 66, 25, 3, 2, 23, 45, 19, 55, 17, + 17, 1, 17, 19, 25, 19, 4, 23, 2, 2, + 72, 72, 36, 5, 36, 36, 36, 2, 45, 25, + 55, 3, 3, 6, 37, 18, 37, 36, 37, 61, + 13, 13, 13, 21, 51, 34, 34, 34, 24, 76, + 36, 76, 76, 76, 71, 27, 28, 33, 66, 38, + 25, 39, 40, 41, 43, 15, 25, 25, 44, 46, + 2, 50, 54, 65, 57, 58, 59, 63, 67, 77, + nil, nil, 36, 47, nil, nil, 76, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 2, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 53, - nil, nil, 35, 64, nil, 22, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 64, 53, + nil, nil, 35, nil, nil, 22, nil, nil, nil, nil, nil, nil, nil, nil, 2, 2, 2, 2, nil, nil, - 49, nil, 60, nil, 2, 2, 2, nil, 2, 2, - 2, 49, nil, nil, 16, 16, 2, 2, nil, 2, - nil, 60, nil, nil, 2, nil, nil, 22, 22, 22, - nil, nil, nil, nil, nil, 2, 2, 2, nil, nil, - nil, 2, nil, nil, nil, nil, 2, nil, nil, nil, + 49, nil, nil, 60, 2, 2, 2, nil, 2, 2, + 2, 49, nil, nil, nil, nil, 2, 2, nil, 2, + 16, 16, 60, nil, 2, nil, nil, nil, 22, 22, + 22, nil, nil, nil, nil, nil, 2, 2, 2, nil, + nil, nil, 2, nil, nil, nil, nil, 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 16, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 22, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 22, nil, - 2, 15, nil, nil, 2, 22, nil, 22, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 20, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 16, nil, nil, nil, nil, nil, nil, nil, 22, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, 22, + nil, 2, 15, nil, nil, 2, 22, nil, 22, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 20, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 20, nil, nil, nil, nil, nil, nil, 53, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, 20, nil, nil, nil, nil, nil, nil, 53, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, 2, 2, 53, - nil, 53, 53, 53, 35, 35, 35, nil, nil, nil, - nil, nil, 20, nil, 53, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 20, 20, 53, nil, nil, - 35, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 2, nil, 2, nil, 2, nil, nil, nil, 2, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 53, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 2, nil, nil, 2, 2 ] + nil, nil, nil, nil, nil, nil, nil, nil, 2, 2, + 53, nil, 53, 53, 53, 35, 35, 35, nil, nil, + nil, nil, nil, 20, nil, 53, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 20, 20, 53, nil, + nil, 35, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, 2, nil, 2, nil, 2, nil, nil, nil, + 2, nil, nil, nil, nil, nil, nil, nil, nil, nil, + 53, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 2, nil, nil, 2, 2 ] racc_goto_pointer = [ - nil, 31, -2, 17, 30, 32, 7, nil, nil, nil, - nil, nil, nil, -112, nil, -28, -45, -194, -215, -239, - -24, -207, -32, -235, -233, -248, nil, -220, -210, nil, - nil, nil, nil, -201, -259, -23, -309, -344, -140, -182, - -195, -236, nil, -280, -295, -377, 53, -18, nil, -37, - 40, -149, nil, -26, -168, -239, nil, -178, -25, -81, - -48, -29, nil, 67, -22, -143, -173, -100, nil, nil, - nil, -179, -125, nil, nil, nil, -134, 68 ] + nil, 31, -2, 17, 33, 39, 19, nil, nil, nil, + nil, nil, nil, -114, nil, -28, -40, -219, -206, -242, + -24, -200, -32, -239, -223, -242, nil, -205, -204, nil, + nil, nil, nil, -203, -260, -23, -314, -321, -143, -184, + -198, -240, nil, -284, -296, -373, 53, -16, nil, -38, + 40, -146, nil, -26, -170, -234, nil, -179, -25, -81, + -48, -28, nil, 67, -27, -143, -179, -101, nil, nil, + nil, -183, -161, nil, nil, nil, -134, 68 ] racc_goto_default = [ - nil, nil, 44, nil, nil, 412, 310, 107, 108, 109, - 110, 111, 112, nil, 36, 298, 115, nil, nil, nil, - nil, nil, 31, nil, 277, 24, 300, 301, 302, 303, - 304, 305, 306, 309, nil, 144, nil, nil, nil, nil, - nil, nil, 322, nil, nil, nil, nil, nil, 51, nil, - nil, 52, 346, 145, nil, nil, 272, nil, nil, nil, + nil, nil, 44, nil, nil, 413, 311, 107, 108, 109, + 110, 111, 112, nil, 36, 299, 115, nil, nil, nil, + nil, nil, 31, nil, 278, 24, 301, 302, 303, 304, + 305, 306, 307, 310, nil, 144, nil, nil, nil, nil, + nil, nil, 323, nil, nil, nil, nil, nil, 51, nil, + nil, 52, 347, 145, nil, nil, 273, nil, nil, nil, 7, nil, 29, nil, nil, 158, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, - 3, 83, :_reduce_1, - 3, 83, :_reduce_2, - 3, 83, :_reduce_3, - 0, 85, :_reduce_none, + 3, 84, :_reduce_1, + 3, 84, :_reduce_2, + 3, 84, :_reduce_3, + 0, 86, :_reduce_none, + 1, 86, :_reduce_none, + 0, 87, :_reduce_6, + 2, 87, :_reduce_7, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 1, 89, :_reduce_none, + 0, 96, :_reduce_14, + 0, 97, :_reduce_15, + 0, 98, :_reduce_16, + 2, 98, :_reduce_17, + 8, 95, :_reduce_18, + 0, 101, :_reduce_19, + 2, 101, :_reduce_20, + 5, 101, :_reduce_21, + 8, 94, :_reduce_22, + 8, 94, :_reduce_23, + 0, 104, :_reduce_24, + 2, 104, :_reduce_25, + 1, 106, :_reduce_26, + 3, 106, :_reduce_27, + 4, 107, :_reduce_28, + 1, 107, :_reduce_29, + 0, 102, :_reduce_30, + 2, 102, :_reduce_31, + 1, 109, :_reduce_none, + 1, 109, :_reduce_none, + 1, 109, :_reduce_none, + 1, 109, :_reduce_none, + 1, 109, :_reduce_none, + 1, 109, :_reduce_none, + 1, 109, :_reduce_38, + 1, 109, :_reduce_39, + 1, 109, :_reduce_none, + 1, 109, :_reduce_none, + 0, 117, :_reduce_42, + 2, 117, :_reduce_43, + 5, 115, :_reduce_44, + 7, 115, :_reduce_45, + 5, 115, :_reduce_46, + 7, 115, :_reduce_47, + 5, 115, :_reduce_48, + 7, 115, :_reduce_49, + 0, 120, :_reduce_50, + 2, 120, :_reduce_51, + 3, 120, :_reduce_52, + 3, 114, :_reduce_53, + 3, 114, :_reduce_54, + 5, 114, :_reduce_55, + 7, 93, :_reduce_56, + 0, 122, :_reduce_57, + 2, 122, :_reduce_58, + 1, 123, :_reduce_59, + 1, 123, :_reduce_60, + 1, 123, :_reduce_none, + 3, 111, :_reduce_62, + 6, 111, :_reduce_63, + 3, 112, :_reduce_64, + 6, 112, :_reduce_65, + 3, 113, :_reduce_66, + 6, 113, :_reduce_67, + 0, 124, :_reduce_68, + 1, 124, :_reduce_69, + 7, 110, :_reduce_70, + 0, 125, :_reduce_none, + 2, 125, :_reduce_72, + 0, 126, :_reduce_73, + 2, 126, :_reduce_74, + 2, 126, :_reduce_75, + 1, 128, :_reduce_76, + 1, 128, :_reduce_77, + 3, 128, :_reduce_78, + 3, 88, :_reduce_79, + 0, 131, :_reduce_80, + 3, 131, :_reduce_81, + 3, 133, :_reduce_82, + 4, 133, :_reduce_83, + 1, 127, :_reduce_84, + 2, 127, :_reduce_85, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 2, 119, :_reduce_95, + 2, 119, :_reduce_96, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 119, :_reduce_none, + 1, 135, :_reduce_none, + 1, 135, :_reduce_none, + 1, 135, :_reduce_none, + 1, 135, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 1, 136, :_reduce_none, + 0, 100, :_reduce_137, + 3, 100, :_reduce_138, + 1, 137, :_reduce_139, + 3, 137, :_reduce_140, + 3, 138, :_reduce_141, + 0, 140, :_reduce_142, + 1, 140, :_reduce_143, + 1, 140, :_reduce_144, + 0, 139, :_reduce_145, + 1, 139, :_reduce_146, + 0, 129, :_reduce_147, + 3, 129, :_reduce_148, + 1, 141, :_reduce_149, + 3, 141, :_reduce_150, + 4, 116, :_reduce_151, + 8, 116, :_reduce_152, + 5, 90, :_reduce_153, + 3, 91, :_reduce_154, + 3, 91, :_reduce_155, + 3, 92, :_reduce_156, 1, 85, :_reduce_none, - 0, 86, :_reduce_6, - 2, 86, :_reduce_7, - 1, 88, :_reduce_none, - 1, 88, :_reduce_none, - 1, 88, :_reduce_none, - 1, 88, :_reduce_none, - 1, 88, :_reduce_none, - 1, 88, :_reduce_none, - 0, 95, :_reduce_14, - 0, 96, :_reduce_15, - 0, 97, :_reduce_16, - 2, 97, :_reduce_17, - 8, 94, :_reduce_18, - 0, 100, :_reduce_19, - 2, 100, :_reduce_20, - 5, 100, :_reduce_21, - 8, 93, :_reduce_22, - 8, 93, :_reduce_23, - 0, 103, :_reduce_24, - 2, 103, :_reduce_25, - 1, 105, :_reduce_26, - 3, 105, :_reduce_27, - 4, 106, :_reduce_28, - 1, 106, :_reduce_29, - 0, 101, :_reduce_30, - 2, 101, :_reduce_31, - 1, 108, :_reduce_none, - 1, 108, :_reduce_none, - 1, 108, :_reduce_none, - 1, 108, :_reduce_none, - 1, 108, :_reduce_none, - 1, 108, :_reduce_none, - 1, 108, :_reduce_38, - 1, 108, :_reduce_39, - 1, 108, :_reduce_none, - 1, 108, :_reduce_none, - 0, 116, :_reduce_42, - 2, 116, :_reduce_43, - 5, 114, :_reduce_44, - 7, 114, :_reduce_45, - 5, 114, :_reduce_46, - 7, 114, :_reduce_47, - 5, 114, :_reduce_48, - 7, 114, :_reduce_49, - 0, 119, :_reduce_50, - 2, 119, :_reduce_51, - 3, 119, :_reduce_52, - 3, 113, :_reduce_53, - 3, 113, :_reduce_54, - 5, 113, :_reduce_55, - 7, 92, :_reduce_56, - 0, 121, :_reduce_57, - 2, 121, :_reduce_58, - 1, 122, :_reduce_59, - 1, 122, :_reduce_60, - 1, 122, :_reduce_none, - 3, 110, :_reduce_62, - 6, 110, :_reduce_63, - 3, 111, :_reduce_64, - 6, 111, :_reduce_65, - 3, 112, :_reduce_66, - 6, 112, :_reduce_67, - 0, 123, :_reduce_68, - 1, 123, :_reduce_69, - 7, 109, :_reduce_70, - 0, 124, :_reduce_none, - 2, 124, :_reduce_72, - 0, 125, :_reduce_73, - 2, 125, :_reduce_74, - 2, 125, :_reduce_75, - 1, 127, :_reduce_76, - 1, 127, :_reduce_77, - 3, 127, :_reduce_78, - 3, 87, :_reduce_79, - 0, 130, :_reduce_80, - 3, 130, :_reduce_81, - 3, 132, :_reduce_82, - 4, 132, :_reduce_83, - 1, 126, :_reduce_84, - 2, 126, :_reduce_85, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, - 1, 118, :_reduce_none, + 3, 85, :_reduce_158, + 3, 85, :_reduce_159, + 1, 143, :_reduce_160, + 1, 143, :_reduce_161, + 1, 143, :_reduce_162, + 1, 143, :_reduce_163, + 1, 143, :_reduce_164, + 1, 143, :_reduce_165, + 1, 143, :_reduce_166, + 1, 143, :_reduce_167, + 1, 143, :_reduce_168, + 1, 143, :_reduce_169, + 1, 143, :_reduce_170, + 1, 143, :_reduce_171, + 1, 143, :_reduce_172, + 1, 143, :_reduce_173, + 1, 143, :_reduce_174, + 1, 143, :_reduce_175, + 1, 143, :_reduce_176, + 4, 143, :_reduce_177, + 2, 143, :_reduce_178, + 4, 143, :_reduce_179, + 3, 143, :_reduce_180, + 4, 143, :_reduce_181, + 2, 143, :_reduce_182, + 2, 143, :_reduce_183, + 1, 143, :_reduce_none, + 1, 103, :_reduce_185, + 3, 103, :_reduce_186, + 4, 145, :_reduce_187, + 1, 146, :_reduce_188, + 3, 146, :_reduce_189, + 3, 147, :_reduce_190, + 3, 147, :_reduce_191, + 3, 147, :_reduce_192, + 2, 147, :_reduce_193, + 3, 147, :_reduce_194, + 3, 147, :_reduce_195, + 3, 147, :_reduce_196, + 1, 148, :_reduce_none, + 2, 148, :_reduce_198, 1, 118, :_reduce_none, - 2, 118, :_reduce_95, - 2, 118, :_reduce_96, 1, 118, :_reduce_none, 1, 118, :_reduce_none, 1, 118, :_reduce_none, - 1, 134, :_reduce_none, - 1, 134, :_reduce_none, - 1, 134, :_reduce_none, - 1, 134, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 1, 135, :_reduce_none, - 0, 99, :_reduce_137, - 3, 99, :_reduce_138, - 1, 136, :_reduce_139, - 3, 136, :_reduce_140, - 3, 137, :_reduce_141, - 0, 139, :_reduce_142, - 1, 139, :_reduce_143, - 1, 139, :_reduce_144, - 0, 138, :_reduce_145, - 1, 138, :_reduce_146, - 0, 128, :_reduce_147, - 3, 128, :_reduce_148, - 1, 140, :_reduce_149, - 3, 140, :_reduce_150, - 4, 115, :_reduce_151, - 8, 115, :_reduce_152, - 5, 89, :_reduce_153, - 3, 90, :_reduce_154, - 3, 90, :_reduce_155, - 3, 91, :_reduce_156, - 1, 84, :_reduce_none, - 3, 84, :_reduce_158, - 3, 84, :_reduce_159, - 1, 142, :_reduce_160, - 1, 142, :_reduce_161, - 1, 142, :_reduce_162, - 1, 142, :_reduce_163, - 1, 142, :_reduce_164, - 1, 142, :_reduce_165, - 1, 142, :_reduce_166, - 1, 142, :_reduce_167, - 1, 142, :_reduce_168, - 1, 142, :_reduce_169, - 1, 142, :_reduce_170, - 1, 142, :_reduce_171, - 1, 142, :_reduce_172, - 1, 142, :_reduce_173, - 1, 142, :_reduce_174, - 1, 142, :_reduce_175, - 1, 142, :_reduce_176, - 4, 142, :_reduce_177, - 2, 142, :_reduce_178, - 4, 142, :_reduce_179, - 3, 142, :_reduce_180, - 4, 142, :_reduce_181, - 2, 142, :_reduce_182, - 2, 142, :_reduce_183, - 1, 142, :_reduce_none, - 1, 102, :_reduce_185, - 3, 102, :_reduce_186, - 4, 144, :_reduce_187, - 1, 145, :_reduce_188, - 3, 145, :_reduce_189, - 3, 146, :_reduce_190, - 3, 146, :_reduce_191, - 3, 146, :_reduce_192, - 2, 146, :_reduce_193, - 3, 146, :_reduce_194, - 3, 146, :_reduce_195, - 3, 146, :_reduce_196, - 1, 147, :_reduce_none, - 2, 147, :_reduce_198, - 1, 117, :_reduce_none, - 1, 117, :_reduce_none, - 1, 117, :_reduce_none, - 1, 117, :_reduce_none, - 4, 129, :_reduce_203, - 1, 129, :_reduce_204, - 5, 133, :_reduce_205, - 2, 133, :_reduce_206, - 3, 131, :_reduce_207, - 1, 131, :_reduce_208, - 1, 131, :_reduce_none, - 3, 149, :_reduce_210, - 1, 149, :_reduce_211, - 1, 149, :_reduce_none, - 3, 151, :_reduce_213, - 1, 151, :_reduce_214, - 1, 151, :_reduce_none, - 3, 153, :_reduce_216, - 1, 153, :_reduce_217, - 1, 153, :_reduce_none, - 0, 154, :_reduce_219, - 3, 154, :_reduce_220, - 1, 154, :_reduce_221, - 3, 154, :_reduce_222, - 1, 154, :_reduce_223, - 1, 154, :_reduce_224, - 2, 148, :_reduce_225, - 3, 150, :_reduce_226, - 3, 152, :_reduce_227, - 3, 155, :_reduce_228, - 4, 156, :_reduce_229, - 3, 157, :_reduce_230, - 0, 158, :_reduce_none, - 1, 158, :_reduce_none, - 1, 158, :_reduce_none, - 1, 158, :_reduce_none, - 1, 158, :_reduce_none, - 2, 107, :_reduce_236, + 4, 130, :_reduce_203, + 1, 130, :_reduce_204, + 5, 134, :_reduce_205, + 2, 134, :_reduce_206, + 3, 132, :_reduce_207, + 1, 132, :_reduce_208, + 1, 132, :_reduce_none, + 3, 150, :_reduce_210, + 1, 150, :_reduce_211, + 1, 150, :_reduce_none, + 3, 152, :_reduce_213, + 1, 152, :_reduce_214, + 1, 152, :_reduce_none, + 3, 154, :_reduce_216, + 1, 154, :_reduce_217, + 1, 154, :_reduce_none, + 0, 155, :_reduce_219, + 3, 155, :_reduce_220, + 1, 155, :_reduce_221, + 3, 155, :_reduce_222, + 1, 155, :_reduce_223, + 1, 155, :_reduce_224, + 2, 149, :_reduce_225, + 3, 151, :_reduce_226, + 3, 153, :_reduce_227, + 3, 156, :_reduce_228, + 4, 157, :_reduce_229, + 3, 158, :_reduce_230, + 0, 159, :_reduce_none, 1, 159, :_reduce_none, 1, 159, :_reduce_none, 1, 159, :_reduce_none, - 2, 120, :_reduce_240, - 2, 98, :_reduce_241, - 2, 141, :_reduce_242, - 0, 104, :_reduce_243, - 1, 104, :_reduce_244, - 2, 104, :_reduce_245, - 1, 104, :_reduce_246, - 1, 143, :_reduce_none, - 0, 143, :_reduce_none ] - -racc_reduce_n = 249 - -racc_shift_n = 423 + 1, 159, :_reduce_none, + 1, 159, :_reduce_none, + 2, 108, :_reduce_237, + 1, 160, :_reduce_none, + 1, 160, :_reduce_none, + 1, 160, :_reduce_none, + 2, 121, :_reduce_241, + 2, 99, :_reduce_242, + 2, 142, :_reduce_243, + 0, 105, :_reduce_244, + 1, 105, :_reduce_245, + 2, 105, :_reduce_246, + 1, 105, :_reduce_247, + 1, 144, :_reduce_none, + 0, 144, :_reduce_none ] + +racc_reduce_n = 250 + +racc_shift_n = 424 racc_token_table = { false => 0, @@ -1224,9 +1227,10 @@ def initialize(input:, location:) :kOUT => 78, :kIN => 79, :kUNCHECKED => 80, - :kOVERLOAD => 81 } + :kOVERLOAD => 81, + :kUNDERSCORE => 82 } -racc_nt_base = 82 +racc_nt_base = 83 racc_use_result_var = true @@ -1329,6 +1333,7 @@ def initialize(input:, location:) "kIN", "kUNCHECKED", "kOVERLOAD", + "kUNDERSCORE", "$start", "target", "type", @@ -1414,7 +1419,7 @@ def initialize(input:, location:) # reduce 0 omitted -module_eval(<<'.,.,', 'parser.y', 28) +module_eval(<<'.,.,', 'parser.y', 29) def _reduce_1(val, _values, result) result = val[1] @@ -1422,7 +1427,7 @@ def _reduce_1(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 31) +module_eval(<<'.,.,', 'parser.y', 32) def _reduce_2(val, _values, result) result = val[1] @@ -1430,7 +1435,7 @@ def _reduce_2(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 34) +module_eval(<<'.,.,', 'parser.y', 35) def _reduce_3(val, _values, result) result = val[1] @@ -1442,14 +1447,14 @@ def _reduce_3(val, _values, result) # reduce 5 omitted -module_eval(<<'.,.,', 'parser.y', 40) +module_eval(<<'.,.,', 'parser.y', 41) def _reduce_6(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'parser.y', 42) +module_eval(<<'.,.,', 'parser.y', 43) def _reduce_7(val, _values, result) result = val[0].push(val[1]) @@ -1469,28 +1474,28 @@ def _reduce_7(val, _values, result) # reduce 13 omitted -module_eval(<<'.,.,', 'parser.y', 53) +module_eval(<<'.,.,', 'parser.y', 54) def _reduce_14(val, _values, result) start_new_variables_scope result end .,., -module_eval(<<'.,.,', 'parser.y', 54) +module_eval(<<'.,.,', 'parser.y', 55) def _reduce_15(val, _values, result) start_merged_variables_scope result end .,., -module_eval(<<'.,.,', 'parser.y', 57) +module_eval(<<'.,.,', 'parser.y', 58) def _reduce_16(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'parser.y', 59) +module_eval(<<'.,.,', 'parser.y', 60) def _reduce_17(val, _values, result) result = val[1].unshift(Annotation.new(string: val[0].value, location: val[0].location)) @@ -1498,7 +1503,7 @@ def _reduce_17(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 64) +module_eval(<<'.,.,', 'parser.y', 65) def _reduce_18(val, _values, result) reset_variable_scope @@ -1528,14 +1533,14 @@ def _reduce_18(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 90) +module_eval(<<'.,.,', 'parser.y', 91) def _reduce_19(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 92) +module_eval(<<'.,.,', 'parser.y', 93) def _reduce_20(val, _values, result) loc = val[1].location.with_children( required: { name: val[1].location }, @@ -1548,7 +1553,7 @@ def _reduce_20(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 100) +module_eval(<<'.,.,', 'parser.y', 101) def _reduce_21(val, _values, result) loc = (val[1].location + val[4].location).with_children( required: { name: val[1].location }, @@ -1561,7 +1566,7 @@ def _reduce_21(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 110) +module_eval(<<'.,.,', 'parser.y', 111) def _reduce_22(val, _values, result) reset_variable_scope @@ -1604,7 +1609,7 @@ def _reduce_22(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 148) +module_eval(<<'.,.,', 'parser.y', 149) def _reduce_23(val, _values, result) reset_variable_scope @@ -1637,14 +1642,14 @@ def _reduce_23(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 177) +module_eval(<<'.,.,', 'parser.y', 178) def _reduce_24(val, _values, result) result = LocatedValue.new(value: [], location: nil) result end .,., -module_eval(<<'.,.,', 'parser.y', 179) +module_eval(<<'.,.,', 'parser.y', 180) def _reduce_25(val, _values, result) result = LocatedValue.new(value: val[1], location: val[0].location) @@ -1652,7 +1657,7 @@ def _reduce_25(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 184) +module_eval(<<'.,.,', 'parser.y', 185) def _reduce_26(val, _values, result) result = [val[0]] @@ -1660,7 +1665,7 @@ def _reduce_26(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 187) +module_eval(<<'.,.,', 'parser.y', 188) def _reduce_27(val, _values, result) result = val[0].push(val[2]) @@ -1668,7 +1673,7 @@ def _reduce_27(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 192) +module_eval(<<'.,.,', 'parser.y', 193) def _reduce_28(val, _values, result) name = val[0].value args = val[2] @@ -1691,7 +1696,7 @@ def _reduce_28(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 210) +module_eval(<<'.,.,', 'parser.y', 211) def _reduce_29(val, _values, result) name = val[0].value args = [] @@ -1713,14 +1718,14 @@ def _reduce_29(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 228) +module_eval(<<'.,.,', 'parser.y', 229) def _reduce_30(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'parser.y', 230) +module_eval(<<'.,.,', 'parser.y', 231) def _reduce_31(val, _values, result) result = val[0].push(val[1]) @@ -1740,7 +1745,7 @@ def _reduce_31(val, _values, result) # reduce 37 omitted -module_eval(<<'.,.,', 'parser.y', 241) +module_eval(<<'.,.,', 'parser.y', 242) def _reduce_38(val, _values, result) result = Members::Public.new(location: val[0].location) @@ -1748,7 +1753,7 @@ def _reduce_38(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 244) +module_eval(<<'.,.,', 'parser.y', 245) def _reduce_39(val, _values, result) result = Members::Private.new(location: val[0].location) @@ -1760,21 +1765,21 @@ def _reduce_39(val, _values, result) # reduce 41 omitted -module_eval(<<'.,.,', 'parser.y', 250) +module_eval(<<'.,.,', 'parser.y', 251) def _reduce_42(val, _values, result) result = LocatedValue.new(value: :instance, location: nil) result end .,., -module_eval(<<'.,.,', 'parser.y', 251) +module_eval(<<'.,.,', 'parser.y', 252) def _reduce_43(val, _values, result) result = LocatedValue.new(value: :singleton, location: val[0].location + val[1].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 255) +module_eval(<<'.,.,', 'parser.y', 256) def _reduce_44(val, _values, result) location = val[1].location + val[4].location name_loc, colon_loc = split_kw_loc(val[3].location) @@ -1794,7 +1799,7 @@ def _reduce_44(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 270) +module_eval(<<'.,.,', 'parser.y', 271) def _reduce_45(val, _values, result) location = val[1].location + val[6].location ivar_loc = val[4]&.location @@ -1825,7 +1830,7 @@ def _reduce_45(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 296) +module_eval(<<'.,.,', 'parser.y', 297) def _reduce_46(val, _values, result) location = val[1].location + val[4].location name_loc, colon_loc = split_kw_loc(val[3].location) @@ -1845,7 +1850,7 @@ def _reduce_46(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 311) +module_eval(<<'.,.,', 'parser.y', 312) def _reduce_47(val, _values, result) location = val[1].location + val[6].location ivar_loc = val[4]&.location @@ -1877,7 +1882,7 @@ def _reduce_47(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 338) +module_eval(<<'.,.,', 'parser.y', 339) def _reduce_48(val, _values, result) location = val[1].location + val[4].location name_loc, colon_loc = split_kw_loc(val[3].location) @@ -1898,7 +1903,7 @@ def _reduce_48(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 354) +module_eval(<<'.,.,', 'parser.y', 355) def _reduce_49(val, _values, result) location = val[1].location + val[6].location ivar_loc = val[4]&.location @@ -1930,21 +1935,21 @@ def _reduce_49(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 382) +module_eval(<<'.,.,', 'parser.y', 383) def _reduce_50(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 383) +module_eval(<<'.,.,', 'parser.y', 384) def _reduce_51(val, _values, result) result = LocatedValue.new(value: false, location: val[0].location + val[1].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 385) +module_eval(<<'.,.,', 'parser.y', 386) def _reduce_52(val, _values, result) result = LocatedValue.new( value: val[1], @@ -1955,7 +1960,7 @@ def _reduce_52(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 393) +module_eval(<<'.,.,', 'parser.y', 394) def _reduce_53(val, _values, result) location = (val[0].location + val[2].location).with_children( required: { name: val[0].location, colon: val[1].location }, @@ -1973,7 +1978,7 @@ def _reduce_53(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 406) +module_eval(<<'.,.,', 'parser.y', 407) def _reduce_54(val, _values, result) type = val[2] @@ -2001,7 +2006,7 @@ def _reduce_54(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 429) +module_eval(<<'.,.,', 'parser.y', 430) def _reduce_55(val, _values, result) type = val[4] @@ -2029,7 +2034,7 @@ def _reduce_55(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 454) +module_eval(<<'.,.,', 'parser.y', 455) def _reduce_56(val, _values, result) reset_variable_scope @@ -2051,14 +2056,14 @@ def _reduce_56(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 472) +module_eval(<<'.,.,', 'parser.y', 473) def _reduce_57(val, _values, result) result = [] result end .,., -module_eval(<<'.,.,', 'parser.y', 474) +module_eval(<<'.,.,', 'parser.y', 475) def _reduce_58(val, _values, result) result = val[0].push(val[1]) @@ -2066,7 +2071,7 @@ def _reduce_58(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 479) +module_eval(<<'.,.,', 'parser.y', 480) def _reduce_59(val, _values, result) unless val[0].kind == :instance raise SemanticsError.new("Interface cannot have singleton method", subject: val[0], location: val[0].location) @@ -2082,7 +2087,7 @@ def _reduce_59(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 490) +module_eval(<<'.,.,', 'parser.y', 491) def _reduce_60(val, _values, result) unless val[0].name.interface? raise SemanticsError.new("Interface should include an interface", subject: val[0], location: val[0].location) @@ -2096,7 +2101,7 @@ def _reduce_60(val, _values, result) # reduce 61 omitted -module_eval(<<'.,.,', 'parser.y', 500) +module_eval(<<'.,.,', 'parser.y', 501) def _reduce_62(val, _values, result) if val[2].value.alias? raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location) @@ -2117,7 +2122,7 @@ def _reduce_62(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 516) +module_eval(<<'.,.,', 'parser.y', 517) def _reduce_63(val, _values, result) if val[2].value.alias? raise SemanticsError.new("Should include module or interface", subject: val[2].value, location: val[2].location) @@ -2138,7 +2143,7 @@ def _reduce_63(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 534) +module_eval(<<'.,.,', 'parser.y', 535) def _reduce_64(val, _values, result) if val[2].value.alias? raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location) @@ -2159,7 +2164,7 @@ def _reduce_64(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 550) +module_eval(<<'.,.,', 'parser.y', 551) def _reduce_65(val, _values, result) if val[2].value.alias? raise SemanticsError.new("Should extend module or interface", subject: val[2].value, location: val[2].location) @@ -2180,7 +2185,7 @@ def _reduce_65(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 568) +module_eval(<<'.,.,', 'parser.y', 569) def _reduce_66(val, _values, result) unless val[2].value.class? raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location) @@ -2201,7 +2206,7 @@ def _reduce_66(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 584) +module_eval(<<'.,.,', 'parser.y', 585) def _reduce_67(val, _values, result) unless val[2].value.class? raise SemanticsError.new("Should prepend module", subject: val[2].value, location: val[2].location) @@ -2222,14 +2227,14 @@ def _reduce_67(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 601) +module_eval(<<'.,.,', 'parser.y', 602) def _reduce_68(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 603) +module_eval(<<'.,.,', 'parser.y', 604) def _reduce_69(val, _values, result) RBS.logger.warn "`overload def` syntax is deprecated. Use `...` syntax instead." result = val[0] @@ -2238,7 +2243,7 @@ def _reduce_69(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 609) +module_eval(<<'.,.,', 'parser.y', 610) def _reduce_70(val, _values, result) location = val[3].location + val[6].last.location @@ -2277,7 +2282,7 @@ def _reduce_70(val, _values, result) # reduce 71 omitted -module_eval(<<'.,.,', 'parser.y', 643) +module_eval(<<'.,.,', 'parser.y', 644) def _reduce_72(val, _values, result) RBS.logger.warn "`incompatible` method attribute is deprecated and ignored." @@ -2285,42 +2290,42 @@ def _reduce_72(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 647) +module_eval(<<'.,.,', 'parser.y', 648) def _reduce_73(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 648) +module_eval(<<'.,.,', 'parser.y', 649) def _reduce_74(val, _values, result) result = LocatedValue.new(value: :singleton, location: val[0].location + val[1].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 649) +module_eval(<<'.,.,', 'parser.y', 650) def _reduce_75(val, _values, result) result = LocatedValue.new(value: :singleton_instance, location: val[0].location + val[1].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 652) +module_eval(<<'.,.,', 'parser.y', 653) def _reduce_76(val, _values, result) result = [val[0]] result end .,., -module_eval(<<'.,.,', 'parser.y', 653) +module_eval(<<'.,.,', 'parser.y', 654) def _reduce_77(val, _values, result) result = [LocatedValue.new(value: :dot3, location: val[0].location)] result end .,., -module_eval(<<'.,.,', 'parser.y', 655) +module_eval(<<'.,.,', 'parser.y', 656) def _reduce_78(val, _values, result) result = val[2].unshift(val[0]) @@ -2328,7 +2333,7 @@ def _reduce_78(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 660) +module_eval(<<'.,.,', 'parser.y', 661) def _reduce_79(val, _values, result) reset_variable_scope @@ -2346,14 +2351,14 @@ def _reduce_79(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 674) +module_eval(<<'.,.,', 'parser.y', 675) def _reduce_80(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 676) +module_eval(<<'.,.,', 'parser.y', 677) def _reduce_81(val, _values, result) result = LocatedValue.new(value: val[1], location: val[0].location + val[2].location) @@ -2361,7 +2366,7 @@ def _reduce_81(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 681) +module_eval(<<'.,.,', 'parser.y', 682) def _reduce_82(val, _values, result) block = Types::Block.new(type: val[1].value, required: true) result = LocatedValue.new(value: block, location: val[0].location + val[2].location) @@ -2370,7 +2375,7 @@ def _reduce_82(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 685) +module_eval(<<'.,.,', 'parser.y', 686) def _reduce_83(val, _values, result) block = Types::Block.new(type: val[2].value, required: false) result = LocatedValue.new(value: block, location: val[0].location + val[3].location) @@ -2379,7 +2384,7 @@ def _reduce_83(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 691) +module_eval(<<'.,.,', 'parser.y', 692) def _reduce_84(val, _values, result) loc = val[0].location @@ -2392,7 +2397,7 @@ def _reduce_84(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 699) +module_eval(<<'.,.,', 'parser.y', 700) def _reduce_85(val, _values, result) result = LocatedValue.new(value: val[0].value.to_sym, location: val[0].location + val[1].location) @@ -2419,7 +2424,7 @@ def _reduce_85(val, _values, result) # reduce 94 omitted -module_eval(<<'.,.,', 'parser.y', 708) +module_eval(<<'.,.,', 'parser.y', 709) def _reduce_95(val, _values, result) unless val[0].location.pred?(val[1].location) raise SyntaxError.new(token_str: "kQUESTION", error_value: val[1]) @@ -2432,7 +2437,7 @@ def _reduce_95(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 716) +module_eval(<<'.,.,', 'parser.y', 717) def _reduce_96(val, _values, result) unless val[0].location.pred?(val[1].location) raise SyntaxError.new(token_str: "kEXCLAMATION", error_value: val[1]) @@ -2525,14 +2530,14 @@ def _reduce_96(val, _values, result) # reduce 136 omitted -module_eval(<<'.,.,', 'parser.y', 736) +module_eval(<<'.,.,', 'parser.y', 737) def _reduce_137(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 738) +module_eval(<<'.,.,', 'parser.y', 739) def _reduce_138(val, _values, result) val[1].each {|p| insert_bound_variable(p.name) } @@ -2542,7 +2547,7 @@ def _reduce_138(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 745) +module_eval(<<'.,.,', 'parser.y', 746) def _reduce_139(val, _values, result) result = Declarations::ModuleTypeParams.new() result.add(val[0]) @@ -2551,7 +2556,7 @@ def _reduce_139(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 749) +module_eval(<<'.,.,', 'parser.y', 750) def _reduce_140(val, _values, result) result = val[0].add(val[2]) @@ -2559,7 +2564,7 @@ def _reduce_140(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 754) +module_eval(<<'.,.,', 'parser.y', 755) def _reduce_141(val, _values, result) loc = case when l0 = val[0].location @@ -2584,49 +2589,49 @@ def _reduce_141(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 775) +module_eval(<<'.,.,', 'parser.y', 776) def _reduce_142(val, _values, result) result = LocatedValue.new(value: :invariant, location: nil) result end .,., -module_eval(<<'.,.,', 'parser.y', 776) +module_eval(<<'.,.,', 'parser.y', 777) def _reduce_143(val, _values, result) result = LocatedValue.new(value: :covariant, location: val[0].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 777) +module_eval(<<'.,.,', 'parser.y', 778) def _reduce_144(val, _values, result) result = LocatedValue.new(value: :contravariant, location: val[0].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 780) +module_eval(<<'.,.,', 'parser.y', 781) def _reduce_145(val, _values, result) result = LocatedValue.new(value: false, location: nil) result end .,., -module_eval(<<'.,.,', 'parser.y', 781) +module_eval(<<'.,.,', 'parser.y', 782) def _reduce_146(val, _values, result) result = LocatedValue.new(value: true, location: val[0].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 784) +module_eval(<<'.,.,', 'parser.y', 785) def _reduce_147(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 786) +module_eval(<<'.,.,', 'parser.y', 787) def _reduce_148(val, _values, result) val[1].each {|var| insert_bound_variable(var) } @@ -2637,7 +2642,7 @@ def _reduce_148(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 794) +module_eval(<<'.,.,', 'parser.y', 795) def _reduce_149(val, _values, result) result = [val[0].value.to_sym] @@ -2645,7 +2650,7 @@ def _reduce_149(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 797) +module_eval(<<'.,.,', 'parser.y', 798) def _reduce_150(val, _values, result) result = val[0].push(val[2].value.to_sym) @@ -2653,7 +2658,7 @@ def _reduce_150(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 802) +module_eval(<<'.,.,', 'parser.y', 803) def _reduce_151(val, _values, result) location = val[1].location + val[3].location location = location.with_children( @@ -2673,7 +2678,7 @@ def _reduce_151(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 817) +module_eval(<<'.,.,', 'parser.y', 818) def _reduce_152(val, _values, result) location = val[1].location + val[7].location location = location.with_children( @@ -2696,7 +2701,7 @@ def _reduce_152(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 837) +module_eval(<<'.,.,', 'parser.y', 838) def _reduce_153(val, _values, result) location = val[1].location + val[4].location location = location.with_children( @@ -2714,7 +2719,7 @@ def _reduce_153(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 852) +module_eval(<<'.,.,', 'parser.y', 853) def _reduce_154(val, _values, result) location = val[0].location + val[2].location location = location.with_children( @@ -2729,7 +2734,7 @@ def _reduce_154(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 862) +module_eval(<<'.,.,', 'parser.y', 863) def _reduce_155(val, _values, result) location = (val[0] || val[1]).location + val[2].location @@ -2749,7 +2754,7 @@ def _reduce_155(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 879) +module_eval(<<'.,.,', 'parser.y', 880) def _reduce_156(val, _values, result) location = val[0].location + val[2].location location = location.with_children( @@ -2766,7 +2771,7 @@ def _reduce_156(val, _values, result) # reduce 157 omitted -module_eval(<<'.,.,', 'parser.y', 892) +module_eval(<<'.,.,', 'parser.y', 893) def _reduce_158(val, _values, result) types = case l = val[0] when Types::Union @@ -2781,7 +2786,7 @@ def _reduce_158(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 902) +module_eval(<<'.,.,', 'parser.y', 903) def _reduce_159(val, _values, result) types = case l = val[0] when Types::Intersection @@ -2797,7 +2802,7 @@ def _reduce_159(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 915) +module_eval(<<'.,.,', 'parser.y', 916) def _reduce_160(val, _values, result) result = Types::Bases::Void.new(location: val[0].location) @@ -2805,7 +2810,7 @@ def _reduce_160(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 918) +module_eval(<<'.,.,', 'parser.y', 919) def _reduce_161(val, _values, result) RBS.logger.warn "`any` type is deprecated. Use `untyped` instead. (#{val[0].location.to_s})" result = Types::Bases::Any.new(location: val[0].location) @@ -2814,7 +2819,7 @@ def _reduce_161(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 922) +module_eval(<<'.,.,', 'parser.y', 923) def _reduce_162(val, _values, result) result = Types::Bases::Any.new(location: val[0].location) @@ -2822,7 +2827,7 @@ def _reduce_162(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 925) +module_eval(<<'.,.,', 'parser.y', 926) def _reduce_163(val, _values, result) result = Types::Bases::Bool.new(location: val[0].location) @@ -2830,7 +2835,7 @@ def _reduce_163(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 928) +module_eval(<<'.,.,', 'parser.y', 929) def _reduce_164(val, _values, result) result = Types::Bases::Nil.new(location: val[0].location) @@ -2838,7 +2843,7 @@ def _reduce_164(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 931) +module_eval(<<'.,.,', 'parser.y', 932) def _reduce_165(val, _values, result) result = Types::Bases::Top.new(location: val[0].location) @@ -2846,7 +2851,7 @@ def _reduce_165(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 934) +module_eval(<<'.,.,', 'parser.y', 935) def _reduce_166(val, _values, result) result = Types::Bases::Bottom.new(location: val[0].location) @@ -2854,7 +2859,7 @@ def _reduce_166(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 937) +module_eval(<<'.,.,', 'parser.y', 938) def _reduce_167(val, _values, result) result = Types::Bases::Self.new(location: val[0].location) @@ -2862,7 +2867,7 @@ def _reduce_167(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 940) +module_eval(<<'.,.,', 'parser.y', 941) def _reduce_168(val, _values, result) result = Types::Optional.new(type: Types::Bases::Self.new(location: val[0].location), location: val[0].location) @@ -2871,7 +2876,7 @@ def _reduce_168(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 944) +module_eval(<<'.,.,', 'parser.y', 945) def _reduce_169(val, _values, result) result = Types::Bases::Instance.new(location: val[0].location) @@ -2879,7 +2884,7 @@ def _reduce_169(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 947) +module_eval(<<'.,.,', 'parser.y', 948) def _reduce_170(val, _values, result) result = Types::Bases::Class.new(location: val[0].location) @@ -2887,7 +2892,7 @@ def _reduce_170(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 950) +module_eval(<<'.,.,', 'parser.y', 951) def _reduce_171(val, _values, result) result = Types::Literal.new(literal: true, location: val[0].location) @@ -2895,7 +2900,7 @@ def _reduce_171(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 953) +module_eval(<<'.,.,', 'parser.y', 954) def _reduce_172(val, _values, result) result = Types::Literal.new(literal: false, location: val[0].location) @@ -2903,7 +2908,7 @@ def _reduce_172(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 956) +module_eval(<<'.,.,', 'parser.y', 957) def _reduce_173(val, _values, result) result = Types::Literal.new(literal: val[0].value, location: val[0].location) @@ -2911,7 +2916,7 @@ def _reduce_173(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 959) +module_eval(<<'.,.,', 'parser.y', 960) def _reduce_174(val, _values, result) result = Types::Literal.new(literal: val[0].value, location: val[0].location) @@ -2919,7 +2924,7 @@ def _reduce_174(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 962) +module_eval(<<'.,.,', 'parser.y', 963) def _reduce_175(val, _values, result) result = Types::Literal.new(literal: val[0].value, location: val[0].location) @@ -2927,7 +2932,7 @@ def _reduce_175(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 965) +module_eval(<<'.,.,', 'parser.y', 966) def _reduce_176(val, _values, result) name = val[0].value args = [] @@ -2962,7 +2967,7 @@ def _reduce_176(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 995) +module_eval(<<'.,.,', 'parser.y', 996) def _reduce_177(val, _values, result) name = val[0].value args = val[2] @@ -2992,7 +2997,7 @@ def _reduce_177(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1020) +module_eval(<<'.,.,', 'parser.y', 1021) def _reduce_178(val, _values, result) location = val[0].location + val[1].location result = Types::Tuple.new(types: [], location: location) @@ -3001,7 +3006,7 @@ def _reduce_178(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1024) +module_eval(<<'.,.,', 'parser.y', 1025) def _reduce_179(val, _values, result) location = val[0].location + val[3].location types = val[1] @@ -3011,7 +3016,7 @@ def _reduce_179(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1029) +module_eval(<<'.,.,', 'parser.y', 1030) def _reduce_180(val, _values, result) type = val[1].dup type.instance_eval do @@ -3023,7 +3028,7 @@ def _reduce_180(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1036) +module_eval(<<'.,.,', 'parser.y', 1037) def _reduce_181(val, _values, result) location = val[0].location + val[3].location location = location.with_children( @@ -3035,7 +3040,7 @@ def _reduce_181(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1043) +module_eval(<<'.,.,', 'parser.y', 1044) def _reduce_182(val, _values, result) type, block = val[1].value result = Types::Proc.new(type: type, block: block, location: val[0].location + val[1].location) @@ -3044,7 +3049,7 @@ def _reduce_182(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1047) +module_eval(<<'.,.,', 'parser.y', 1048) def _reduce_183(val, _values, result) result = Types::Optional.new(type: val[0], location: val[0].location + val[1].location) @@ -3054,7 +3059,7 @@ def _reduce_183(val, _values, result) # reduce 184 omitted -module_eval(<<'.,.,', 'parser.y', 1053) +module_eval(<<'.,.,', 'parser.y', 1054) def _reduce_185(val, _values, result) result = [val[0]] @@ -3062,7 +3067,7 @@ def _reduce_185(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1056) +module_eval(<<'.,.,', 'parser.y', 1057) def _reduce_186(val, _values, result) result = val[0] + [val[2]] @@ -3070,7 +3075,7 @@ def _reduce_186(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1061) +module_eval(<<'.,.,', 'parser.y', 1062) def _reduce_187(val, _values, result) result = Types::Record.new( fields: val[1], @@ -3081,7 +3086,7 @@ def _reduce_187(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1069) +module_eval(<<'.,.,', 'parser.y', 1070) def _reduce_188(val, _values, result) result = val[0] @@ -3089,7 +3094,7 @@ def _reduce_188(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1072) +module_eval(<<'.,.,', 'parser.y', 1073) def _reduce_189(val, _values, result) result = val[0].merge!(val[2]) @@ -3097,7 +3102,7 @@ def _reduce_189(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1077) +module_eval(<<'.,.,', 'parser.y', 1078) def _reduce_190(val, _values, result) result = { val[0].value => val[2] } @@ -3105,7 +3110,7 @@ def _reduce_190(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1080) +module_eval(<<'.,.,', 'parser.y', 1081) def _reduce_191(val, _values, result) result = { val[0].value => val[2] } @@ -3113,7 +3118,7 @@ def _reduce_191(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1083) +module_eval(<<'.,.,', 'parser.y', 1084) def _reduce_192(val, _values, result) result = { val[0].value => val[2] } @@ -3121,7 +3126,7 @@ def _reduce_192(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1086) +module_eval(<<'.,.,', 'parser.y', 1087) def _reduce_193(val, _values, result) result = { val[0].value => val[1] } @@ -3129,7 +3134,7 @@ def _reduce_193(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1089) +module_eval(<<'.,.,', 'parser.y', 1090) def _reduce_194(val, _values, result) result = { val[0].value => val[2] } @@ -3137,7 +3142,7 @@ def _reduce_194(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1092) +module_eval(<<'.,.,', 'parser.y', 1093) def _reduce_195(val, _values, result) result = { val[0].value => val[2] } @@ -3145,7 +3150,7 @@ def _reduce_195(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1095) +module_eval(<<'.,.,', 'parser.y', 1096) def _reduce_196(val, _values, result) result = { val[0].value => val[2] } @@ -3155,7 +3160,7 @@ def _reduce_196(val, _values, result) # reduce 197 omitted -module_eval(<<'.,.,', 'parser.y', 1101) +module_eval(<<'.,.,', 'parser.y', 1102) def _reduce_198(val, _values, result) result = val[0] @@ -3171,7 +3176,7 @@ def _reduce_198(val, _values, result) # reduce 202 omitted -module_eval(<<'.,.,', 'parser.y', 1108) +module_eval(<<'.,.,', 'parser.y', 1109) def _reduce_203(val, _values, result) location = (val[0] || val[1] || val[2]).location + val[3].location @@ -3196,7 +3201,7 @@ def _reduce_203(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1128) +module_eval(<<'.,.,', 'parser.y', 1129) def _reduce_204(val, _values, result) result = LocatedValue.new(value: [val[0].value, nil], location: val[0].location) @@ -3204,7 +3209,7 @@ def _reduce_204(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1133) +module_eval(<<'.,.,', 'parser.y', 1134) def _reduce_205(val, _values, result) location = val[0].location + val[4].location type = Types::Function.new( @@ -3224,7 +3229,7 @@ def _reduce_205(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1148) +module_eval(<<'.,.,', 'parser.y', 1149) def _reduce_206(val, _values, result) location = val[0].location + val[1].location type = Types::Function.new( @@ -3244,7 +3249,7 @@ def _reduce_206(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1165) +module_eval(<<'.,.,', 'parser.y', 1166) def _reduce_207(val, _values, result) result = val[2] result[0].unshift(val[0]) @@ -3253,7 +3258,7 @@ def _reduce_207(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1169) +module_eval(<<'.,.,', 'parser.y', 1170) def _reduce_208(val, _values, result) result = empty_params_result result[0].unshift(val[0]) @@ -3264,7 +3269,7 @@ def _reduce_208(val, _values, result) # reduce 209 omitted -module_eval(<<'.,.,', 'parser.y', 1176) +module_eval(<<'.,.,', 'parser.y', 1177) def _reduce_210(val, _values, result) result = val[2] result[1].unshift(val[0]) @@ -3273,7 +3278,7 @@ def _reduce_210(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1180) +module_eval(<<'.,.,', 'parser.y', 1181) def _reduce_211(val, _values, result) result = empty_params_result result[1].unshift(val[0]) @@ -3284,7 +3289,7 @@ def _reduce_211(val, _values, result) # reduce 212 omitted -module_eval(<<'.,.,', 'parser.y', 1187) +module_eval(<<'.,.,', 'parser.y', 1188) def _reduce_213(val, _values, result) result = val[2] result[2] = val[0] @@ -3293,7 +3298,7 @@ def _reduce_213(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1191) +module_eval(<<'.,.,', 'parser.y', 1192) def _reduce_214(val, _values, result) result = empty_params_result result[2] = val[0] @@ -3304,7 +3309,7 @@ def _reduce_214(val, _values, result) # reduce 215 omitted -module_eval(<<'.,.,', 'parser.y', 1198) +module_eval(<<'.,.,', 'parser.y', 1199) def _reduce_216(val, _values, result) result = val[2] result[3].unshift(val[0]) @@ -3313,7 +3318,7 @@ def _reduce_216(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1202) +module_eval(<<'.,.,', 'parser.y', 1203) def _reduce_217(val, _values, result) result = empty_params_result result[3].unshift(val[0]) @@ -3324,7 +3329,7 @@ def _reduce_217(val, _values, result) # reduce 218 omitted -module_eval(<<'.,.,', 'parser.y', 1209) +module_eval(<<'.,.,', 'parser.y', 1210) def _reduce_219(val, _values, result) result = empty_params_result @@ -3332,7 +3337,7 @@ def _reduce_219(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1212) +module_eval(<<'.,.,', 'parser.y', 1213) def _reduce_220(val, _values, result) result = val[2] result[4].merge!(val[0]) @@ -3341,7 +3346,7 @@ def _reduce_220(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1216) +module_eval(<<'.,.,', 'parser.y', 1217) def _reduce_221(val, _values, result) result = empty_params_result result[4].merge!(val[0]) @@ -3350,7 +3355,7 @@ def _reduce_221(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1220) +module_eval(<<'.,.,', 'parser.y', 1221) def _reduce_222(val, _values, result) result = val[2] result[5].merge!(val[0]) @@ -3359,7 +3364,7 @@ def _reduce_222(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1224) +module_eval(<<'.,.,', 'parser.y', 1225) def _reduce_223(val, _values, result) result = empty_params_result result[5].merge!(val[0]) @@ -3368,7 +3373,7 @@ def _reduce_223(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1228) +module_eval(<<'.,.,', 'parser.y', 1229) def _reduce_224(val, _values, result) result = empty_params_result result[6] = val[0] @@ -3377,7 +3382,7 @@ def _reduce_224(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1234) +module_eval(<<'.,.,', 'parser.y', 1235) def _reduce_225(val, _values, result) loc = val[0].location if var_name = val[1] @@ -3395,7 +3400,7 @@ def _reduce_225(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1249) +module_eval(<<'.,.,', 'parser.y', 1250) def _reduce_226(val, _values, result) loc = val[0].location + val[1].location if var_name = val[2] @@ -3413,7 +3418,7 @@ def _reduce_226(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1264) +module_eval(<<'.,.,', 'parser.y', 1265) def _reduce_227(val, _values, result) loc = val[0].location + val[1].location if var_name = val[2] @@ -3431,7 +3436,7 @@ def _reduce_227(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1279) +module_eval(<<'.,.,', 'parser.y', 1280) def _reduce_228(val, _values, result) loc = val[0].location + val[1].location if var_name = val[2] @@ -3451,7 +3456,7 @@ def _reduce_228(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1296) +module_eval(<<'.,.,', 'parser.y', 1297) def _reduce_229(val, _values, result) loc = val[0].location + val[2].location if var_name = val[3] @@ -3471,7 +3476,7 @@ def _reduce_229(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1313) +module_eval(<<'.,.,', 'parser.y', 1314) def _reduce_230(val, _values, result) loc = val[0].location + val[1].location if var_name = val[2] @@ -3500,8 +3505,10 @@ def _reduce_230(val, _values, result) # reduce 235 omitted -module_eval(<<'.,.,', 'parser.y', 1332) - def _reduce_236(val, _values, result) +# reduce 236 omitted + +module_eval(<<'.,.,', 'parser.y', 1333) + def _reduce_237(val, _values, result) namespace = val[0]&.value || Namespace.empty name = val[1].value.to_sym type_name = TypeName.new(namespace: namespace, name: name) @@ -3512,14 +3519,14 @@ def _reduce_236(val, _values, result) end .,., -# reduce 237 omitted - # reduce 238 omitted # reduce 239 omitted -module_eval(<<'.,.,', 'parser.y', 1344) - def _reduce_240(val, _values, result) +# reduce 240 omitted + +module_eval(<<'.,.,', 'parser.y', 1345) + def _reduce_241(val, _values, result) namespace = val[0]&.value || Namespace.empty name = val[1].value.to_sym type_name = TypeName.new(namespace: namespace, name: name) @@ -3530,8 +3537,8 @@ def _reduce_240(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1353) - def _reduce_241(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1354) + def _reduce_242(val, _values, result) namespace = val[0]&.value || Namespace.empty name = val[1].value.to_sym type_name = TypeName.new(namespace: namespace, name: name) @@ -3542,8 +3549,8 @@ def _reduce_241(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1362) - def _reduce_242(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1363) + def _reduce_243(val, _values, result) namespace = val[0]&.value || Namespace.empty name = val[1].value.to_sym type_name = TypeName.new(namespace: namespace, name: name) @@ -3554,24 +3561,24 @@ def _reduce_242(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1372) - def _reduce_243(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1373) + def _reduce_244(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 1375) - def _reduce_244(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1376) + def _reduce_245(val, _values, result) result = LocatedValue.new(value: Namespace.root, location: val[0].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 1378) - def _reduce_245(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1379) + def _reduce_246(val, _values, result) namespace = Namespace.parse(val[1].value).absolute! result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location) @@ -3579,8 +3586,8 @@ def _reduce_245(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1382) - def _reduce_246(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1383) + def _reduce_247(val, _values, result) namespace = Namespace.parse(val[0].value) result = LocatedValue.new(value: namespace, location: val[0].location) @@ -3588,10 +3595,10 @@ def _reduce_246(val, _values, result) end .,., -# reduce 247 omitted - # reduce 248 omitted +# reduce 249 omitted + def _reduce_none(val, _values, result) val[0] end diff --git a/lib/rbs/parser.y b/lib/rbs/parser.y index 85e0e4c69..9aa3bac31 100644 --- a/lib/rbs/parser.y +++ b/lib/rbs/parser.y @@ -12,6 +12,7 @@ class RBS::Parser kPREPEND kEXTENSION kINCOMPATIBLE type_TYPE type_SIGNATURE type_METHODTYPE tEOF kOUT kIN kUNCHECKED kOVERLOAD + kUNDERSCORE prechigh nonassoc kQUESTION @@ -1326,7 +1327,7 @@ rule } var_name_opt: - | tLIDENT | tINTERFACEIDENT | tQUOTEDIDENT | tUNDERSCOREIDENT + | tLIDENT | tINTERFACEIDENT | tQUOTEDIDENT | tUNDERSCOREIDENT | kUNDERSCORE qualified_name: namespace simple_name { @@ -1721,6 +1722,8 @@ def next_token new_token(:tLIDENT) when input.scan(/_[a-z]\w*\b/) new_token(:tUNDERSCOREIDENT) + when input.scan(/_/) + new_token(:kUNDERSCORE) when input.scan(/"(\\"|[^"])*"/) s = input.matched.yield_self {|s| s[1, s.length - 2] } .gsub(DBL_QUOTE_STR_ESCAPE_SEQUENCES_RE) do |match| diff --git a/test/rbs/method_type_parsing_test.rb b/test/rbs/method_type_parsing_test.rb index d36f55a08..11b1e8557 100644 --- a/test/rbs/method_type_parsing_test.rb +++ b/test/rbs/method_type_parsing_test.rb @@ -17,6 +17,12 @@ def test_method_type Parser.parse_method_type("(?foo?: Integer, ?bar!: String)->void") end + def test_method_param + Parser.parse_method_type("(untyped _)->void").yield_self do |type| + assert_equal "(untyped _) -> void", type.to_s + end + end + def test_method_type_eof_re Parser.parse_method_type("()->void~ Integer", eof_re: /~/).yield_self do |type| assert_equal "() -> void", type.to_s