From cc4f0742609bfb5068cee8306a3fac1687db6108 Mon Sep 17 00:00:00 2001 From: Soutaro Matsumoto Date: Thu, 17 Dec 2020 23:22:14 +0900 Subject: [PATCH] Allow record attributes be quoted --- lib/rbs/parser.rb | 980 +++++++++++++++++----------------- lib/rbs/parser.y | 6 + test/rbs/type_parsing_test.rb | 5 + 3 files changed, 514 insertions(+), 477 deletions(-) diff --git a/lib/rbs/parser.rb b/lib/rbs/parser.rb index 655de9070..8daeba490 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', 1071) +module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1077) Types = RBS::Types Namespace = RBS::Namespace @@ -401,74 +401,78 @@ def initialize(message, subject:, location:) ##### State transition tables begin ### clist = [ -'354,355,33,356,178,112,5,33,33,341,177,398,49,33,33,353,37,339,242,397', -'40,41,55,56,57,58,59,60,61,62,358,33,63,54,64,65,66,77,67,68,69,83,33', -'32,53,349,343,344,32,32,347,345,348,306,32,32,33,346,82,70,71,72,74', -'76,75,342,351,352,73,78,80,125,32,123,42,84,85,81,86,354,355,33,356', -'32,94,95,96,97,43,49,48,33,33,33,353,203,203,32,124,40,41,55,56,57,58', -'59,60,61,62,79,33,63,54,64,65,66,77,67,68,69,83,53,32,159,349,343,344', -'53,53,347,345,348,32,32,32,183,346,82,70,71,72,74,76,75,342,351,352', -'73,78,80,219,32,160,281,84,85,81,86,354,355,124,356,102,94,95,96,97', -'99,100,39,101,40,41,353,119,220,329,364,282,163,55,56,57,58,59,60,61', -'62,79,401,63,54,64,65,66,77,67,68,69,83,39,124,124,349,343,344,402,403', -'347,345,348,325,40,41,124,346,82,70,71,72,74,76,75,342,351,352,73,78', -'80,164,321,124,124,84,85,81,86,354,355,165,356,166,94,95,96,97,2,3,4', -'40,41,167,353,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,169,63,54', -'64,65,66,77,67,68,69,83,40,41,112,349,343,344,40,41,347,345,348,40,41', -'40,41,346,82,70,71,72,74,76,75,342,351,352,73,78,80,354,355,176,356', -'84,85,81,86,-4,179,-243,182,33,41,116,353,-243,40,41,277,278,112,55', -'56,57,58,59,60,61,62,79,185,63,54,64,65,66,77,67,68,69,83,284,285,178', -'349,343,344,376,377,347,345,348,32,40,41,186,346,82,70,71,72,74,76,75', -'342,351,352,73,78,80,354,355,-108,356,84,85,81,86,40,41,392,393,-109', -'39,-110,353,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,-111,63,54', -'64,65,66,77,67,68,69,83,40,41,-112,349,343,344,40,41,347,345,348,40', -'41,40,41,346,82,70,71,72,74,76,75,342,351,352,73,78,80,-113,-114,-115', -'-116,84,85,81,86,354,355,-117,356,-118,94,95,96,97,48,-133,191,192,193', -'194,353,195,196,204,205,42,221,55,56,57,58,59,60,61,62,79,235,63,54', -'64,65,66,77,67,68,69,83,245,246,248,349,343,344,250,251,347,345,348', -'42,119,254,254,346,82,70,71,72,74,76,75,342,351,352,73,78,80,354,355', -'254,356,84,85,81,86,260,42,221,263,265,269,271,353,273,274,312,314,269', -'316,55,56,57,58,59,60,61,62,79,273,63,54,64,65,66,77,67,68,69,83,326', -'327,328,349,343,344,332,332,347,345,348,332,362,365,372,346,82,70,71', -'72,74,76,75,342,351,352,73,78,80,373,374,375,378,84,85,81,86,33,380', -'383,94,95,96,97,383,383,396,22,23,21,399,26,-221,25,400,30,407,130,131', -'132,133,134,135,136,137,141,16,138,129,139,140,66,77,67,68,69,83,408', -'32,409,411,416,28,417,155,418,156,158,419,416,,,,82,70,71,72,74,76,75', -',,,73,78,80,,,,,84,85,81,86,33,,,94,95,96,97,,,,22,23,21,,26,,25,,30', -',130,131,132,133,134,135,136,137,141,16,138,129,139,140,66,77,67,68', -'69,83,,32,,,,28,,,,,,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85', -'81,86,33,,,94,95,96,97,,,,22,23,21,,26,-221,25,,30,,130,131,132,133', -'134,135,136,137,141,16,138,129,139,140,66,77,67,68,69,83,,32,,,,28,', -'155,,156,158,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33', -',,94,95,96,97,,,,22,23,21,,26,-221,25,,30,,130,131,132,133,134,135,136', -'137,141,16,138,129,139,140,66,77,67,68,69,83,,32,,,,28,,155,,156,158', -',,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,94,95,96', -'97,,,,22,23,21,,26,-221,25,,30,,130,131,132,133,134,135,136,137,141', -'16,138,129,139,140,66,77,67,68,69,83,,32,,,,28,,227,,,158,,,,,,82,70', -'71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,94,95,96,97,,,,22,23', -'21,,26,-221,25,,30,,130,131,132,133,134,135,136,137,141,16,138,129,139', -'140,66,77,67,68,69,83,,32,,,,28,,155,,156,158,,,,,,82,70,71,72,74,76', -'75,,,,73,78,80,,,,,84,85,81,86,33,,,94,95,96,97,,,,22,23,21,,26,-221', -'25,,30,,130,131,132,133,134,135,136,137,141,16,138,129,139,140,66,77', -'67,68,69,83,,32,,,,28,172,227,,175,158,173,,,,,82,70,71,72,74,76,75', -',,,73,78,80,,,174,,84,85,81,86,94,95,96,97,,171,,90,89,91,,,,,,,,55', -'56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,,,,,,188,', -'189,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,94,95,96,97', -',,,90,89,91,,,,,,40,41,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77', -'67,68,69,83,190,,,,,,,,,,,,,,,,82,70,71,72,74,76,75,188,,189,73,78,80', -'94,95,96,97,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61,62,79,,63,54,64', -'65,66,77,67,68,69,83,,40,41,,,,,227,,,158,,,,,,82,70,71,72,74,76,75', -'190,,,73,78,80,94,95,96,97,84,85,81,86,,,,,,,,,,55,56,57,58,59,60,61', -'62,79,,63,54,64,65,66,77,67,68,69,83,188,,189,,,,,227,,,158,,,,,,82', -'70,71,72,74,76,75,188,,189,73,78,80,94,95,96,97,84,85,81,86,,,,,,,,40', -'41,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,190,40', -'41,188,,189,188,,189,,,,,,,,82,70,71,72,74,76,75,190,,,73,78,80,,,,', -'84,85,81,86,,,,,,,,,,,40,41,,40,41,-243,,33,,116,,-243,,,301,302,112', -'-243,,33,,116,190,-243,,190,301,302,112,,,,-243,,33,303,116,,-243,,', -'301,302,112,298,297,,303,32,,,,,,,,298,297,,-243,32,33,303,116,289,-243', -',,301,302,112,298,297,,,32,313,,,,,,,,,,,,,303,,317,,,,,,,298,297,,33', -'32,,,,,,,,,22,23,21,,26,,25,363,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', +'360,361,33,362,182,114,5,33,33,347,181,404,49,33,33,359,37,345,248,403', +'40,41,55,56,57,58,59,60,61,62,364,33,63,54,64,65,66,77,67,68,69,83,33', +'32,53,355,349,350,32,32,353,351,354,312,32,32,33,352,82,70,71,72,74', +'76,75,348,357,358,73,78,80,127,32,125,42,84,85,81,86,360,361,33,362', +'32,96,97,98,99,43,49,48,33,33,33,359,207,207,32,126,40,41,55,56,57,58', +'59,60,61,62,79,33,63,54,64,65,66,77,67,68,69,83,53,32,161,355,349,350', +'53,53,353,351,354,32,32,32,187,352,82,70,71,72,74,76,75,348,357,358', +'73,78,80,225,32,162,287,84,85,81,86,360,361,126,362,104,96,97,98,99', +'101,102,39,103,40,41,359,121,226,335,370,288,165,55,56,57,58,59,60,61', +'62,79,407,63,54,64,65,66,77,67,68,69,83,39,126,126,355,349,350,408,409', +'353,351,354,331,40,41,126,352,82,70,71,72,74,76,75,348,357,358,73,78', +'80,166,327,126,126,84,85,81,86,360,361,167,362,168,96,97,98,99,2,3,4', +'40,41,169,359,40,41,40,41,40,41,55,56,57,58,59,60,61,62,79,171,63,54', +'64,65,66,77,67,68,69,83,40,41,172,355,349,350,40,41,353,351,354,40,41', +'40,41,352,82,70,71,72,74,76,75,348,357,358,73,78,80,360,361,173,362', +'84,85,81,86,-4,114,-245,180,33,183,118,359,-245,40,41,40,41,114,55,56', +'57,58,59,60,61,62,79,186,63,54,64,65,66,77,67,68,69,83,40,41,41,355', +'349,350,283,284,353,351,354,32,290,291,189,352,82,70,71,72,74,76,75', +'348,357,358,73,78,80,360,361,182,362,84,85,81,86,382,383,40,41,190,39', +'-108,359,40,41,398,399,40,41,55,56,57,58,59,60,61,62,79,-109,63,54,64', +'65,66,77,67,68,69,83,40,41,-110,355,349,350,40,41,353,351,354,40,41', +'40,41,352,82,70,71,72,74,76,75,348,357,358,73,78,80,40,41,40,41,84,85', +'81,86,360,361,-111,362,-112,96,97,98,99,-113,-114,-115,-116,-117,-118', +'359,48,-133,195,196,197,198,55,56,57,58,59,60,61,62,79,199,63,54,64', +'65,66,77,67,68,69,83,200,208,209,355,349,350,42,227,353,351,354,241', +'251,252,254,352,82,70,71,72,74,76,75,348,357,358,73,78,80,360,361,256', +'362,84,85,81,86,257,42,121,260,260,260,266,359,42,227,269,271,275,277', +'55,56,57,58,59,60,61,62,79,279,63,54,64,65,66,77,67,68,69,83,280,318', +'320,355,349,350,275,322,353,351,354,279,332,333,334,352,82,70,71,72', +'74,76,75,348,357,358,73,78,80,338,338,338,368,84,85,81,86,33,371,378', +'96,97,98,99,379,380,381,22,23,21,384,26,-223,25,386,30,389,132,133,134', +'135,136,137,138,139,143,16,140,131,141,142,66,77,67,68,69,83,389,32', +'389,402,405,28,406,157,413,158,160,414,415,417,422,423,82,70,71,72,74', +'76,75,424,425,422,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23', +'21,,26,,25,,30,,132,133,134,135,136,137,138,139,143,16,140,131,141,142', +'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,-223,25,,30,,132', +'133,134,135,136,137,138,139,143,16,140,131,141,142,66,77,67,68,69,83', +',32,,,,28,,157,,158,160,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84', +'85,81,86,33,,,96,97,98,99,,,,22,23,21,,26,-223,25,,30,,132,133,134,135', +'136,137,138,139,143,16,140,131,141,142,66,77,67,68,69,83,,32,,,,28,', +'157,,158,160,,,,,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33', +',,96,97,98,99,,,,22,23,21,,26,-223,25,,30,,132,133,134,135,136,137,138', +'139,143,16,140,131,141,142,66,77,67,68,69,83,,32,,,,28,,233,,,160,,', +',,,82,70,71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99', +',,,22,23,21,,26,-223,25,,30,,132,133,134,135,136,137,138,139,143,16', +'140,131,141,142,66,77,67,68,69,83,,32,,,,28,,157,,158,160,,,,,,82,70', +'71,72,74,76,75,,,,73,78,80,,,,,84,85,81,86,33,,,96,97,98,99,,,,22,23', +'21,,26,-223,25,,30,,132,133,134,135,136,137,138,139,143,16,140,131,141', +'142,66,77,67,68,69,83,,32,,,,28,176,233,,179,160,177,,,,,82,70,71,72', +'74,76,75,,,,73,78,80,,,178,,84,85,81,86,96,97,98,99,,175,,90,89,91,', +',,,,,,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,,,,', +',,,,192,,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,192,,193,,,,,233,,,160,,,,,,82', +'70,71,72,74,76,75,192,,193,73,78,80,96,97,98,99,84,85,81,86,,,,,,,,40', +'41,55,56,57,58,59,60,61,62,79,,63,54,64,65,66,77,67,68,69,83,194,40', +'41,,,,,233,,,160,,,,,,82,70,71,72,74,76,75,194,,,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,,193,192,,193,192,,193,,,,,,,,82,70,71,72,74,76,75,,,,73', +'78,80,,,,,84,85,81,86,,,,,,,,40,41,,40,41,,40,41,-245,,33,,118,,-245', +',,307,308,114,,,194,,,194,,,194,,-245,,33,,118,,-245,,309,307,308,114', +',,,,,304,303,,,32,-245,,33,,118,,-245,,309,307,308,114,,,,295,,304,303', +',,32,-245,,33,,118,,-245,,309,307,308,114,,,,319,,304,303,,,32,,,,,', +',,,309,,,,,,,323,,304,303,,33,32,,,,,,,,,22,23,21,,26,,25,369,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', @@ -508,11 +512,10 @@ def initialize(message, subject:, location:) '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,172,,,175,,173,,32,325,,,28,,,,,,,,,,,,,,174,,321,322,318,319', -'320,,,,323,171' ] - racc_action_table = arr = ::Array.new(2971, nil) +'28,22,23,21,,26,,25,,30,,8,12,19,20,9,10,13,14,15,16,17,18,11,27,176', +',,179,,177,,32,331,,,28,,,,,,,,,,,,,,178,,327,328,324,325,326,,,,329', +'175' ] + racc_action_table = arr = ::Array.new(3055, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -522,137 +525,140 @@ def initialize(message, subject:, location:) end clist = [ -'325,325,48,325,115,275,1,175,211,324,115,383,28,212,213,325,5,324,213', -'383,44,44,325,325,325,325,325,325,325,325,325,214,325,325,325,325,325', -'325,325,325,325,325,242,48,28,325,325,325,175,211,325,325,325,275,212', -'213,265,325,325,325,325,325,325,325,325,325,325,325,325,325,325,47,214', -'46,7,325,325,325,325,333,333,271,333,242,333,333,333,333,24,118,27,273', -'321,322,333,159,204,265,46,47,47,333,333,333,333,333,333,333,333,333', -'323,333,333,333,333,333,333,333,333,333,333,118,271,51,333,333,333,159', -'204,333,333,333,273,321,322,122,333,333,333,333,333,333,333,333,333', -'333,333,333,333,333,181,323,51,266,333,333,333,333,334,334,122,334,32', -'334,334,334,334,31,31,35,31,6,6,334,36,181,305,331,266,87,334,334,334', -'334,334,334,334,334,334,388,334,334,334,334,334,334,334,334,334,334', -'6,305,331,334,334,334,389,390,334,334,334,311,168,168,388,334,334,334', -'334,334,334,334,334,334,334,334,334,334,334,88,311,389,390,334,334,334', -'334,335,335,89,335,90,335,335,335,335,0,0,0,184,184,91,335,207,207,208', -'208,209,209,335,335,335,335,335,335,335,335,335,93,335,335,335,335,335', -'335,335,335,335,335,210,210,112,335,335,335,216,216,335,335,335,217', -'217,218,218,335,335,335,335,335,335,335,335,335,335,335,335,335,335', -'359,359,114,359,335,335,335,335,34,116,34,119,34,120,34,359,34,261,261', -'263,263,34,359,359,359,359,359,359,359,359,359,126,359,359,359,359,359', -'359,359,359,359,359,268,268,127,359,359,359,350,350,359,359,359,34,360', -'360,128,359,359,359,359,359,359,359,359,359,359,359,359,359,359,378', -'378,129,378,359,359,359,359,361,361,375,375,130,34,131,378,381,381,384', -'384,386,386,378,378,378,378,378,378,378,378,378,132,378,378,378,378', -'378,378,378,378,378,378,395,395,133,378,378,378,410,410,378,378,378', -'412,412,413,413,378,378,378,378,378,378,378,378,378,378,378,378,378', -'378,134,135,136,137,378,378,378,378,391,391,138,391,139,391,391,391', -'391,140,141,144,145,147,149,391,152,153,160,161,162,186,391,391,391', -'391,391,391,391,391,391,202,391,391,391,391,391,391,391,391,391,391', -'215,220,225,391,391,391,236,237,391,391,391,238,239,240,241,391,391', -'391,391,391,391,391,391,391,391,391,391,391,391,418,418,243,418,391', -'391,391,391,244,247,250,252,253,254,255,418,256,258,276,280,282,283', -'418,418,418,418,418,418,418,418,418,287,418,418,418,418,418,418,418', -'418,418,418,301,302,303,418,418,418,318,319,418,418,418,320,328,332', -'336,418,418,418,418,418,418,418,418,418,418,418,418,418,418,337,338', -'340,358,418,418,418,418,49,362,367,49,49,49,49,369,371,382,49,49,49', -'385,49,49,49,387,49,392,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49', -'49,49,49,49,49,393,49,394,398,404,49,406,49,409,49,49,415,419,,,,49', -'49,49,49,49,49,49,,,,49,49,49,,,,,49,49,49,49,155,,,155,155,155,155', -',,,155,155,155,,155,,155,,155,,155,155,155,155,155,155,155,155,155,155', -'155,155,155,155,155,155,155,155,155,155,,155,,,,155,,,,,,,,,,,155,155', -'155,155,155,155,155,,,,155,155,155,,,,,155,155,155,155,192,,,192,192', -'192,192,,,,192,192,192,,192,192,192,,192,,192,192,192,192,192,192,192', -'192,192,192,192,192,192,192,192,192,192,192,192,192,,192,,,,192,,192', -',192,192,,,,,,192,192,192,192,192,192,192,,,,192,192,192,,,,,192,192', -'192,192,193,,,193,193,193,193,,,,193,193,193,,193,193,193,,193,,193', -'193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193', -'193,193,,193,,,,193,,193,,193,193,,,,,,193,193,193,193,193,193,193,', -',,193,193,193,,,,,193,193,193,193,194,,,194,194,194,194,,,,194,194,194', -',194,194,194,,194,,194,194,194,194,194,194,194,194,194,194,194,194,194', -'194,194,194,194,194,194,194,,194,,,,194,,194,,,194,,,,,,194,194,194', -'194,194,194,194,,,,194,194,194,,,,,194,194,194,194,203,,,203,203,203', -'203,,,,203,203,203,,203,203,203,,203,,203,203,203,203,203,203,203,203', -'203,203,203,203,203,203,203,203,203,203,203,203,,203,,,,203,,203,,203', -'203,,,,,,203,203,203,203,203,203,203,,,,203,203,203,,,,,203,203,203', -'203,248,,,248,248,248,248,,,,248,248,248,,248,248,248,,248,,248,248', -'248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248', -'248,,248,,,,248,113,248,,113,248,113,,,,,248,248,248,248,248,248,248', -',,,248,248,248,,,113,,248,248,248,248,30,30,30,30,,113,,30,30,30,,,', -',,,,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,30,30,30,30,30,,,,,,', -',,142,,142,,,,,,30,30,30,30,30,30,30,,,,30,30,30,,,,,30,30,30,30,164', -'164,164,164,,,,164,164,164,,,,,,142,142,164,164,164,164,164,164,164', -'164,164,,164,164,164,164,164,164,164,164,164,164,142,,,,,,,,,,,,,,,', -'164,164,164,164,164,164,164,197,,197,164,164,164,195,195,195,195,164', -'164,164,164,,,,,,,,,,195,195,195,195,195,195,195,195,195,,195,195,195', -'195,195,195,195,195,195,195,,197,197,,,,,195,,,195,,,,,,195,195,195', -'195,195,195,195,197,,,195,195,195,196,196,196,196,195,195,195,195,,', -',,,,,,,196,196,196,196,196,196,196,196,196,,196,196,196,196,196,196', -'196,196,196,196,199,,199,,,,,196,,,196,,,,,,196,196,196,196,196,196', -'196,200,,200,196,196,196,227,227,227,227,196,196,196,196,,,,,,,,199', -'199,227,227,227,227,227,227,227,227,227,,227,227,227,227,227,227,227', -'227,227,227,199,200,200,201,,201,231,,231,,,,,,,,227,227,227,227,227', -'227,227,200,,,227,227,227,,,,,227,227,227,227,,,,,,,,,,,201,201,,231', -'231,272,,272,,272,,272,,,272,272,272,279,,279,,279,201,279,,231,279', -'279,279,,,,286,,286,272,286,,286,,,286,286,286,272,272,,279,272,,,,', -',,,279,279,,330,279,330,286,330,272,330,,,330,330,330,286,286,,,286', -'279,,,,,,,,,,,,,330,,286,,,,,,,330,330,,2,330,,,,,,,,,2,2,2,,2,,2,330', -'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,,,124,,,,,92,,,,92', -'124,124,124,,124,,124,,124,,124,124,124,124,124,124,124,124,124,124', -'124,124,124,124,,,156,,,,,124,,,,124,156,156,156,,156,,156,,156,,156', -'156,156,156,156,156,156,156,156,156,156,156,156,156,,,157,,,,,156,,', -',156,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,,,165,,,,,158', -',,,158,165,165,165,,165,,165,,165,,165,165,165,165,165,165,165,165,165', -'165,165,165,165,165,,,166,,,,,165,,,,165,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,,,169,,,,,167,,,,167,169,169,169,,169,,169,,169', -',169,169,169,169,169,169,169,169,169,169,169,169,169,169,,,176,,,,,169', -',,,169,176,176,176,,176,,176,,176,,176,176,176,176,176,176,176,176,176', -'176,176,176,176,176,,,177,,,,,176,,,,176,177,177,177,,177,,177,,177', -',177,177,177,177,177,177,177,177,177,177,177,177,177,177,,,179,,,,,177', -',,,177,179,179,179,,179,,179,,179,,179,179,179,179,179,179,179,179,179', -'179,179,179,179,179,,,198,,,,,179,,,,179,198,198,198,,198,,198,,198', -',198,198,198,198,198,198,198,198,198,198,198,198,198,198,,,205,,,,,198', -',,,198,205,205,205,,205,,205,,205,,205,205,205,205,205,205,205,205,205', -'205,205,205,205,205,,,221,,,,,205,,,,205,221,221,221,,221,,221,,221', -',221,221,221,221,221,221,221,221,221,221,221,221,221,221,,,245,,,,,221', -',,,221,245,245,245,,245,,245,,245,,245,245,245,245,245,245,245,245,245', -'245,245,245,245,245,,,274,,,,,245,,,,245,274,274,274,,274,,274,,274', -',274,274,274,274,274,274,274,274,274,274,274,274,274,274,,,314,,,,,274', -',,,274,314,314,314,,314,,314,,314,,314,314,314,314,314,314,314,314,314', -'314,314,314,314,314,,,326,,,,,314,,,,314,326,326,326,,326,,326,,326', -',326,326,326,326,326,326,326,326,326,326,326,326,326,326,,,327,,,,,326', -',,,326,327,327,327,,327,,327,,327,,327,327,327,327,327,327,327,327,327', -'327,327,327,327,327,,,366,,,,,327,,,,327,366,366,366,,366,,366,,366', -',366,366,366,366,366,366,366,366,366,366,366,366,366,366,,,368,,,,,366', -',,,366,368,368,368,,368,,368,,368,,368,368,368,368,368,368,368,368,368', -'368,368,368,368,368,,,370,,,,,368,,,,368,370,370,370,,370,,370,,370', -',370,370,370,370,370,370,370,370,370,370,370,370,370,370,,,372,,,,,370', -',,,370,372,372,372,,372,,372,,372,,372,372,372,372,372,372,372,372,372', -'372,372,372,372,372,,,373,,,,,372,,,,372,373,373,373,,373,,373,,373', -',373,373,373,373,373,373,373,373,373,373,373,373,373,373,,,374,,,,,373', -',,,373,374,374,374,,374,,374,,374,,374,374,374,374,374,374,374,374,374', -'374,374,374,374,374,,,380,,,,,374,,,,374,380,380,380,,380,,380,,380', -',380,380,380,380,380,380,380,380,380,380,380,380,380,380,,,396,,,,,380', -',,,380,396,396,396,,396,,396,,396,,396,396,396,396,396,396,396,396,396', -'396,396,396,396,396,,,399,,,,,396,,,,396,399,399,399,,399,,399,,399', -',399,399,399,399,399,399,399,399,399,399,399,399,399,399,,,400,,,,,399', -',,,399,400,400,400,,400,,400,,400,,400,400,400,400,400,400,400,400,400', -'400,400,400,400,400,288,,,288,,288,,400,288,,,400,,,,,,,,,,,,,,288,', -'288,288,288,288,288,,,,288,288' ] - racc_action_check = arr = ::Array.new(2971, nil) +'331,331,48,331,117,281,1,179,217,330,117,389,28,218,219,331,5,330,219', +'389,44,44,331,331,331,331,331,331,331,331,331,220,331,331,331,331,331', +'331,331,331,331,331,248,48,28,331,331,331,179,217,331,331,331,281,218', +'219,271,331,331,331,331,331,331,331,331,331,331,331,331,331,331,47,220', +'46,7,331,331,331,331,339,339,277,339,248,339,339,339,339,24,120,27,279', +'327,328,339,161,208,271,46,47,47,339,339,339,339,339,339,339,339,339', +'329,339,339,339,339,339,339,339,339,339,339,120,277,51,339,339,339,161', +'208,339,339,339,279,327,328,124,339,339,339,339,339,339,339,339,339', +'339,339,339,339,339,185,329,51,272,339,339,339,339,340,340,124,340,32', +'340,340,340,340,31,31,35,31,6,6,340,36,185,311,337,272,87,340,340,340', +'340,340,340,340,340,340,394,340,340,340,340,340,340,340,340,340,340', +'6,311,337,340,340,340,395,396,340,340,340,317,170,170,394,340,340,340', +'340,340,340,340,340,340,340,340,340,340,340,88,317,395,396,340,340,340', +'340,341,341,89,341,90,341,341,341,341,0,0,0,188,188,91,341,211,211,212', +'212,213,213,341,341,341,341,341,341,341,341,341,93,341,341,341,341,341', +'341,341,341,341,341,214,214,94,341,341,341,215,215,341,341,341,216,216', +'222,222,341,341,341,341,341,341,341,341,341,341,341,341,341,341,365', +'365,95,365,341,341,341,341,34,114,34,116,34,118,34,365,34,223,223,224', +'224,34,365,365,365,365,365,365,365,365,365,121,365,365,365,365,365,365', +'365,365,365,365,267,267,122,365,365,365,269,269,365,365,365,34,274,274', +'128,365,365,365,365,365,365,365,365,365,365,365,365,365,365,384,384', +'129,384,365,365,365,365,356,356,366,366,130,34,131,384,367,367,381,381', +'387,387,384,384,384,384,384,384,384,384,384,132,384,384,384,384,384', +'384,384,384,384,384,390,390,133,384,384,384,392,392,384,384,384,401', +'401,416,416,384,384,384,384,384,384,384,384,384,384,384,384,384,384', +'418,418,419,419,384,384,384,384,397,397,134,397,135,397,397,397,397', +'136,137,138,139,140,141,397,142,143,146,147,149,151,397,397,397,397', +'397,397,397,397,397,154,397,397,397,397,397,397,397,397,397,397,155', +'162,163,397,397,397,164,190,397,397,397,206,221,226,231,397,397,397', +'397,397,397,397,397,397,397,397,397,397,397,424,424,242,424,397,397', +'397,397,243,244,245,246,247,249,250,424,253,256,258,259,260,261,424', +'424,424,424,424,424,424,424,424,262,424,424,424,424,424,424,424,424', +'424,424,264,282,286,424,424,424,288,289,424,424,424,293,307,308,309', +'424,424,424,424,424,424,424,424,424,424,424,424,424,424,324,325,326', +'334,424,424,424,424,49,338,342,49,49,49,49,343,344,346,49,49,49,364', +'49,49,49,368,49,373,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49', +'49,49,49,49,375,49,377,388,391,49,393,49,398,49,49,399,400,404,410,412', +'49,49,49,49,49,49,49,415,421,425,49,49,49,,,,,49,49,49,49,157,,,157', +'157,157,157,,,,157,157,157,,157,,157,,157,,157,157,157,157,157,157,157', +'157,157,157,157,157,157,157,157,157,157,157,157,157,,157,,,,157,,,,', +',,,,,,157,157,157,157,157,157,157,,,,157,157,157,,,,,157,157,157,157', +'196,,,196,196,196,196,,,,196,196,196,,196,196,196,,196,,196,196,196', +'196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196', +',196,,,,196,,196,,196,196,,,,,,196,196,196,196,196,196,196,,,,196,196', +'196,,,,,196,196,196,196,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,207,', +',207,207,207,207,,,,207,207,207,,207,207,207,,207,,207,207,207,207,207', +'207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,,207,,,', +'207,,207,,207,207,,,,,,207,207,207,207,207,207,207,,,,207,207,207,,', +',,207,207,207,207,254,,,254,254,254,254,,,,254,254,254,,254,254,254', +',254,,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254', +'254,254,254,254,,254,,,,254,115,254,,115,254,115,,,,,254,254,254,254', +'254,254,254,,,,254,254,254,,,115,,254,254,254,254,30,30,30,30,,115,', +'30,30,30,,,,,,,,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,30,30,30', +'30,30,,,,,,,,,144,,144,,,,,,30,30,30,30,30,30,30,,30,30,30,30,30,,,', +',30,30,30,30,166,166,166,166,,,,166,166,166,,,,,,144,144,166,166,166', +'166,166,166,166,166,166,,166,166,166,166,166,166,166,166,166,166,144', +',,,,,,,,,,,,,,,166,166,166,166,166,166,166,,166,166,166,166,166,199', +'199,199,199,166,166,166,166,,,,,,,,,,199,199,199,199,199,199,199,199', +'199,,199,199,199,199,199,199,199,199,199,199,201,,201,,,,,199,,,199', +',,,,,199,199,199,199,199,199,199,203,,203,199,199,199,200,200,200,200', +'199,199,199,199,,,,,,,,201,201,200,200,200,200,200,200,200,200,200,', +'200,200,200,200,200,200,200,200,200,200,201,203,203,,,,,200,,,200,,', +',,,200,200,200,200,200,200,200,203,,,200,200,200,233,233,233,233,200', +'200,200,200,,,,,,,,,,233,233,233,233,233,233,233,233,233,,233,233,233', +'233,233,233,233,233,233,233,204,,204,205,,205,237,,237,,,,,,,,233,233', +'233,233,233,233,233,,,,233,233,233,,,,,233,233,233,233,,,,,,,,204,204', +',205,205,,237,237,278,,278,,278,,278,,,278,278,278,,,204,,,205,,,237', +',285,,285,,285,,285,,278,285,285,285,,,,,,278,278,,,278,292,,292,,292', +',292,,285,292,292,292,,,,278,,285,285,,,285,336,,336,,336,,336,,292', +'336,336,336,,,,285,,292,292,,,292,,,,,,,,,336,,,,,,,292,,336,336,,2', +'336,,,,,,,,,2,2,2,,2,,2,336,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,,,126,,,,,92,,,,92,126,126,126,,126,,126,,126,,126,126,126', +'126,126,126,126,126,126,126,126,126,126,126,,,158,,,,,126,,,,126,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,,,160,,,,,159,,,,159', +'160,160,160,,160,,160,,160,,160,160,160,160,160,160,160,160,160,160', +'160,160,160,160,,,167,,,,,160,,,,160,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,,,169,,,,,168,,,,168,169,169,169,,169,,169,,169', +',169,169,169,169,169,169,169,169,169,169,169,169,169,169,,,171,,,,,169', +',,,169,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,,,173,,,,,172', +',,,172,173,173,173,,173,,173,,173,,173,173,173,173,173,173,173,173,173', +'173,173,173,173,173,,,180,,,,,173,,,,173,180,180,180,,180,,180,,180', +',180,180,180,180,180,180,180,180,180,180,180,180,180,180,,,181,,,,,180', +',,,180,181,181,181,,181,,181,,181,,181,181,181,181,181,181,181,181,181', +'181,181,181,181,181,,,183,,,,,181,,,,181,183,183,183,,183,,183,,183', +',183,183,183,183,183,183,183,183,183,183,183,183,183,183,,,202,,,,,183', +',,,183,202,202,202,,202,,202,,202,,202,202,202,202,202,202,202,202,202', +'202,202,202,202,202,,,209,,,,,202,,,,202,209,209,209,,209,,209,,209', +',209,209,209,209,209,209,209,209,209,209,209,209,209,209,,,227,,,,,209', +',,,209,227,227,227,,227,,227,,227,,227,227,227,227,227,227,227,227,227', +'227,227,227,227,227,,,251,,,,,227,,,,227,251,251,251,,251,,251,,251', +',251,251,251,251,251,251,251,251,251,251,251,251,251,251,,,280,,,,,251', +',,,251,280,280,280,,280,,280,,280,,280,280,280,280,280,280,280,280,280', +'280,280,280,280,280,,,320,,,,,280,,,,280,320,320,320,,320,,320,,320', +',320,320,320,320,320,320,320,320,320,320,320,320,320,320,,,332,,,,,320', +',,,320,332,332,332,,332,,332,,332,,332,332,332,332,332,332,332,332,332', +'332,332,332,332,332,,,333,,,,,332,,,,332,333,333,333,,333,,333,,333', +',333,333,333,333,333,333,333,333,333,333,333,333,333,333,,,372,,,,,333', +',,,333,372,372,372,,372,,372,,372,,372,372,372,372,372,372,372,372,372', +'372,372,372,372,372,,,374,,,,,372,,,,372,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,,,379,,,,,378', +',,,378,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,380,380,380,380,380,,,386,,,,,380', +',,,380,386,386,386,,386,,386,,386,,386,386,386,386,386,386,386,386,386', +'386,386,386,386,386,,,402,,,,,386,,,,386,402,402,402,,402,,402,,402', +',402,402,402,402,402,402,402,402,402,402,402,402,402,402,,,405,,,,,402', +',,,402,405,405,405,,405,,405,,405,,405,405,405,405,405,405,405,405,405', +'405,405,405,405,405,,,406,,,,,405,,,,405,406,406,406,,406,,406,,406', +',406,406,406,406,406,406,406,406,406,406,406,406,406,406,294,,,294,', +'294,,406,294,,,406,,,,,,,,,,,,,,294,,294,294,294,294,294,,,,294,294' ] + racc_action_check = arr = ::Array.new(3055, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| @@ -662,198 +668,200 @@ def initialize(message, subject:, location:) end racc_action_pointer = [ - 173, 6, 1600, nil, nil, 16, 124, 23, nil, nil, + 173, 6, 1612, nil, nil, 16, 124, 23, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 68, 1636, 1672, 72, -6, nil, + nil, nil, nil, nil, 68, 1648, 1684, 72, -6, nil, 1140, 165, 158, nil, 316, 93, 154, nil, nil, nil, - 1708, 1744, nil, 1780, -27, nil, 52, 52, -2, 604, - nil, 101, nil, 1816, nil, nil, nil, nil, nil, nil, + 1720, 1756, nil, 1792, -27, nil, 52, 52, -2, 604, + nil, 101, nil, 1828, 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, 156, 183, 184, - 186, 196, 1852, 224, nil, nil, nil, nil, nil, nil, + 186, 196, 1864, 224, 237, 266, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 268, 1081, 266, 2, 273, nil, 71, 317, - 273, nil, 114, nil, 1888, nil, 320, 350, 345, 337, - 347, 349, 366, 379, 406, 407, 408, 409, 416, 418, - 449, 424, 1189, nil, 425, 424, nil, 425, nil, 426, - nil, nil, 428, 429, nil, 681, 1924, 1960, 1996, 77, - 454, 427, 427, nil, 1214, 2032, 2068, 2104, 165, 2140, - nil, nil, nil, nil, nil, 3, 2176, 2212, nil, 2248, - nil, 129, nil, nil, 202, nil, 429, nil, nil, nil, - nil, nil, 758, 835, 912, 1280, 1346, 1278, 2284, 1387, - 1410, 1456, 466, 989, 78, 2320, nil, 206, 208, 210, - 232, 4, 9, 10, 27, 444, 238, 243, 245, nil, - 499, 2356, nil, nil, nil, 456, nil, 1412, nil, nil, - nil, 1459, nil, nil, nil, nil, 487, 484, 460, 492, - 493, 494, 38, 511, 532, 2392, nil, 487, 1066, nil, - 489, nil, 522, 482, 463, 499, 499, nil, 526, nil, - nil, 278, nil, 325, nil, 52, 132, nil, 273, nil, - nil, 77, 1506, 87, 2428, -8, 528, nil, nil, 1518, - 528, nil, 470, 548, nil, nil, 1533, 514, 2899, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, 527, 528, 516, nil, 155, nil, nil, nil, nil, - nil, 168, nil, nil, 2464, nil, nil, nil, 545, 546, - 550, 88, 89, 106, -63, -2, 2500, 2536, 572, nil, - 1560, 156, 527, 77, 156, 235, 565, 580, 581, nil, - 563, nil, nil, nil, nil, nil, nil, nil, nil, nil, - 305, nil, nil, nil, nil, nil, nil, nil, 546, 306, - 315, 340, 565, nil, nil, nil, 2572, 592, 2608, 597, - 2644, 598, 2680, 2716, 2752, 357, nil, nil, 377, nil, - 2788, 348, 573, 0, 350, 577, 352, 581, 168, 185, - 186, 456, 570, 591, 618, 374, 2824, nil, 632, 2860, - 2896, nil, nil, nil, 594, nil, 610, nil, nil, 599, - 380, nil, 385, 387, nil, 612, nil, nil, 527, 602, - nil, nil ] + nil, nil, nil, nil, 304, 1081, 275, 2, 277, nil, + 71, 337, 304, nil, 114, nil, 1900, nil, 345, 379, + 372, 349, 366, 379, 416, 418, 423, 424, 425, 426, + 427, 428, 456, 431, 1189, nil, 432, 431, nil, 432, + nil, 433, nil, nil, 443, 454, nil, 681, 1936, 1972, + 2008, 77, 479, 452, 455, nil, 1214, 2044, 2080, 2116, + 165, 2152, 2188, 2224, nil, nil, nil, nil, nil, 3, + 2260, 2296, nil, 2332, nil, 129, nil, nil, 202, nil, + 457, nil, nil, nil, nil, nil, 758, 835, 912, 1280, + 1346, 1321, 2368, 1344, 1453, 1456, 488, 989, 78, 2404, + nil, 206, 208, 210, 232, 238, 243, 4, 9, 10, + 27, 456, 245, 278, 280, nil, 511, 2440, nil, nil, + nil, 468, nil, 1412, nil, nil, nil, 1459, nil, nil, + nil, nil, 512, 514, 487, 519, 520, 521, 38, 522, + 538, 2476, nil, 494, 1066, nil, 496, nil, 529, 489, + 470, 506, 514, nil, 551, nil, nil, 303, nil, 354, + nil, 52, 132, nil, 285, nil, nil, 77, 1506, 87, + 2512, -8, 553, nil, nil, 1528, 553, nil, 498, 576, + nil, nil, 1550, 536, 2983, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, 539, 540, 528, + nil, 155, nil, nil, nil, nil, nil, 168, nil, nil, + 2548, nil, nil, nil, 568, 569, 570, 88, 89, 106, + -63, -2, 2584, 2620, 592, nil, 1572, 156, 552, 77, + 156, 235, 590, 595, 596, nil, 578, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 336, nil, nil, nil, + nil, nil, nil, nil, 564, 306, 342, 348, 581, nil, + nil, nil, 2656, 609, 2692, 630, 2728, 632, 2764, 2800, + 2836, 365, nil, nil, 377, nil, 2872, 352, 607, 0, + 374, 608, 380, 610, 168, 185, 186, 456, 599, 602, + 628, 385, 2908, nil, 642, 2944, 2980, nil, nil, nil, + 604, nil, 619, nil, nil, 614, 387, nil, 403, 405, + nil, 625, nil, nil, 527, 615, nil, nil ] racc_action_default = [ - -247, -247, -243, -6, -16, -247, -4, -161, -164, -165, + -249, -249, -245, -6, -16, -249, -4, -161, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, - -176, -177, -178, -179, -180, -243, -243, -247, -84, -188, - -247, -247, -244, -246, -17, -4, -151, 422, -1, -5, - -243, -243, -187, -243, -189, -182, -247, -247, -243, -243, - -186, -247, -206, -243, -108, -109, -110, -111, -112, -113, + -176, -177, -178, -179, -180, -245, -245, -249, -84, -188, + -249, -249, -246, -248, -17, -4, -151, 428, -1, -5, + -245, -245, -187, -245, -189, -182, -249, -249, -245, -245, + -186, -249, -208, -245, -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, -137, -138, -139, -140, -247, -192, -247, - -247, -247, -243, -247, -201, -202, -203, -204, -237, -238, - -239, -240, -245, -2, -7, -8, -9, -10, -11, -12, - -13, -14, -17, -247, -247, -247, -247, -3, -84, -247, - -162, -163, -247, -183, -243, -184, -247, -247, -247, -174, - -164, -168, -175, -176, -165, -166, -169, -170, -173, -167, - -119, -171, -233, -199, -247, -210, -211, -213, -214, -216, - -217, -220, -223, -225, -226, -243, -243, -243, -243, -247, - -247, -247, -208, -191, -247, -243, -243, -243, -197, -243, - -18, -15, -15, -15, -15, -243, -243, -243, -242, -243, - -83, -247, -153, -181, -190, -185, -85, -227, -234, -235, - -236, -200, -243, -243, -243, -221, -221, -233, -243, -233, - -233, -233, -247, -243, -247, -243, -193, -194, -195, -196, - -198, -243, -243, -243, -243, -247, -158, -159, -160, -152, - -247, -243, -209, -217, -212, -219, -215, -247, -222, -224, - -228, -233, -229, -230, -232, -86, -247, -247, -205, -151, - -141, -141, -243, -141, -247, -243, -154, -207, -243, -231, - -247, -87, -247, -23, -149, -28, -34, -30, -33, -61, - -241, -157, -218, -247, -34, -243, -247, -143, -146, -150, - -34, -243, -17, -243, -243, -17, -247, -20, -21, -17, - -24, -142, -149, -247, -147, -148, -17, -29, -75, -27, - -35, -36, -37, -38, -39, -40, -41, -42, -43, -44, - -45, -247, -247, -247, -31, -247, -60, -62, -63, -64, - -65, -75, -34, -22, -243, -144, -145, -26, -46, -46, - -46, -243, -243, -243, -72, -247, -243, -243, -247, -32, - -17, -247, -247, -247, -247, -247, -66, -68, -70, -73, - -247, -76, -90, -91, -92, -93, -94, -95, -96, -97, - -98, -101, -102, -103, -104, -105, -106, -107, -133, -247, - -57, -58, -247, -19, -25, -47, -243, -54, -243, -54, - -243, -54, -243, -243, -243, -77, -99, -100, -247, -155, - -243, -48, -247, -247, -50, -247, -52, -247, -247, -247, - -247, -247, -247, -247, -247, -59, -243, -55, -247, -243, - -243, -67, -69, -71, -16, -88, -247, -78, -79, -247, - -49, -56, -51, -53, -74, -80, -81, -89, -247, -16, - -156, -82 ] + -134, -135, -136, -137, -138, -139, -140, -249, -192, -249, + -249, -249, -245, -249, -249, -249, -203, -204, -205, -206, + -239, -240, -241, -242, -247, -2, -7, -8, -9, -10, + -11, -12, -13, -14, -17, -249, -249, -249, -249, -3, + -84, -249, -162, -163, -249, -183, -245, -184, -249, -249, + -249, -174, -164, -168, -175, -176, -165, -166, -169, -170, + -173, -167, -119, -171, -235, -201, -249, -212, -213, -215, + -216, -218, -219, -222, -225, -227, -228, -245, -245, -245, + -245, -249, -249, -249, -210, -191, -249, -245, -245, -245, + -197, -245, -245, -245, -18, -15, -15, -15, -15, -245, + -245, -245, -244, -245, -83, -249, -153, -181, -190, -185, + -85, -229, -236, -237, -238, -202, -245, -245, -245, -223, + -223, -235, -245, -235, -235, -235, -249, -245, -249, -245, + -193, -194, -195, -196, -198, -199, -200, -245, -245, -245, + -245, -249, -158, -159, -160, -152, -249, -245, -211, -219, + -214, -221, -217, -249, -224, -226, -230, -235, -231, -232, + -234, -86, -249, -249, -207, -151, -141, -141, -245, -141, + -249, -245, -154, -209, -245, -233, -249, -87, -249, -23, + -149, -28, -34, -30, -33, -61, -243, -157, -220, -249, + -34, -245, -249, -143, -146, -150, -34, -245, -17, -245, + -245, -17, -249, -20, -21, -17, -24, -142, -149, -249, + -147, -148, -17, -29, -75, -27, -35, -36, -37, -38, + -39, -40, -41, -42, -43, -44, -45, -249, -249, -249, + -31, -249, -60, -62, -63, -64, -65, -75, -34, -22, + -245, -144, -145, -26, -46, -46, -46, -245, -245, -245, + -72, -249, -245, -245, -249, -32, -17, -249, -249, -249, + -249, -249, -66, -68, -70, -73, -249, -76, -90, -91, + -92, -93, -94, -95, -96, -97, -98, -101, -102, -103, + -104, -105, -106, -107, -133, -249, -57, -58, -249, -19, + -25, -47, -245, -54, -245, -54, -245, -54, -245, -245, + -245, -77, -99, -100, -249, -155, -245, -48, -249, -249, + -50, -249, -52, -249, -249, -249, -249, -249, -249, -249, + -249, -59, -245, -55, -249, -245, -245, -67, -69, -71, + -16, -88, -249, -78, -79, -249, -49, -56, -51, -53, + -74, -80, -81, -89, -249, -16, -156, -82 ] racc_goto_table = [ - 6, 93, 115, 46, 92, 126, 118, 113, 162, 87, - 50, 215, 198, 202, 187, 38, 127, 359, 128, 256, - 272, 122, 225, 225, 47, 367, 369, 371, 279, 267, - 223, 414, 226, 382, 286, 385, 1, 387, 120, 121, - 333, 334, 335, 103, 117, 34, 421, 142, 287, 228, - 229, 379, 211, 212, 213, 214, 35, 315, 237, 253, - 255, 104, 259, 276, 264, 270, 304, 308, 309, 230, - 394, 232, 233, 234, 310, 243, 330, 225, 258, 275, - 307, 340, 391, 406, 198, 170, 262, 404, 161, 266, - 168, 283, 181, 224, 98, nil, nil, nil, nil, nil, - 180, nil, nil, 249, nil, nil, nil, 258, nil, 258, - 420, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 184, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 93, nil, nil, 92, nil, - nil, nil, nil, 206, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 197, 199, 200, 201, 336, 337, 338, - 238, 222, nil, 207, 208, 209, nil, 210, 239, 240, - 241, nil, 236, nil, 216, 217, 247, 218, nil, 127, - 127, 127, 244, nil, nil, nil, nil, nil, nil, nil, - 142, 142, 142, nil, nil, nil, 231, nil, nil, nil, - nil, 142, nil, nil, nil, nil, nil, nil, nil, 252, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 280, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 127, nil, nil, nil, nil, nil, nil, - 115, nil, nil, 261, nil, nil, 142, 115, 311, nil, - nil, nil, 305, nil, 115, nil, nil, nil, nil, nil, + 6, 93, 117, 46, 92, 128, 120, 115, 164, 87, + 365, 191, 202, 50, 130, 229, 129, 232, 373, 375, + 377, 124, 231, 231, 47, 38, 278, 206, 262, 1, + 273, 420, 34, 388, 285, 391, 35, 393, 122, 123, + 292, 221, 259, 261, 385, 265, 427, 144, 217, 218, + 219, 220, 106, 105, 119, 234, 235, 293, 321, 339, + 340, 341, 282, 400, 270, 276, 310, 314, 236, 315, + 238, 239, 240, 268, 243, 316, 412, 249, 281, 231, + 313, 346, 336, 397, 410, 163, 272, 174, 202, 289, + 170, 185, 230, 100, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 426, 255, 184, nil, nil, nil, nil, + 264, 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, 93, nil, 264, + 92, 264, nil, nil, nil, 210, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 201, 203, 204, 205, nil, + nil, 228, nil, nil, 244, 211, 212, 213, nil, 214, + 215, 216, 242, nil, 245, 246, 247, nil, 222, 223, + nil, 224, 253, nil, nil, 129, 129, 129, 250, 342, + 343, 344, nil, nil, 144, 144, 144, nil, nil, nil, + 237, nil, nil, nil, nil, 144, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 258, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 286, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, 129, + nil, nil, nil, nil, nil, nil, 117, nil, nil, 267, + nil, nil, 144, 117, 317, nil, nil, nil, 311, nil, + 117, 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, nil, nil, nil, nil, 337, nil, + nil, nil, 363, nil, 117, nil, nil, nil, nil, nil, + 363, 363, 363, 372, 374, 376, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 331, nil, nil, nil, 357, nil, 115, nil, - nil, nil, nil, nil, 357, 357, 357, 366, 368, 370, + 366, 367, nil, nil, nil, nil, 363, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 360, 361, nil, nil, nil, nil, - 357, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 357, - 388, 389, 390, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 357, nil, 381, 405, 384, nil, 386, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 395, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 357, - nil, nil, nil, nil, 410, nil, nil, 412, 413 ] + nil, nil, nil, nil, nil, 363, 394, 395, 396, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 363, nil, + 387, 411, 390, nil, 392, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 401, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 363, nil, nil, nil, nil, + 416, nil, nil, 418, 419 ] racc_goto_check = [ 2, 54, 60, 23, 37, 17, 18, 16, 61, 63, - 48, 27, 65, 52, 76, 3, 60, 38, 50, 25, - 20, 23, 66, 66, 2, 38, 38, 38, 20, 56, - 71, 47, 71, 39, 20, 39, 1, 39, 2, 2, - 36, 36, 36, 3, 3, 4, 47, 2, 25, 72, - 72, 38, 14, 14, 14, 14, 5, 56, 52, 21, - 21, 6, 21, 19, 22, 24, 26, 29, 30, 76, - 38, 76, 76, 76, 35, 40, 20, 66, 27, 41, - 42, 43, 45, 38, 65, 16, 71, 46, 51, 55, - 2, 58, 59, 67, 77, nil, nil, nil, nil, nil, - 48, nil, nil, 76, nil, nil, nil, 27, nil, 27, - 38, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 2, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, 54, nil, nil, 37, nil, - nil, nil, nil, 63, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 2, 2, 2, 2, 27, 27, 27, - 61, 50, nil, 2, 2, 2, nil, 2, 17, 17, - 17, nil, 50, nil, 2, 2, 61, 2, nil, 60, - 60, 60, 60, nil, nil, nil, nil, nil, nil, nil, - 2, 2, 2, nil, nil, nil, 2, nil, nil, nil, - nil, 2, nil, nil, nil, nil, nil, nil, nil, 18, - nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 17, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, 60, nil, nil, nil, nil, nil, nil, - 60, nil, nil, 2, nil, nil, 2, 60, 16, nil, - nil, nil, 23, nil, 60, nil, nil, nil, nil, nil, + 38, 76, 65, 48, 50, 71, 60, 71, 38, 38, + 38, 23, 66, 66, 2, 3, 20, 52, 25, 1, + 56, 47, 4, 39, 20, 39, 5, 39, 2, 2, + 20, 27, 21, 21, 38, 21, 47, 2, 14, 14, + 14, 14, 6, 3, 3, 72, 72, 25, 56, 36, + 36, 36, 19, 38, 22, 24, 26, 29, 76, 30, + 76, 76, 76, 71, 52, 35, 38, 40, 41, 66, + 42, 43, 20, 45, 46, 51, 55, 16, 65, 58, + 2, 59, 67, 77, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 38, 76, 48, nil, nil, nil, nil, + 27, 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, 54, nil, 27, + 37, 27, nil, nil, nil, 63, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 2, 2, 2, 2, nil, + nil, 50, nil, nil, 61, 2, 2, 2, nil, 2, + 2, 2, 50, nil, 17, 17, 17, nil, 2, 2, + nil, 2, 61, nil, nil, 60, 60, 60, 60, 27, + 27, 27, nil, nil, 2, 2, 2, nil, nil, nil, + 2, nil, nil, nil, nil, 2, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 18, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 17, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, 60, + nil, nil, nil, nil, nil, nil, 60, nil, nil, 2, + nil, nil, 2, 60, 16, nil, nil, nil, 23, nil, + 60, 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, nil, nil, nil, nil, 23, nil, + nil, nil, 54, nil, 60, nil, nil, nil, nil, nil, + 54, 54, 54, 37, 37, 37, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 23, nil, nil, nil, 54, nil, 60, nil, - nil, nil, nil, nil, 54, 54, 54, 37, 37, 37, + 2, 2, nil, nil, nil, nil, 54, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, 2, 2, nil, nil, nil, nil, - 54, nil, nil, nil, nil, nil, nil, nil, nil, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 54, - 23, 23, 23, nil, nil, nil, nil, nil, nil, nil, - nil, nil, 54, nil, 2, 37, 2, nil, 2, nil, - nil, nil, nil, nil, nil, nil, nil, nil, 2, nil, - nil, nil, nil, nil, nil, nil, nil, nil, nil, 54, - nil, nil, nil, nil, 2, nil, nil, 2, 2 ] + nil, nil, nil, nil, nil, 54, 23, 23, 23, nil, + nil, nil, nil, nil, nil, nil, nil, nil, 54, nil, + 2, 37, 2, nil, 2, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 2, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 54, nil, nil, nil, nil, + 2, nil, nil, 2, 2 ] racc_goto_pointer = [ - nil, 36, -2, 9, 42, 52, 27, nil, nil, nil, - nil, nil, nil, nil, -119, nil, -27, -43, -30, -200, - -236, -181, -189, -22, -190, -223, -207, -164, nil, -208, - -207, nil, nil, nil, nil, -201, -278, -26, -308, -334, - -139, -180, -195, -243, nil, -293, -304, -373, -18, nil, - -31, 37, -146, nil, -29, -165, -225, nil, -177, -27, - -32, -45, nil, -21, nil, -143, -171, -100, nil, nil, - nil, -162, -146, nil, nil, nil, -128, 63 ] + nil, 29, -2, 19, 29, 32, 18, nil, nil, nil, + nil, nil, nil, nil, -127, nil, -27, -43, -30, -207, + -236, -204, -195, -22, -196, -220, -213, -138, nil, -214, + -212, nil, nil, nil, nil, -206, -265, -26, -321, -340, + -143, -187, -201, -249, nil, -298, -313, -379, -15, nil, + -35, 34, -134, nil, -29, -174, -230, nil, -185, -30, + -32, -45, nil, -21, nil, -145, -175, -105, nil, nil, + nil, -181, -144, nil, nil, nil, -133, 62 ] racc_goto_default = [ - nil, nil, 44, nil, nil, 415, 300, 105, 106, 107, - 108, 109, 110, 111, nil, 36, 288, 114, nil, nil, - nil, nil, nil, nil, nil, nil, 257, 24, 290, 291, - 292, 293, 294, 295, 296, 299, nil, 143, nil, nil, - nil, nil, nil, nil, 324, nil, nil, nil, nil, 51, - nil, nil, 52, 350, 144, nil, nil, 268, nil, nil, - 31, 7, 29, nil, 88, 157, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, nil, nil ] + nil, nil, 44, nil, nil, 421, 306, 107, 108, 109, + 110, 111, 112, 113, nil, 36, 294, 116, nil, nil, + nil, nil, nil, nil, nil, nil, 263, 24, 296, 297, + 298, 299, 300, 301, 302, 305, nil, 145, nil, nil, + nil, nil, nil, nil, 330, nil, nil, nil, nil, 51, + nil, nil, 52, 356, 146, nil, nil, 274, nil, nil, + 31, 7, 29, nil, 88, 159, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, nil, nil ] racc_reduce_table = [ 0, 0, :racc_error, @@ -1055,58 +1063,60 @@ def initialize(message, subject:, location:) 3, 145, :_reduce_196, 2, 145, :_reduce_197, 3, 145, :_reduce_198, + 3, 145, :_reduce_199, + 3, 145, :_reduce_200, 1, 146, :_reduce_none, - 2, 146, :_reduce_200, + 2, 146, :_reduce_202, 1, 118, :_reduce_none, 1, 118, :_reduce_none, 1, 118, :_reduce_none, 1, 118, :_reduce_none, - 4, 129, :_reduce_205, - 1, 129, :_reduce_206, - 5, 133, :_reduce_207, - 2, 133, :_reduce_208, - 3, 131, :_reduce_209, - 1, 131, :_reduce_210, + 4, 129, :_reduce_207, + 1, 129, :_reduce_208, + 5, 133, :_reduce_209, + 2, 133, :_reduce_210, + 3, 131, :_reduce_211, + 1, 131, :_reduce_212, 1, 131, :_reduce_none, - 3, 148, :_reduce_212, - 1, 148, :_reduce_213, + 3, 148, :_reduce_214, + 1, 148, :_reduce_215, 1, 148, :_reduce_none, - 3, 150, :_reduce_215, - 1, 150, :_reduce_216, + 3, 150, :_reduce_217, + 1, 150, :_reduce_218, 1, 150, :_reduce_none, - 3, 152, :_reduce_218, - 1, 152, :_reduce_219, + 3, 152, :_reduce_220, + 1, 152, :_reduce_221, 1, 152, :_reduce_none, - 0, 153, :_reduce_221, - 3, 153, :_reduce_222, - 1, 153, :_reduce_223, + 0, 153, :_reduce_223, 3, 153, :_reduce_224, 1, 153, :_reduce_225, - 1, 153, :_reduce_226, - 2, 147, :_reduce_227, - 3, 149, :_reduce_228, - 3, 151, :_reduce_229, - 3, 154, :_reduce_230, - 4, 155, :_reduce_231, - 3, 156, :_reduce_232, + 3, 153, :_reduce_226, + 1, 153, :_reduce_227, + 1, 153, :_reduce_228, + 2, 147, :_reduce_229, + 3, 149, :_reduce_230, + 3, 151, :_reduce_231, + 3, 154, :_reduce_232, + 4, 155, :_reduce_233, + 3, 156, :_reduce_234, 0, 157, :_reduce_none, 1, 157, :_reduce_none, 1, 157, :_reduce_none, 1, 157, :_reduce_none, - 2, 108, :_reduce_237, + 2, 108, :_reduce_239, 1, 158, :_reduce_none, 1, 158, :_reduce_none, 1, 158, :_reduce_none, - 2, 121, :_reduce_241, - 2, 98, :_reduce_242, - 0, 141, :_reduce_243, - 1, 141, :_reduce_244, - 2, 141, :_reduce_245, - 1, 141, :_reduce_246 ] + 2, 121, :_reduce_243, + 2, 98, :_reduce_244, + 0, 141, :_reduce_245, + 1, 141, :_reduce_246, + 2, 141, :_reduce_247, + 1, 141, :_reduce_248 ] -racc_reduce_n = 247 +racc_reduce_n = 249 -racc_shift_n = 422 +racc_shift_n = 428 racc_token_table = { false => 0, @@ -2859,11 +2869,17 @@ def _reduce_198(val, _values, result) end .,., -# reduce 199 omitted +module_eval(<<'.,.,', 'parser.y', 847) + def _reduce_199(val, _values, result) + result = { val[0].value => val[2] } + + result + end +.,., module_eval(<<'.,.,', 'parser.y', 850) def _reduce_200(val, _values, result) - result = val[0] + result = { val[0].value => val[2] } result end @@ -2871,14 +2887,24 @@ def _reduce_200(val, _values, result) # reduce 201 omitted -# reduce 202 omitted +module_eval(<<'.,.,', 'parser.y', 856) + def _reduce_202(val, _values, result) + result = val[0] + + result + end +.,., # reduce 203 omitted # reduce 204 omitted -module_eval(<<'.,.,', 'parser.y', 857) - def _reduce_205(val, _values, result) +# reduce 205 omitted + +# reduce 206 omitted + +module_eval(<<'.,.,', 'parser.y', 863) + def _reduce_207(val, _values, result) location = (val[0] || val[1] || val[2]).location + val[3].location params = val[0]&.value || [[], [], nil, [], {}, {}, nil] @@ -2902,16 +2928,16 @@ def _reduce_205(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 877) - def _reduce_206(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 883) + def _reduce_208(val, _values, result) result = LocatedValue.new(value: [val[0].value, nil], location: val[0].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 882) - def _reduce_207(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 888) + def _reduce_209(val, _values, result) location = val[0].location + val[4].location type = Types::Function.new( required_positionals: val[1][0], @@ -2930,8 +2956,8 @@ def _reduce_207(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 897) - def _reduce_208(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 903) + def _reduce_210(val, _values, result) location = val[0].location + val[1].location type = Types::Function.new( required_positionals: [], @@ -2950,8 +2976,8 @@ def _reduce_208(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 914) - def _reduce_209(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 920) + def _reduce_211(val, _values, result) result = val[2] result[0].unshift(val[0]) @@ -2959,8 +2985,8 @@ def _reduce_209(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 918) - def _reduce_210(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 924) + def _reduce_212(val, _values, result) result = empty_params_result result[0].unshift(val[0]) @@ -2968,10 +2994,10 @@ def _reduce_210(val, _values, result) end .,., -# reduce 211 omitted +# reduce 213 omitted -module_eval(<<'.,.,', 'parser.y', 925) - def _reduce_212(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 931) + def _reduce_214(val, _values, result) result = val[2] result[1].unshift(val[0]) @@ -2979,8 +3005,8 @@ def _reduce_212(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 929) - def _reduce_213(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 935) + def _reduce_215(val, _values, result) result = empty_params_result result[1].unshift(val[0]) @@ -2988,10 +3014,10 @@ def _reduce_213(val, _values, result) end .,., -# reduce 214 omitted +# reduce 216 omitted -module_eval(<<'.,.,', 'parser.y', 936) - def _reduce_215(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 942) + def _reduce_217(val, _values, result) result = val[2] result[2] = val[0] @@ -2999,8 +3025,8 @@ def _reduce_215(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 940) - def _reduce_216(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 946) + def _reduce_218(val, _values, result) result = empty_params_result result[2] = val[0] @@ -3008,10 +3034,10 @@ def _reduce_216(val, _values, result) end .,., -# reduce 217 omitted +# reduce 219 omitted -module_eval(<<'.,.,', 'parser.y', 947) - def _reduce_218(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 953) + def _reduce_220(val, _values, result) result = val[2] result[3].unshift(val[0]) @@ -3019,8 +3045,8 @@ def _reduce_218(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 951) - def _reduce_219(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 957) + def _reduce_221(val, _values, result) result = empty_params_result result[3].unshift(val[0]) @@ -3028,18 +3054,18 @@ def _reduce_219(val, _values, result) end .,., -# reduce 220 omitted +# reduce 222 omitted -module_eval(<<'.,.,', 'parser.y', 958) - def _reduce_221(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 964) + def _reduce_223(val, _values, result) result = empty_params_result result end .,., -module_eval(<<'.,.,', 'parser.y', 961) - def _reduce_222(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 967) + def _reduce_224(val, _values, result) result = val[2] result[4].merge!(val[0]) @@ -3047,8 +3073,8 @@ def _reduce_222(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 965) - def _reduce_223(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 971) + def _reduce_225(val, _values, result) result = empty_params_result result[4].merge!(val[0]) @@ -3056,8 +3082,8 @@ def _reduce_223(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 969) - def _reduce_224(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 975) + def _reduce_226(val, _values, result) result = val[2] result[5].merge!(val[0]) @@ -3065,8 +3091,8 @@ def _reduce_224(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 973) - def _reduce_225(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 979) + def _reduce_227(val, _values, result) result = empty_params_result result[5].merge!(val[0]) @@ -3074,8 +3100,8 @@ def _reduce_225(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 977) - def _reduce_226(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 983) + def _reduce_228(val, _values, result) result = empty_params_result result[6] = val[0] @@ -3083,8 +3109,8 @@ def _reduce_226(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 983) - def _reduce_227(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 989) + def _reduce_229(val, _values, result) result = Types::Function::Param.new(type: val[0], name: val[1]&.value&.to_sym) @@ -3092,8 +3118,8 @@ def _reduce_227(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 989) - def _reduce_228(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 995) + def _reduce_230(val, _values, result) result = Types::Function::Param.new(type: val[1], name: val[2]&.value&.to_sym) @@ -3101,8 +3127,8 @@ def _reduce_228(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 995) - def _reduce_229(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1001) + def _reduce_231(val, _values, result) result = Types::Function::Param.new(type: val[1], name: val[2]&.value&.to_sym) @@ -3110,8 +3136,8 @@ def _reduce_229(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1001) - def _reduce_230(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1007) + def _reduce_232(val, _values, result) param = Types::Function::Param.new(type: val[1], name: val[2]&.value&.to_sym) result = { val[0].value => param } @@ -3120,8 +3146,8 @@ def _reduce_230(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1008) - def _reduce_231(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1014) + def _reduce_233(val, _values, result) param = Types::Function::Param.new(type: val[2], name: val[3]&.value&.to_sym) result = { val[1].value => param } @@ -3130,8 +3156,8 @@ def _reduce_231(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1015) - def _reduce_232(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1021) + def _reduce_234(val, _values, result) result = Types::Function::Param.new(type: val[1], name: val[2]&.value&.to_sym) @@ -3139,16 +3165,16 @@ def _reduce_232(val, _values, result) end .,., -# reduce 233 omitted - -# reduce 234 omitted - # reduce 235 omitted # reduce 236 omitted -module_eval(<<'.,.,', 'parser.y', 1024) - def _reduce_237(val, _values, result) +# reduce 237 omitted + +# reduce 238 omitted + +module_eval(<<'.,.,', 'parser.y', 1030) + def _reduce_239(val, _values, result) namespace = val[0]&.value || Namespace.empty name = val[1].value.to_sym type_name = TypeName.new(namespace: namespace, name: name) @@ -3159,14 +3185,14 @@ def _reduce_237(val, _values, result) end .,., -# reduce 238 omitted +# reduce 240 omitted -# reduce 239 omitted +# reduce 241 omitted -# reduce 240 omitted +# reduce 242 omitted -module_eval(<<'.,.,', 'parser.y', 1036) - def _reduce_241(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1042) + 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) @@ -3177,8 +3203,8 @@ def _reduce_241(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1045) - def _reduce_242(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1051) + def _reduce_244(val, _values, result) namespace = val[0]&.value || Namespace.empty name = val[1].value.to_sym type_name = TypeName.new(namespace: namespace, name: name) @@ -3189,24 +3215,24 @@ def _reduce_242(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1054) - def _reduce_243(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1060) + def _reduce_245(val, _values, result) result = nil result end .,., -module_eval(<<'.,.,', 'parser.y', 1057) - def _reduce_244(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1063) + def _reduce_246(val, _values, result) result = LocatedValue.new(value: Namespace.root, location: val[0].location) result end .,., -module_eval(<<'.,.,', 'parser.y', 1060) - def _reduce_245(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1066) + def _reduce_247(val, _values, result) namespace = Namespace.parse(val[1].value).absolute! result = LocatedValue.new(value: namespace, location: val[0].location + val[1].location) @@ -3214,8 +3240,8 @@ def _reduce_245(val, _values, result) end .,., -module_eval(<<'.,.,', 'parser.y', 1064) - def _reduce_246(val, _values, result) +module_eval(<<'.,.,', 'parser.y', 1070) + def _reduce_248(val, _values, result) namespace = Namespace.parse(val[0].value) result = LocatedValue.new(value: namespace, location: val[0].location) diff --git a/lib/rbs/parser.y b/lib/rbs/parser.y index 9605cc761..b6ad2c537 100644 --- a/lib/rbs/parser.y +++ b/lib/rbs/parser.y @@ -844,6 +844,12 @@ rule | identifier_keywords kCOLON type { result = { val[0].value => val[2] } } + | tQUOTEDIDENT kCOLON type { + result = { val[0].value => val[2] } + } + | tQUOTEDMETHOD kCOLON type { + result = { val[0].value => val[2] } + } keyword_name: keyword diff --git a/test/rbs/type_parsing_test.rb b/test/rbs/type_parsing_test.rb index af4bbac04..f4170982a 100644 --- a/test/rbs/type_parsing_test.rb +++ b/test/rbs/type_parsing_test.rb @@ -616,4 +616,9 @@ def test_record_keywords end end end + + def test_record_escape + Parser.parse_type('{ `日本語`: Integer }') + Parser.parse_type('{ `🌼`: Integer }') + end end