# # DO NOT MODIFY!!!! # This file is automatically generated by Racc 1.4.14 # from Racc grammer file "". # require 'racc/parser.rb' module Steep class Parser < Racc::Parser module_eval(<<'...end parser.y/module_eval...', 'parser.y', 1023) require "strscan" attr_reader :input attr_reader :buffer attr_reader :offset def initialize(type, buffer:, offset:, input: nil) super() @type = type @buffer = buffer @input = StringScanner.new(input || buffer.content) @offset = offset end def self.parse_method(input, name: nil) new(:METHOD, buffer: AST::Buffer.new(name: name, content: input), offset: 0).do_parse end def self.parse_signature(input, name: nil) new(:SIGNATURE, buffer: AST::Buffer.new(name: name, content: input), offset: 0).do_parse end def self.parse_annotation_opt(input, buffer:, offset: 0) new(:ANNOTATION, input: input, buffer: buffer, offset: offset).do_parse rescue => exn Steep.logger.debug "Parsing comment failed: #{exn.inspect}" nil end def self.parse_type(input, name: nil) new(:TYPE, buffer: AST::Buffer.new(name: name, content: input), offset: 0).do_parse end class LocatedValue attr_reader :location attr_reader :value def initialize(location:, value:) @location = location @value = value end end def new_token(type, value = nil) start_index = offset + input.pos - input.matched.bytesize end_index = offset + input.pos location = AST::Location.new(buffer: buffer, start_pos: start_index, end_pos: end_index) [type, LocatedValue.new(location: location, value: value)] end def next_token if @type type = @type @type = nil return [:"type_#{type}", nil] end case when input.scan(/\s+/) next_token when input.scan(/#.*/) next_token when input.eos? [false, false] when input.scan(/->/) new_token(:tARROW) when input.scan(/\?/) new_token(:tQUESTION) when input.scan(/!/) new_token(:tBANG, :!) when input.scan(/\(/) new_token(:tLPAREN, nil) when input.scan(/\)/) new_token(:tRPAREN, nil) when input.scan(/{/) new_token(:tLBRACE, nil) when input.scan(/}/) new_token(:tRBRACE, nil) when input.scan(/,/) new_token(:tCOMMA, nil) when input.scan(/:\w+/) new_token(:tSYMBOL, input.matched[1..-1].to_sym) when input.scan(/\*\*/) new_token(:tSTAR2, :**) when input.scan(/\*/) new_token(:tSTAR, :*) when input.scan(/\+/) new_token(:tPLUS, :+) when input.scan(/\./) new_token(:tDOT) when input.scan(/<:(?!:)/) loc = new_token("<:")[1].location Steep.logger.warn("`<:` syntax for super class is deprecated. Use `<` instead. (#{loc.buffer.name}:#{loc})") new_token(:tLT) when input.scan(/\^/) new_token(:tHAT, :"^") when input.scan(/=>/) new_token(:tROCKET, :"=>") when input.scan(/(\[\]=)|(\[\])|===|==|!=|<<|=~/) new_token(:tOPERATOR, input.matched.to_sym) when input.scan(/\[/) new_token(:tLBRACKET, nil) when input.scan(/\]/) new_token(:tRBRACKET, nil) when input.scan(/<=/) new_token(:tOPERATOR, :<=) when input.scan(/>=/) new_token(:tOPERATOR, :>=) when input.scan(/=/) new_token(:tEQ, :"=") when input.scan(//) new_token(:tGT, :>) when input.scan(/nil\b/) new_token(:kNIL, :nil) when input.scan(/bool\b/) new_token(:kBOOL, :bool) when input.scan(/any\b/) new_token(:kANY, :any) when input.scan(/void\b/) new_token(:kVOID, :void) when input.scan(/type\b/) new_token(:kTYPE, :type) when input.scan(/interface\b/) new_token(:kINTERFACE, :interface) when input.scan(/incompatible\b/) new_token(:kINCOMPATIBLE, :incompatible) when input.scan(/end\b/) new_token(:kEND, :end) when input.scan(/\|/) new_token(:tBAR, :bar) when input.scan(/-@/) new_token(:tUMINUS, :"-@") when input.scan(/def\b/) new_token(:kDEF) when input.scan(/@type\b/) new_token(:kAT_TYPE) when input.scan(/@implements\b/) new_token(:kAT_IMPLEMENTS) when input.scan(/@dynamic\b/) new_token(:kAT_DYNAMIC) when input.scan(/const\b/) new_token(:kCONST, :const) when input.scan(/var\b/) new_token(:kVAR, :var) when input.scan(/return\b/) new_token(:kRETURN) when input.scan(/block\b/) new_token(:kBLOCK, :block) when input.scan(/break\b/) new_token(:kBREAK, :break) when input.scan(/method\b/) new_token(:kMETHOD, :method) when input.scan(/self\?/) new_token(:kSELFQ) when input.scan(/self\b/) new_token(:kSELF, :self) when input.scan(/'\w+/) new_token(:tVAR, input.matched.gsub(/\A'/, '').to_sym) when input.scan(/attr_reader\b/) new_token(:kATTR_READER, :attr_reader) when input.scan(/attr_accessor\b/) new_token(:kATTR_ACCESSOR, :attr_accessor) when input.scan(/instance\b/) new_token(:kINSTANCE, :instance) when input.scan(/class\b/) new_token(:kCLASS, :class) when input.scan(/module\b/) new_token(:kMODULE, :module) when input.scan(/include\b/) new_token(:kINCLUDE, :include) when input.scan(/extend\b/) new_token(:kEXTEND, :extend) when input.scan(/instance\b/) new_token(:kINSTANCE, :instance) when input.scan(/ivar\b/) new_token(:kIVAR, :ivar) when input.scan(/%/) new_token(:tPERCENT, :%) when input.scan(/-/) new_token(:tMINUS, :-) when input.scan(/&/) new_token(:tOPERATOR, :&) when input.scan(/~/) new_token(:tOPERATOR, :~) when input.scan(/\//) new_token(:tOPERATOR, :/) when input.scan(/extension\b/) new_token(:kEXTENSION, :extension) when input.scan(/constructor\b/) new_token(:kCONSTRUCTOR, :constructor) when input.scan(/noconstructor\b/) new_token(:kNOCONSTRUCTOR, :noconstructor) when input.scan(/\$\w+\b/) new_token(:tGVAR, input.matched.to_sym) when input.scan(/::([A-Z]\w*::)*_\w+/) new_token(:tQUALIFIED_INTERFACE_NAME, Names::Interface.parse(input.matched)) when input.scan(/([A-Z]\w*::)+_\w+/) new_token(:tQUALIFIED_INTERFACE_NAME, Names::Interface.parse(input.matched)) when input.scan(/::([A-Z]\w*::)*[a-z]\w*/) new_token(:tQUALIFIED_ALIAS_NAME, Names::Alias.parse(input.matched)) when input.scan(/([A-Z]\w*::)+[a-z]\w*/) new_token(:tQUALIFIED_ALIAS_NAME, Names::Alias.parse(input.matched)) when input.scan(/::([A-Z]\w*::)*[A-Z]\w*/) new_token(:tQUALIFIED_MODULE_NAME, Names::Module.parse(input.matched)) when input.scan(/([A-Z]\w*::)+[A-Z]\w*/) new_token(:tQUALIFIED_MODULE_NAME, Names::Module.parse(input.matched)) when input.scan(/[A-Z]\w*/) new_token(:tUIDENT, input.matched.to_sym) when input.scan(/_\w+/) new_token(:tINTERFACE_NAME, input.matched.to_sym) when input.scan(/@\w+/) new_token(:tIVAR_NAME, input.matched.to_sym) when input.scan(/\d+/) new_token(:tINT, input.matched.to_i) when input.scan(/\"[^\"]*\"/) new_token(:tSTRING, input.matched[1...-1]) when input.scan(/[a-z]\w*/) new_token(:tIDENT, input.matched.to_sym) when input.scan(/:/) new_token(:tCOLON) end end ...end parser.y/module_eval... ##### State transition tables begin ### clist = [ '37,38,56,263,386,42,43,35,41,58,208,262,137,359,137,206,215,216,385', '359,40,45,266,267,39,264,265,21,22,20,55,358,207,136,57,136,24,358,132', '-34,54,46,56,261,51,49,58,50,342,161,131,306,175,394,21,22,20,23,26', '304,47,48,26,24,36,25,18,37,38,25,55,57,42,43,35,41,26,233,263,290,291', '232,9,25,23,26,262,40,45,26,399,39,25,18,400,26,25,266,267,26,264,265', '25,26,402,404,25,54,46,56,25,51,49,58,50,26,26,9,261,26,406,407,25,25', '263,9,25,47,48,26,9,36,262,6,37,38,25,55,57,42,43,35,41,266,267,9,264', '265,59,26,64,64,72,73,40,45,25,131,39,131,158,21,22,20,261,2,3,4,5,136', '24,28,29,30,54,46,56,184,51,49,58,50,185,9,190,9,9,9,21,22,20,23,195', '197,47,48,26,24,36,198,18,37,38,25,55,57,42,43,35,41,199,201,263,202', '203,204,9,209,23,210,262,40,45,26,211,39,212,18,213,219,25,266,267,220', '264,265,221,222,223,224,225,54,46,56,226,51,49,58,50,227,26,234,261', '235,236,237,238,25,239,240,241,47,48,26,86,36,246,-97,37,38,25,55,57', '42,43,35,41,84,79,81,82,88,80,83,-98,-99,-100,85,40,45,87,-104,39,-95', '-96,21,22,20,64,250,272,273,274,275,24,276,280,283,54,46,56,288,51,49', '58,50,136,298,299,313,315,250,21,22,20,23,318,320,47,48,26,24,36,321', '18,37,38,25,55,57,42,43,35,41,323,328,329,332,9,338,340,341,23,350,360', '40,45,26,361,39,363,18,363,365,25,367,368,372,373,374,9,377,378,379', '380,54,46,56,381,51,49,58,50,384,26,387,389,391,,,,25,,,,47,48,26,,36', ',,178,179,25,55,57,42,43,177,41,157,,,,,,,,153,,,181,45,,,180,154,,155', ',,,37,38,,,,42,43,35,41,54,46,183,,51,49,182,50,,,,40,45,,174,39,,,175', '172,47,48,26,,36,,,,,25,55,57,46,56,,51,49,58,50,,,,,,,21,22,20,,,,47', '48,26,24,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,23,,,40,45,,,39,,18', ',,,,37,38,,,,42,43,35,41,,46,56,,51,49,58,50,,26,,40,45,,,39,25,,,,47', '48,26,,36,,,,,25,55,57,46,56,,51,49,58,50,,,,,,,,,,,,,47,48,26,,36,', ',178,179,25,55,57,42,43,177,41,157,,,,,,,,153,,,181,45,,,180,154,,155', ',,,,,,,,,,,,54,46,183,,51,49,182,50,,,,,,,174,,,,175,172,47,48,26,,36', ',,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,21,22,20,,,,,,', '24,,,,54,46,56,,51,49,58,50,,,,,,,,,,23,,,47,48,26,,36,,18,37,38,25', '55,57,42,43,35,41,,,,,,,,,,,,40,45,26,,39,,,,,25,,37,38,,,,42,43,35', '41,54,46,56,,51,49,58,50,,,,40,45,,,39,,,,,47,48,26,,36,,,,,25,55,57', '46,56,,51,49,58,50,,,,,,,233,,,,232,,47,48,26,,36,,,37,38,25,55,57,42', '43,35,41,150,151,,,,,,149,,157,,40,45,,,39,,153,,,156,,,,152,154,,155', ',,,54,46,56,,51,49,58,50,,,,148,,,,147,,,,,47,48,26,,36,,,37,38,25,55', '57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49', '58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,', ',,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47,48', '26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,', ',,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57', '42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58', '50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,', '40,45,,,39,,,,,,,37,38,,,,42,43,35,41,54,46,56,,51,49,58,50,,,,40,45', ',,39,,,,,47,48,26,,36,,,,,25,55,57,46,56,,51,49,58,50,,,,,,,233,,,,232', ',47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,', ',,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,342,,,,175,,47,48,26,,36,,,37', '38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56', ',51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,', ',,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,', ',,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,', ',,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38', '25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,', '51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,178,179,25,55,57,42,43,177,41', '157,,,,,,,,153,,,181,45,,,180,154,,155,,,,,,,,,,,,,54,46,183,,51,49', '182,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,', ',,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47,48', '26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,37,38', ',,,42,43,35,41,54,46,56,,51,49,58,50,,,,40,45,,,39,,,,,47,48,26,,36', ',,,,25,55,57,46,56,,51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25', '55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51', '49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,', ',,,,,,40,45,,,39,,,,,,,37,38,,,,42,43,35,41,54,46,56,,51,49,58,50,,', ',40,45,,,39,,,,,47,48,26,,36,,,,,25,55,57,46,56,,,49,58,61,,,,,,,,,', ',,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,', ',,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38', '25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,', '51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,', ',,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,', ',47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,', ',,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25', '55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51', '49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,', ',,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47', '48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,', ',,,,,,,,54,46,56,,51,49,58,50,,,,,,,342,,,,175,,47,48,26,,36,,,37,38', '25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,', '51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,', ',,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,', ',47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,', ',,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25', '55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51', '49,58,50,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,', ',,,,,,40,45,,,39,,,,,,,,,,,,,,,,54,46,56,,51,49,58,50,,,,,,,,,,,,,47', '48,26,,36,,,37,38,25,55,57,42,43,35,41,,,,,,,,,,,,40,45,,,39,,,,,,,37', '38,,,,42,43,35,41,54,46,56,,51,49,58,50,,,,40,45,,,39,,,,,47,48,26,', '36,,,,,25,55,57,46,56,,,49,58,,,,,,,,,,,,,,47,48,26,,36,,,37,38,25,55', '57,42,43,35,41,150,151,,,,,,149,,157,,40,45,,,39,,153,,,156,,,,152,154', ',155,,,,54,46,56,,51,49,58,50,,,,148,,,,147,,,,,47,48,26,310,36,,,,172', '25,55,57,108,109,105,,106,99,119,103,104,120,125,,,,,,,116,117,118,', ',123,124,110,112,111,,121,122,,,115,98,,,,,96,,114,,102,,,,100,,95,', '94,113,93,107,,,,,91,92,,,101,97,108,109,105,,106,99,119,103,104,120', '125,,,,,,,116,117,118,129,130,123,124,110,112,111,,121,122,,,115,98', ',,,,96,,114,,102,,,,100,,95,,94,113,93,107,,,,,91,92,,,101,97,108,109', '105,,106,99,119,103,104,120,125,,,,,,,116,117,118,,,123,124,110,112', '111,,121,122,,,115,98,,,,,96,,114,,102,,,,100,,95,,94,113,93,107,,,', ',91,92,,,101,97,108,109,105,,106,99,119,103,104,120,125,,,,,,,116,117', '118,,,123,124,110,112,111,,121,122,,,115,98,,,,,96,,114,,102,,,,100', ',95,,94,113,93,107,,,,,91,92,,,101,97,108,109,105,,106,99,119,103,104', '120,125,,,,,,,116,117,118,,,123,124,110,112,111,,121,122,,,115,98,,', ',,96,,114,,102,,,,100,,95,,94,113,93,107,,,,,91,92,,,101,97,108,109', '105,,106,99,119,103,104,120,125,,,,,,,116,117,118,,,123,124,110,112', '111,,121,122,,,115,98,,,,,96,,114,,102,,,,100,,95,,94,113,93,107,,,', ',91,92,,,101,97,108,109,105,,106,99,119,103,104,120,125,,,,,,,116,117', '118,,,123,124,110,112,111,,121,122,,,115,98,,,,,96,,114,,102,,,,100', ',95,,94,113,93,107,,,,,91,92,,,101,97,108,109,105,,106,99,119,103,104', '120,125,,,,,,,116,117,118,,,123,124,110,112,111,,121,122,,,115,98,,', ',,96,,114,,102,,,,100,,95,,94,113,93,107,,,,,91,92,,,101,97,108,109', '105,,106,99,119,103,104,120,125,,,,,,,116,117,118,129,130,123,124,110', '112,111,,121,122,,,115,98,,,,,96,,114,,102,,,,100,,95,,94,113,93,107', ',,,,91,92,,,101,97,108,109,105,,106,99,119,103,104,120,125,,,,,,,116', '117,118,354,355,123,124,110,112,111,,121,122,,,115,98,,,,,96,,114,,102', ',,,100,,95,,94,113,93,107,,,,,91,92,,,101,97,108,109,105,,106,99,119', '103,104,120,125,,,,,,,116,117,118,,,123,124,110,112,111,,121,122,,,115', '98,,,,,96,,114,,102,,,,100,,95,,94,113,93,107,,,,,91,92,150,151,101', '97,,,,149,,157,,,150,151,,,,153,,149,156,157,,,152,154,,155,,153,,,156', ',,,152,154,,155,,142,148,,,,147,,,,150,151,,142,148,,,149,147,157,143', '144,,,,,,153,,,156,,143,144,152,154,,155,150,151,,,,,,149,,157,,,,,148', ',,153,147,,156,,,,152,154,174,155,150,151,175,172,,,,149,,157,,,,,148', ',,153,147,,156,,,,152,154,310,155,,,,172,,,,,,,,,,,148,,,,147,,,,,,', ',310,,,,,172' ] racc_action_table = arr = ::Array.new(3835, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| arr[idx] = i.to_i unless i.empty? idx += 1 end end clist = [ '72,72,20,368,363,72,72,72,72,24,90,368,217,381,44,90,132,132,363,323', '72,72,368,368,72,368,368,11,11,11,20,381,90,217,24,44,11,323,32,60,72', '72,72,368,72,72,72,72,374,60,32,235,374,376,15,15,15,11,265,235,72,72', '72,15,72,265,11,220,220,72,72,72,220,220,220,220,21,340,271,215,215', '340,377,21,15,84,271,220,220,11,382,220,84,15,383,23,11,271,271,29,271', '271,23,22,386,390,29,220,220,220,22,220,220,220,220,264,15,394,271,365', '396,397,264,15,252,406,365,220,220,220,407,220,252,1,223,223,220,220', '220,223,223,223,223,252,252,2,252,252,6,190,9,190,18,19,223,223,190', '33,223,34,54,12,12,12,252,0,0,0,0,62,12,4,4,4,223,223,223,63,223,223', '223,223,64,74,75,76,77,78,16,16,16,12,79,81,223,223,223,16,223,82,12', '224,224,223,223,223,224,224,224,224,83,85,189,86,87,88,89,96,16,99,189', '224,224,12,127,224,129,16,130,138,12,189,189,139,189,189,140,141,142', '143,144,224,224,224,145,224,224,224,224,146,16,159,189,160,162,163,165', '16,167,169,170,224,224,224,28,224,176,177,225,225,224,224,224,225,225', '225,225,28,28,28,28,28,28,28,178,179,180,28,225,225,28,181,225,182,183', '13,13,13,185,188,191,192,193,194,13,196,200,203,225,225,225,214,225', '225,225,225,228,229,231,244,248,249,3,3,3,13,251,261,225,225,225,3,225', '262,13,226,226,225,225,225,226,226,226,226,263,269,270,273,276,298,301', '305,3,317,324,226,226,13,325,226,326,3,327,328,13,330,332,343,344,346', '350,353,354,355,356,226,226,226,357,226,226,226,226,362,3,364,366,371', ',,,3,,,,226,226,226,,226,,,61,61,226,226,226,61,61,61,61,61,,,,,,,,61', ',,61,61,,,61,61,,61,,,,232,232,,,,232,232,232,232,61,61,61,,61,61,61', '61,,,,232,232,,61,232,,,61,61,61,61,61,,61,,,,,61,61,61,232,232,,232', '232,232,232,,,,,,,14,14,14,,,,232,232,232,14,232,,,233,233,232,232,232', '233,233,233,233,,,,,,,,,14,,,233,233,,,233,,14,,,,,234,234,,,,234,234', '234,234,,233,233,,233,233,233,233,,14,,234,234,,,234,14,,,,233,233,233', ',233,,,,,233,233,233,234,234,,234,234,234,234,,,,,,,,,,,,,234,234,234', ',234,,,237,237,234,234,234,237,237,237,237,237,,,,,,,,237,,,237,237', ',,237,237,,237,,,,,,,,,,,,,237,237,237,,237,237,237,237,,,,,,,237,,', ',237,237,237,237,237,,237,,,246,246,237,237,237,246,246,246,246,,,,', ',,,,,,,246,246,,,246,,,17,17,17,,,,,,,17,,,,246,246,246,,246,246,246', '246,,,,,,,,,,17,,,246,246,246,,246,,17,73,73,246,246,246,73,73,73,73', ',,,,,,,,,,,73,73,17,,73,,,,,17,,158,158,,,,158,158,158,158,73,73,73', ',73,73,73,73,,,,158,158,,,158,,,,,73,73,73,,73,,,,,73,73,73,158,158', ',158,158,158,158,,,,,,,158,,,,158,,158,158,158,,158,,,272,272,158,158', '158,272,272,272,272,310,310,,,,,,310,,310,,272,272,,,272,,310,,,310', ',,,310,310,,310,,,,272,272,272,,272,272,272,272,,,,310,,,,310,,,,,272', '272,272,,272,,,5,5,272,272,272,5,5,5,5,,,,,,,,,,,,5,5,,,5,,,,,,,,,,', ',,,,,5,5,5,,5,5,5,5,,,,,,,,,,,,,5,5,5,,5,,,274,274,5,5,5,274,274,274', '274,,,,,,,,,,,,274,274,,,274,,,,,,,,,,,,,,,,274,274,274,,274,274,274', '274,,,,,,,,,,,,,274,274,274,,274,,,275,275,274,274,274,275,275,275,275', ',,,,,,,,,,,275,275,,,275,,,,,,,,,,,,,,,,275,275,275,,275,275,275,275', ',,,,,,,,,,,,275,275,275,,275,,,280,280,275,275,275,280,280,280,280,', ',,,,,,,,,,280,280,,,280,,,,,,,,,,,,,,,,280,280,280,,280,280,280,280', ',,,,,,,,,,,,280,280,280,,280,,,283,283,280,280,280,283,283,283,283,', ',,,,,,,,,,283,283,,,283,,,,,,,299,299,,,,299,299,299,299,283,283,283', ',283,283,283,283,,,,299,299,,,299,,,,,283,283,283,,283,,,,,283,283,283', '299,299,,299,299,299,299,,,,,,,299,,,,299,,299,299,299,,299,,,306,306', '299,299,299,306,306,306,306,,,,,,,,,,,,306,306,,,306,,,,,,,,,,,,,,,', '306,306,306,,306,306,306,306,,,,,,,306,,,,306,,306,306,306,,306,,,313', '313,306,306,306,313,313,313,313,,,,,,,,,,,,313,313,,,313,,,,,,,,,,,', ',,,,313,313,313,,313,313,313,313,,,,,,,,,,,,,313,313,313,,313,,,172', '172,313,313,313,172,172,172,172,,,,,,,,,,,,172,172,,,172,,,,,,,,,,,', ',,,,172,172,172,,172,172,172,172,,,,,,,,,,,,,172,172,172,,172,,,320', '320,172,172,172,320,320,320,320,,,,,,,,,,,,320,320,,,320,,,,,,,,,,,', ',,,,320,320,320,,320,320,320,320,,,,,,,,,,,,,320,320,320,,320,,,321', '321,320,320,320,321,321,321,321,,,,,,,,,,,,321,321,,,321,,,,,,,,,,,', ',,,,321,321,321,,321,321,321,321,,,,,,,,,,,,,321,321,321,,321,,,174', '174,321,321,321,174,174,174,174,174,,,,,,,,174,,,174,174,,,174,174,', '174,,,,,,,,,,,,,174,174,174,,174,174,174,174,,,,,,,,,,,,,174,174,174', ',174,,,175,175,174,174,174,175,175,175,175,,,,,,,,,,,,175,175,,,175', ',,,,,,,,,,,,,,,175,175,175,,175,175,175,175,,,,,,,,,,,,,175,175,175', ',175,,,329,329,175,175,175,329,329,329,329,,,,,,,,,,,,329,329,,,329', ',,,,,,338,338,,,,338,338,338,338,329,329,329,,329,329,329,329,,,,338', '338,,,338,,,,,329,329,329,,329,,,,,329,329,329,338,338,,338,338,338', '338,,,,,,,,,,,,,338,338,338,,338,,,341,341,338,338,338,341,341,341,341', ',,,,,,,,,,,341,341,,,341,,,,,,,,,,,,,,,,341,341,341,,341,341,341,341', ',,,,,,,,,,,,341,341,341,,341,,,342,342,341,341,341,342,342,342,342,', ',,,,,,,,,,342,342,,,342,,,,,,,8,8,,,,8,8,8,8,342,342,342,,342,342,342', '342,,,,8,8,,,8,,,,,342,342,342,,342,,,,,342,342,342,8,8,,,8,8,8,,,,', ',,,,,,,,8,8,8,,8,,,360,360,8,8,8,360,360,360,360,,,,,,,,,,,,360,360', ',,360,,,,,,,,,,,,,,,,360,360,360,,360,360,360,360,,,,,,,,,,,,,360,360', '360,,360,,,361,361,360,360,360,361,361,361,361,,,,,,,,,,,,361,361,,', '361,,,,,,,,,,,,,,,,361,361,361,,361,361,361,361,,,,,,,,,,,,,361,361', '361,,361,,,49,49,361,361,361,49,49,49,49,,,,,,,,,,,,49,49,,,49,,,,,', ',,,,,,,,,,49,49,49,,49,49,49,49,,,,,,,,,,,,,49,49,49,,49,,,50,50,49', '49,49,50,50,50,50,,,,,,,,,,,,50,50,,,50,,,,,,,,,,,,,,,,50,50,50,,50', '50,50,50,,,,,,,,,,,,,50,50,50,,50,,,131,131,50,50,50,131,131,131,131', ',,,,,,,,,,,131,131,,,131,,,,,,,,,,,,,,,,131,131,131,,131,131,131,131', ',,,,,,,,,,,,131,131,131,,131,,,197,197,131,131,131,197,197,197,197,', ',,,,,,,,,,197,197,,,197,,,,,,,,,,,,,,,,197,197,197,,197,197,197,197', ',,,,,,,,,,,,197,197,197,,197,,,373,373,197,197,197,373,373,373,373,', ',,,,,,,,,,373,373,,,373,,,,,,,,,,,,,,,,373,373,373,,373,373,373,373', ',,,,,,373,,,,373,,373,373,373,,373,,,198,198,373,373,373,198,198,198', '198,,,,,,,,,,,,198,198,,,198,,,,,,,,,,,,,,,,198,198,198,,198,198,198', '198,,,,,,,,,,,,,198,198,198,,198,,,199,199,198,198,198,199,199,199,199', ',,,,,,,,,,,199,199,,,199,,,,,,,,,,,,,,,,199,199,199,,199,199,199,199', ',,,,,,,,,,,,199,199,199,,199,,,201,201,199,199,199,201,201,201,201,', ',,,,,,,,,,201,201,,,201,,,,,,,,,,,,,,,,201,201,201,,201,201,201,201', ',,,,,,,,,,,,201,201,201,,201,,,384,384,201,201,201,384,384,384,384,', ',,,,,,,,,,384,384,,,384,,,,,,,,,,,,,,,,384,384,384,,384,384,384,384', ',,,,,,,,,,,,384,384,384,,384,,,202,202,384,384,384,202,202,202,202,', ',,,,,,,,,,202,202,,,202,,,,,,,,,,,,,,,,202,202,202,,202,202,202,202', ',,,,,,,,,,,,202,202,202,,202,,,387,387,202,202,202,387,387,387,387,', ',,,,,,,,,,387,387,,,387,,,,,,,137,137,,,,137,137,137,137,387,387,387', ',387,387,387,387,,,,137,137,,,137,,,,,387,387,387,,387,,,,,387,387,387', '137,137,,,137,137,,,,,,,,,,,,,,137,137,137,,137,,,204,204,137,137,137', '204,204,204,204,240,240,,,,,,240,,240,,204,204,,,204,,240,,,240,,,,240', '240,,240,,,,204,204,204,,204,204,204,204,,,,240,,,,240,,,,,204,204,204', '240,204,,,,240,204,204,204,266,266,266,,266,266,266,266,266,266,266', ',,,,,,266,266,266,,,266,266,266,266,266,,266,266,,,266,266,,,,,266,', '266,,266,,,,266,,266,,266,266,266,266,,,,,266,266,,,266,266,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,250,250,250', ',250,250,250,250,250,250,250,,,,,,,250,250,250,,,250,250,250,250,250', ',250,250,,,250,250,,,,,250,,250,,250,,,,250,,250,,250,250,250,250,,', ',,250,250,,,250,250,267,267,267,,267,267,267,267,267,267,267,,,,,,,267', '267,267,,,267,267,267,267,267,,267,267,,,267,267,,,,,267,,267,,267,', ',,267,,267,,267,267,267,267,,,,,267,267,,,267,267,212,212,212,,212,212', '212,212,212,212,212,,,,,,,212,212,212,,,212,212,212,212,212,,212,212', ',,212,212,,,,,212,,212,,212,,,,212,,212,,212,212,212,212,,,,,212,212', ',,212,212,80,80,80,,80,80,80,80,80,80,80,,,,,,,80,80,80,,,80,80,80,80', '80,,80,80,,,80,80,,,,,80,,80,,80,,,,80,,80,,80,80,80,80,,,,,80,80,,', '80,80,378,378,378,,378,378,378,378,378,378,378,,,,,,,378,378,378,,,378', '378,378,378,378,,378,378,,,378,378,,,,,378,,378,,378,,,,378,,378,,378', '378,378,378,,,,,378,378,,,378,378,379,379,379,,379,379,379,379,379,379', '379,,,,,,,379,379,379,,,379,379,379,379,379,,379,379,,,379,379,,,,,379', ',379,,379,,,,379,,379,,379,379,379,379,,,,,379,379,,,379,379,211,211', '211,,211,211,211,211,211,211,211,,,,,,,211,211,211,211,211,211,211,211', '211,211,,211,211,,,211,211,,,,,211,,211,,211,,,,211,,211,,211,211,211', '211,,,,,211,211,,,211,211,322,322,322,,322,322,322,322,322,322,322,', ',,,,,322,322,322,322,322,322,322,322,322,322,,322,322,,,322,322,,,,', '322,,322,,322,,,,322,,322,,322,322,322,322,,,,,322,322,,,322,322,213', '213,213,,213,213,213,213,213,213,213,,,,,,,213,213,213,,,213,213,213', '213,213,,213,213,,,213,213,,,,,213,,213,,213,,,,213,,213,,213,213,213', '213,,,,,213,213,51,51,213,213,,,,51,,51,,,222,222,,,,51,,222,51,222', ',,51,51,,51,,222,,,222,,,,222,222,,222,,51,51,,,,51,,,,238,238,,222', '222,,,238,222,238,51,51,,,,,,238,,,238,,222,222,238,238,,238,239,239', ',,,,,239,,239,,,,,238,,,239,238,,239,,,,239,239,238,239,241,241,238', '238,,,,241,,241,,,,,239,,,241,239,,241,,,,241,241,239,241,,,,239,,,', ',,,,,,,241,,,,241,,,,,,,,241,,,,,241' ] racc_action_check = arr = ::Array.new(3835, nil) idx = 0 clist.each do |str| str.split(',', -1).each do |i| arr[idx] = i.to_i unless i.empty? idx += 1 end end racc_action_pointer = [ 98, 133, 95, 320, 158, 895, 148, nil, 1926, 84, nil, 25, 159, 293, 485, 52, 186, 690, 116, 117, -42, 12, 39, 31, -39, nil, nil, nil, 261, 35, 3031, nil, 0, 107, 109, nil, nil, nil, nil, nil, nil, nil, nil, nil, -21, nil, nil, nil, nil, 2127, 2194, 3667, nil, nil, 111, nil, nil, nil, nil, nil, -7, 400, 113, 137, 145, nil, nil, nil, nil, nil, nil, nil, -2, 730, 133, 134, 135, 136, 137, 144, 3287, 157, 163, 174, 21, 175, 177, 169, 179, 166, -24, nil, nil, nil, nil, nil, 177, nil, nil, 163, 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, 187, nil, 188, 190, 2261, 14, nil, nil, nil, nil, 2828, 171, 196, 177, 200, 187, 188, 189, 208, 192, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 761, 218, 207, nil, 195, 218, nil, 219, nil, 221, nil, 222, 223, nil, 1395, nil, 1596, 1663, 230, 231, 248, 249, 250, 255, 257, 258, nil, 232, nil, nil, 294, 207, 85, 264, 252, 263, 267, nil, 269, 2328, 2462, 2529, 270, 2596, 2730, 271, 2895, nil, nil, nil, nil, nil, nil, 3479, 3223, 3607, 271, 49, nil, -23, nil, nil, 65, nil, 3679, 132, 199, 266, 333, nil, 260, 258, nil, 281, 431, 498, 529, 2, nil, 596, 3717, 3745, 2904, 3773, nil, nil, 283, nil, 663, nil, 314, 316, 3095, 320, 119, nil, nil, nil, nil, nil, nil, nil, nil, 291, 297, 295, 51, -6, 2967, 3159, nil, 305, 296, 73, 828, 283, 962, 1029, 298, nil, nil, nil, 1096, nil, nil, 1163, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 316, 1194, nil, 313, nil, nil, nil, 318, 1261, nil, nil, nil, 837, nil, nil, 1328, nil, nil, nil, 317, nil, nil, 1462, 1529, 3543, 7, 304, 308, 311, 313, 313, 1730, 359, nil, 307, nil, nil, nil, nil, nil, 1761, nil, 21, 1828, 1895, 308, 331, nil, 332, nil, nil, nil, 320, nil, nil, 335, 334, 335, 315, 341, nil, nil, 1993, 2060, 347, -41, 349, 55, 346, nil, -2, nil, nil, 330, nil, 2395, -8, nil, 18, 32, 3351, 3415, nil, 1, 50, 54, 2663, nil, 45, 2797, nil, nil, 99, nil, nil, nil, 67, nil, 84, 85, nil, nil, nil, nil, nil, nil, nil, nil, 75, 80, nil, nil ] racc_action_default = [ -232, -232, -165, -106, -232, -232, -232, -1, -7, -232, -2, -106, -106, -106, -106, -106, -106, -106, -232, -232, -232, -232, -232, -232, -232, -129, -130, -3, -232, -232, -232, -4, -46, -46, -46, -53, -54, -55, -56, -57, -58, -59, -60, -61, -77, -63, -64, -65, -66, -232, -232, -68, -81, -82, -232, -127, -128, -131, -132, 410, -31, -24, -9, -232, -167, -107, -108, -109, -110, -111, -112, -113, -232, -232, -165, -118, -165, -165, -165, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -165, -174, -175, -176, -177, -178, -179, -180, -181, -182, -232, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -207, -208, -209, -210, -211, -212, -213, -224, -227, -228, -232, -232, -232, -232, -50, -51, -52, -62, -232, -232, -91, -232, -70, -232, -232, -232, -232, -232, -95, -96, -97, -98, -99, -100, -101, -102, -103, -104, -105, -87, -232, -232, -35, -232, -10, -12, -13, -15, -16, -18, -19, -20, -23, -232, -26, -232, -232, -232, -53, -55, -56, -57, -58, -132, -128, -166, -232, -114, -115, -169, -133, -232, -125, -232, -232, -232, -231, -232, -232, -232, -232, -232, -232, -232, -232, -232, -223, -183, -184, -185, -186, -187, -232, -232, -232, -232, -78, -49, -93, -94, -67, -232, -75, -68, -232, -232, -232, -232, -76, -77, -232, -84, -85, -232, -232, -232, -36, -8, -24, -24, -24, -24, -24, -25, -27, -232, -28, -232, -168, -232, -169, -232, -232, -133, -135, -136, -137, -138, -139, -140, -141, -142, -232, -232, -157, -232, -232, -232, -232, -119, -232, -163, -133, -232, -232, -232, -232, -165, -216, -217, -218, -232, -220, -221, -232, -225, -226, -229, -230, -47, -48, -79, -80, -92, -69, -71, -72, -73, -74, -232, -87, -88, -89, -5, -6, -32, -232, -44, -11, -14, -17, -232, -21, -22, -232, -29, -116, -170, -232, -117, -134, -232, -232, -232, -232, -148, -150, -154, -154, -120, -232, -232, -126, -232, -124, -214, -215, -219, -222, -232, -86, -87, -232, -232, -232, -38, -40, -41, -43, -45, -30, -165, -143, -144, -232, -232, -232, -232, -159, -161, -162, -232, -232, -232, -232, -232, -232, -232, -122, -133, -83, -90, -232, -37, -44, -44, -171, -172, -165, -232, -232, -158, -232, -232, -232, -232, -155, -232, -232, -121, -164, -232, -33, -39, -42, -165, -145, -232, -232, -160, -149, -151, -152, -156, -153, -123, -173, -165, -165, -146, -147 ] racc_goto_table = [ 31, 19, 62, 7, 196, 145, 138, 251, 63, 19, 19, 19, 19, 19, 19, 19, 146, 126, 229, 75, 76, 77, 231, 346, 162, 348, 268, 89, 344, 356, 362, 364, 343, 248, 188, 78, 191, 192, 193, 133, 134, 135, 309, 311, 312, 140, 305, 218, 160, 205, 10, 370, 393, 189, 308, 302, 173, 375, 65, 66, 67, 68, 69, 70, 71, 159, 271, 186, 187, 322, 319, 60, 1, 27, 194, 74, 289, nil, nil, nil, nil, nil, 200, nil, 395, nil, nil, 398, 214, 330, 346, 346, 348, 348, 316, 344, 300, 301, 303, 392, nil, 405, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 408, 409, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 244, nil, nil, 217, nil, nil, nil, nil, 286, 287, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 228, nil, nil, nil, nil, nil, nil, 339, nil, nil, nil, 231, nil, nil, nil, 242, nil, 243, 245, nil, nil, nil, 317, nil, 145, 292, nil, nil, nil, nil, nil, nil, 247, nil, 390, 293, 270, 269, 326, 327, 277, 278, 279, nil, 281, 282, 285, 284, 307, 388, 369, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 294, 295, 296, 297, nil, nil, nil, nil, 228, 228, 228, nil, nil, nil, 173, nil, nil, nil, nil, nil, nil, nil, nil, 314, nil, nil, nil, nil, 353, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 324, 325, 244, nil, nil, 331, nil, 333, 334, nil, nil, nil, nil, 336, nil, 335, 337, nil, nil, nil, nil, nil, nil, nil, 366, nil, nil, nil, nil, nil, nil, 228, nil, nil, nil, nil, nil, nil, nil, 173, 396, 397, nil, nil, nil, nil, 349, nil, nil, nil, nil, nil, nil, 351, 352, 382, 383, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 228, nil, nil, nil, 371, 243, 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, 270, nil, nil, nil, nil, 173, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 401, nil, nil, 403 ] racc_goto_check = [ 5, 30, 12, 2, 62, 22, 29, 48, 50, 30, 30, 30, 30, 30, 30, 30, 34, 70, 37, 30, 30, 30, 10, 15, 11, 17, 49, 30, 13, 65, 64, 64, 25, 46, 6, 33, 6, 6, 6, 28, 28, 28, 18, 18, 18, 5, 24, 36, 23, 6, 3, 38, 26, 47, 14, 9, 5, 63, 3, 3, 3, 3, 3, 3, 3, 8, 51, 5, 5, 61, 48, 7, 1, 4, 69, 32, 31, nil, nil, nil, nil, nil, 30, nil, 63, nil, nil, 65, 29, 48, 15, 15, 17, 17, 46, 13, 10, 10, 10, 25, nil, 63, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 63, 63, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 22, nil, nil, 12, nil, nil, nil, nil, 62, 62, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 12, nil, nil, nil, nil, nil, nil, 37, nil, nil, nil, 10, nil, nil, nil, 5, nil, 5, 5, nil, nil, nil, 62, nil, 22, 29, nil, nil, nil, nil, nil, nil, 50, nil, 48, 34, 30, 50, 62, 62, 5, 5, 5, nil, 5, 5, 70, 5, 11, 49, 10, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 5, 5, 5, 5, nil, nil, nil, nil, 12, 12, 12, nil, nil, nil, 5, nil, nil, nil, nil, nil, nil, nil, nil, 5, nil, nil, nil, nil, 62, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 30, 30, 22, nil, nil, 5, nil, 5, 5, nil, nil, nil, nil, 5, nil, 2, 5, nil, nil, nil, nil, nil, nil, nil, 29, nil, nil, nil, nil, nil, nil, 12, nil, nil, nil, nil, nil, nil, nil, 5, 62, 62, nil, nil, nil, nil, 5, nil, nil, nil, nil, nil, nil, 5, 5, 29, 29, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 12, nil, nil, nil, 5, 5, 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, 30, nil, nil, nil, nil, 5, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 5, nil, nil, 5 ] racc_goto_pointer = [ nil, 72, 1, 47, 69, -5, -40, 63, 5, -179, -136, -37, -6, -278, -184, -283, nil, -281, -197, nil, nil, nil, -46, -12, -189, -274, -322, nil, 7, -43, -2, -139, 55, 11, -35, nil, -90, -140, -289, nil, nil, nil, nil, nil, nil, nil, -155, -22, -182, -164, -1, -125, nil, nil, nil, nil, nil, nil, nil, nil, nil, -194, -76, -293, -296, -294, nil, nil, nil, -5, -13, nil ] racc_goto_default = [ nil, nil, 376, nil, nil, 139, 8, nil, nil, nil, 52, nil, 44, 163, 164, 165, 166, 167, 168, 169, 170, 171, 176, nil, nil, nil, 345, 347, nil, nil, 32, nil, 33, 34, nil, 141, 53, nil, 230, 11, 12, 13, 14, 15, 16, 17, nil, nil, nil, nil, nil, nil, 252, 253, 254, 255, 256, 257, 258, 259, 260, nil, 128, nil, nil, nil, 357, 249, 90, nil, nil, 127 ] racc_reduce_table = [ 0, 0, :racc_error, 2, 75, :_reduce_1, 2, 75, :_reduce_2, 2, 75, :_reduce_3, 2, 75, :_reduce_4, 5, 76, :_reduce_5, 1, 83, :_reduce_none, 0, 81, :_reduce_7, 3, 81, :_reduce_8, 1, 81, :_reduce_9, 1, 85, :_reduce_10, 3, 85, :_reduce_11, 1, 85, :_reduce_12, 1, 88, :_reduce_13, 3, 88, :_reduce_14, 1, 88, :_reduce_15, 1, 90, :_reduce_16, 3, 90, :_reduce_17, 1, 90, :_reduce_18, 1, 92, :_reduce_19, 1, 92, :_reduce_20, 3, 92, :_reduce_21, 3, 92, :_reduce_22, 1, 92, :_reduce_23, 0, 95, :_reduce_24, 2, 95, :_reduce_25, 1, 87, :_reduce_26, 2, 89, :_reduce_27, 2, 91, :_reduce_28, 3, 93, :_reduce_29, 4, 94, :_reduce_30, 0, 82, :_reduce_31, 3, 82, :_reduce_32, 6, 82, :_reduce_33, 0, 97, :_reduce_34, 1, 97, :_reduce_35, 0, 98, :_reduce_36, 3, 98, :_reduce_37, 1, 99, :_reduce_38, 3, 99, :_reduce_39, 1, 99, :_reduce_40, 1, 100, :_reduce_41, 3, 100, :_reduce_42, 1, 100, :_reduce_43, 0, 101, :_reduce_44, 1, 101, :_reduce_45, 0, 102, :_reduce_46, 3, 102, :_reduce_47, 4, 86, :_reduce_48, 3, 86, :_reduce_49, 2, 86, :_reduce_50, 2, 86, :_reduce_51, 2, 86, :_reduce_52, 1, 86, :_reduce_53, 1, 86, :_reduce_54, 1, 86, :_reduce_55, 1, 86, :_reduce_56, 1, 86, :_reduce_57, 1, 86, :_reduce_58, 1, 86, :_reduce_59, 1, 86, :_reduce_60, 1, 86, :_reduce_61, 2, 86, :_reduce_62, 1, 86, :_reduce_63, 1, 86, :_reduce_64, 1, 86, :_reduce_65, 1, 86, :_reduce_66, 3, 86, :_reduce_67, 0, 108, :_reduce_68, 3, 108, :_reduce_69, 1, 108, :_reduce_none, 3, 109, :_reduce_71, 3, 109, :_reduce_72, 3, 109, :_reduce_73, 3, 109, :_reduce_74, 3, 84, :_reduce_75, 3, 84, :_reduce_76, 1, 84, :_reduce_none, 0, 105, :_reduce_78, 1, 105, :_reduce_79, 1, 105, :_reduce_80, 1, 79, :_reduce_none, 1, 79, :_reduce_82, 6, 79, :_reduce_83, 1, 111, :_reduce_none, 1, 111, :_reduce_85, 3, 111, :_reduce_86, 0, 112, :_reduce_87, 2, 112, :_reduce_88, 2, 112, :_reduce_89, 4, 112, :_reduce_90, 1, 103, :_reduce_91, 3, 103, :_reduce_92, 3, 110, :_reduce_93, 3, 110, :_reduce_94, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 1, 96, :_reduce_none, 0, 77, :_reduce_106, 2, 77, :_reduce_107, 2, 77, :_reduce_108, 2, 77, :_reduce_109, 2, 77, :_reduce_110, 2, 77, :_reduce_111, 2, 77, :_reduce_112, 2, 77, :_reduce_113, 3, 118, :_reduce_114, 3, 117, :_reduce_115, 5, 113, :_reduce_116, 5, 114, :_reduce_117, 0, 121, :_reduce_118, 2, 121, :_reduce_119, 3, 121, :_reduce_120, 5, 121, :_reduce_121, 6, 115, :_reduce_122, 8, 116, :_reduce_123, 5, 119, :_reduce_124, 0, 125, :_reduce_125, 2, 125, :_reduce_126, 1, 106, :_reduce_none, 1, 106, :_reduce_128, 1, 104, :_reduce_none, 1, 104, :_reduce_130, 1, 107, :_reduce_none, 1, 107, :_reduce_132, 0, 122, :_reduce_133, 2, 122, :_reduce_134, 1, 126, :_reduce_none, 1, 126, :_reduce_none, 1, 126, :_reduce_none, 1, 126, :_reduce_none, 1, 126, :_reduce_none, 1, 126, :_reduce_none, 1, 126, :_reduce_none, 1, 126, :_reduce_none, 3, 132, :_reduce_143, 3, 132, :_reduce_144, 5, 127, :_reduce_145, 7, 128, :_reduce_146, 7, 129, :_reduce_147, 2, 130, :_reduce_148, 5, 130, :_reduce_149, 2, 131, :_reduce_150, 5, 131, :_reduce_151, 5, 133, :_reduce_152, 5, 134, :_reduce_153, 0, 138, :_reduce_154, 2, 138, :_reduce_155, 3, 138, :_reduce_156, 0, 135, :_reduce_157, 3, 135, :_reduce_158, 1, 139, :_reduce_159, 3, 139, :_reduce_160, 1, 140, :_reduce_161, 1, 140, :_reduce_162, 1, 123, :_reduce_163, 4, 123, :_reduce_164, 0, 80, :_reduce_165, 3, 80, :_reduce_166, 1, 124, :_reduce_167, 3, 124, :_reduce_168, 0, 120, :_reduce_169, 2, 120, :_reduce_170, 4, 141, :_reduce_171, 1, 137, :_reduce_172, 3, 137, :_reduce_173, 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_182, 2, 136, :_reduce_183, 2, 136, :_reduce_184, 2, 136, :_reduce_185, 2, 136, :_reduce_186, 2, 136, :_reduce_187, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_209, 1, 142, :_reduce_210, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 1, 142, :_reduce_none, 5, 78, :_reduce_214, 5, 78, :_reduce_215, 4, 78, :_reduce_216, 4, 78, :_reduce_217, 4, 78, :_reduce_218, 5, 78, :_reduce_219, 4, 78, :_reduce_220, 4, 78, :_reduce_221, 5, 78, :_reduce_222, 3, 78, :_reduce_223, 2, 78, :_reduce_224, 4, 78, :_reduce_225, 3, 144, :_reduce_226, 1, 144, :_reduce_227, 1, 145, :_reduce_228, 3, 145, :_reduce_229, 3, 145, :_reduce_230, 1, 143, :_reduce_231 ] racc_reduce_n = 232 racc_shift_n = 410 racc_token_table = { false => 0, :error => 1, :kCLASS => 2, :kMODULE => 3, :kINTERFACE => 4, :kDEF => 5, :kEND => 6, :kNIL => 7, :kBOOL => 8, :kANY => 9, :kVOID => 10, :kTYPE => 11, :kINCOMPATIBLE => 12, :kAT_TYPE => 13, :kAT_IMPLEMENTS => 14, :kAT_DYNAMIC => 15, :kCONST => 16, :kVAR => 17, :kRETURN => 18, :kBLOCK => 19, :kBREAK => 20, :kMETHOD => 21, :kSELF => 22, :kSELFQ => 23, :kATTR_READER => 24, :kATTR_ACCESSOR => 25, :kINSTANCE => 26, :kINCLUDE => 27, :kEXTEND => 28, :kIVAR => 29, :kCONSTRUCTOR => 30, :kNOCONSTRUCTOR => 31, :kEXTENSION => 32, :tARROW => 33, :tBANG => 34, :tBAR => 35, :tCOLON => 36, :tCOMMA => 37, :tDOT => 38, :tEQ => 39, :tGT => 40, :tGVAR => 41, :tHAT => 42, :tINT => 43, :tINTERFACE_NAME => 44, :tIVAR_NAME => 45, :tLBRACE => 46, :tLBRACKET => 47, :tIDENT => 48, :tLPAREN => 49, :tLT => 50, :tROCKET => 51, :tMINUS => 52, :tOPERATOR => 53, :tPERCENT => 54, :tPLUS => 55, :tQUESTION => 56, :tRBRACE => 57, :tRBRACKET => 58, :tRPAREN => 59, :tSTAR => 60, :tSTAR2 => 61, :tSTRING => 62, :tSYMBOL => 63, :tUIDENT => 64, :tUMINUS => 65, :tVAR => 66, :type_METHOD => 67, :type_SIGNATURE => 68, :type_ANNOTATION => 69, :type_TYPE => 70, :tQUALIFIED_MODULE_NAME => 71, :tQUALIFIED_INTERFACE_NAME => 72, :tQUALIFIED_ALIAS_NAME => 73 } racc_nt_base = 74 racc_use_result_var = true Racc_arg = [ racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var ] Racc_token_to_s_table = [ "$end", "error", "kCLASS", "kMODULE", "kINTERFACE", "kDEF", "kEND", "kNIL", "kBOOL", "kANY", "kVOID", "kTYPE", "kINCOMPATIBLE", "kAT_TYPE", "kAT_IMPLEMENTS", "kAT_DYNAMIC", "kCONST", "kVAR", "kRETURN", "kBLOCK", "kBREAK", "kMETHOD", "kSELF", "kSELFQ", "kATTR_READER", "kATTR_ACCESSOR", "kINSTANCE", "kINCLUDE", "kEXTEND", "kIVAR", "kCONSTRUCTOR", "kNOCONSTRUCTOR", "kEXTENSION", "tARROW", "tBANG", "tBAR", "tCOLON", "tCOMMA", "tDOT", "tEQ", "tGT", "tGVAR", "tHAT", "tINT", "tINTERFACE_NAME", "tIVAR_NAME", "tLBRACE", "tLBRACKET", "tIDENT", "tLPAREN", "tLT", "tROCKET", "tMINUS", "tOPERATOR", "tPERCENT", "tPLUS", "tQUESTION", "tRBRACE", "tRBRACKET", "tRPAREN", "tSTAR", "tSTAR2", "tSTRING", "tSYMBOL", "tUIDENT", "tUMINUS", "tVAR", "type_METHOD", "type_SIGNATURE", "type_ANNOTATION", "type_TYPE", "tQUALIFIED_MODULE_NAME", "tQUALIFIED_INTERFACE_NAME", "tQUALIFIED_ALIAS_NAME", "$start", "target", "method_type", "signatures", "annotation", "type", "type_params", "params", "block_opt", "return_type", "paren_type", "params0", "simple_type", "required_param", "params1", "optional_param", "params2", "rest_param", "params3", "required_keyword", "optional_keyword", "params4", "keyword", "block_optional", "block_params", "block_params0", "block_params1", "block_params2", "application_args", "type_seq", "module_name", "constructor", "interface_name", "alias_name", "hash_elements", "hash_element", "union_seq", "lambda_params", "lambda_params1", "interface", "class_decl", "module_decl", "extension_decl", "const_decl", "gvar_decl", "alias_decl", "interface_members", "class_params_super", "class_members", "super_class", "type_param_seq", "self_type_opt", "class_member", "instance_method_member", "module_method_member", "module_instance_method_member", "include_member", "extend_member", "ivar_member", "attr_reader_member", "attr_accessor_member", "method_annotations", "method_name", "method_type_union", "attr_ivar_opt", "method_annotation_seq", "method_annotation_keyword", "interface_method", "method_name0", "subject", "dynamic_names", "dynamic_name" ] Racc_debug_parser = false ##### State transition tables end ##### # reduce 0 omitted module_eval(<<'.,.,', 'parser.y', 19) def _reduce_1(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 23) def _reduce_2(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 27) def _reduce_3(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 31) def _reduce_4(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 36) def _reduce_5(val, _values, result) result = AST::MethodType.new(location: AST::Location.concat(*val.compact.map(&:location)), type_params: val[0], params: val[1]&.value, block: val[2], return_type: val[4]) result end .,., # reduce 6 omitted module_eval(<<'.,.,', 'parser.y', 47) def _reduce_7(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 51) def _reduce_8(val, _values, result) result = LocatedValue.new(location: val[0].location + val[2].location, value: val[1]) result end .,., module_eval(<<'.,.,', 'parser.y', 56) def _reduce_9(val, _values, result) result = LocatedValue.new(location: val[0].location, value: AST::MethodType::Params::Required.new(location: val[0].location, type: val[0])) result end .,., module_eval(<<'.,.,', 'parser.y', 62) def _reduce_10(val, _values, result) result = AST::MethodType::Params::Required.new(location: val[0].location, type: val[0]) result end .,., module_eval(<<'.,.,', 'parser.y', 66) def _reduce_11(val, _values, result) location = val[0].location result = AST::MethodType::Params::Required.new(location: location, type: val[0], next_params: val[2]) result end .,., module_eval(<<'.,.,', 'parser.y', 73) def _reduce_12(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'parser.y', 78) def _reduce_13(val, _values, result) result = AST::MethodType::Params::Optional.new(location: val[0].first, type: val[0].last) result end .,., module_eval(<<'.,.,', 'parser.y', 82) def _reduce_14(val, _values, result) location = val[0].first result = AST::MethodType::Params::Optional.new(type: val[0].last, location: location, next_params: val[2]) result end .,., module_eval(<<'.,.,', 'parser.y', 87) def _reduce_15(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'parser.y', 92) def _reduce_16(val, _values, result) result = AST::MethodType::Params::Rest.new(location: val[0].first, type: val[0].last) result end .,., module_eval(<<'.,.,', 'parser.y', 96) def _reduce_17(val, _values, result) loc = val[0].first result = AST::MethodType::Params::Rest.new(location: loc, type: val[0].last, next_params: val[2]) result end .,., module_eval(<<'.,.,', 'parser.y', 101) def _reduce_18(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'parser.y', 106) def _reduce_19(val, _values, result) location, name, type = val[0] result = AST::MethodType::Params::RequiredKeyword.new(location: location, name: name, type: type) result end .,., module_eval(<<'.,.,', 'parser.y', 111) def _reduce_20(val, _values, result) location, name, type = val[0] result = AST::MethodType::Params::OptionalKeyword.new(location: location, name: name, type: type) result end .,., module_eval(<<'.,.,', 'parser.y', 116) def _reduce_21(val, _values, result) location, name, type = val[0] result = AST::MethodType::Params::RequiredKeyword.new(location: location, name: name, type: type, next_params: val[2]) result end .,., module_eval(<<'.,.,', 'parser.y', 124) def _reduce_22(val, _values, result) location, name, type = val[0] result = AST::MethodType::Params::OptionalKeyword.new(location: location, name: name, type: type, next_params: val[2]) result end .,., module_eval(<<'.,.,', 'parser.y', 132) def _reduce_23(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'parser.y', 137) def _reduce_24(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 141) def _reduce_25(val, _values, result) result = AST::MethodType::Params::RestKeyword.new(location: val[0].location + val[1].location, type: val[1]) result end .,., module_eval(<<'.,.,', 'parser.y', 147) def _reduce_26(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'parser.y', 152) def _reduce_27(val, _values, result) result = [ val[0].location + val[1].location, val[1] ] result end .,., module_eval(<<'.,.,', 'parser.y', 160) def _reduce_28(val, _values, result) result = [ val[0].location + val[1].location, val[1] ] result end .,., module_eval(<<'.,.,', 'parser.y', 168) def _reduce_29(val, _values, result) result = [ val[0].location + val[2].location, val[0].value, val[2] ] result end .,., module_eval(<<'.,.,', 'parser.y', 177) def _reduce_30(val, _values, result) result = [ val[0].location + val[3].location, val[1].value, val[3] ] result end .,., module_eval(<<'.,.,', 'parser.y', 186) def _reduce_31(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 190) def _reduce_32(val, _values, result) result = AST::MethodType::Block.new(params: nil, return_type: nil, location: (val[0] || val[1]).location + val[2].location, optional: val[0]&.value || false) result end .,., module_eval(<<'.,.,', 'parser.y', 197) def _reduce_33(val, _values, result) result = AST::MethodType::Block.new(params: val[2], return_type: val[4], location: (val[0] || val[1]).location + val[5].location, optional: val[0]&.value || false) result end .,., module_eval(<<'.,.,', 'parser.y', 205) def _reduce_34(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 209) def _reduce_35(val, _values, result) result = LocatedValue.new(location: val[0].location, value: true) result end .,., module_eval(<<'.,.,', 'parser.y', 214) def _reduce_36(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 218) def _reduce_37(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 223) def _reduce_38(val, _values, result) result = AST::MethodType::Params::Required.new(location: val[0].location, type: val[0]) result end .,., module_eval(<<'.,.,', 'parser.y', 227) def _reduce_39(val, _values, result) result = AST::MethodType::Params::Required.new(location: val[0].location, type: val[0], next_params: val[2]) result end .,., module_eval(<<'.,.,', 'parser.y', 233) def _reduce_40(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'parser.y', 238) def _reduce_41(val, _values, result) result = AST::MethodType::Params::Optional.new(location: val[0].first, type: val[0].last) result end .,., module_eval(<<'.,.,', 'parser.y', 243) def _reduce_42(val, _values, result) loc = val.first[0] + (val[2] || val[1]).location type = val.first[1] next_params = val[2] result = AST::MethodType::Params::Optional.new(location: loc, type: type, next_params: next_params) result end .,., module_eval(<<'.,.,', 'parser.y', 250) def _reduce_43(val, _values, result) result = val[0] result end .,., module_eval(<<'.,.,', 'parser.y', 255) def _reduce_44(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 259) def _reduce_45(val, _values, result) result = AST::MethodType::Params::Rest.new(location: val[0].first, type: val[0].last) result end .,., module_eval(<<'.,.,', 'parser.y', 264) def _reduce_46(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 268) def _reduce_47(val, _values, result) result = LocatedValue.new(location: val[0].location + val[2].location, value: val[1]) result end .,., module_eval(<<'.,.,', 'parser.y', 274) def _reduce_48(val, _values, result) loc = val[0].location + (val[3] || val[2]).location result = AST::Types::Name::Class.new(name: val[0].value, constructor: val[3]&.value, location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 281) def _reduce_49(val, _values, result) loc = val[0].location + val[2].location result = AST::Types::Name::Module.new(name: val[0].value, location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 286) def _reduce_50(val, _values, result) loc = val[0].location + val[1]&.location result = AST::Types::Name::Instance.new(name: val[0].value, location: loc, args: val[1]&.value || []) result end .,., module_eval(<<'.,.,', 'parser.y', 293) def _reduce_51(val, _values, result) loc = val[0].location + val[1]&.location result = AST::Types::Name::Interface.new(name: val[0].value, location: loc, args: val[1]&.value || []) result end .,., module_eval(<<'.,.,', 'parser.y', 300) def _reduce_52(val, _values, result) loc = val[0].location + val[1]&.location result = AST::Types::Name::Alias.new(name: val[0].value, location: loc, args: val[1]&.value || []) result end .,., module_eval(<<'.,.,', 'parser.y', 307) def _reduce_53(val, _values, result) result = AST::Types::Any.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 311) def _reduce_54(val, _values, result) result = AST::Types::Var.new(location: val[0].location, name: val[0].value) result end .,., module_eval(<<'.,.,', 'parser.y', 315) def _reduce_55(val, _values, result) result = AST::Types::Class.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 319) def _reduce_56(val, _values, result) result = AST::Types::Class.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 323) def _reduce_57(val, _values, result) result = AST::Types::Instance.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 327) def _reduce_58(val, _values, result) result = AST::Types::Self.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 331) def _reduce_59(val, _values, result) result = AST::Types::Void.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 335) def _reduce_60(val, _values, result) result = AST::Types::Nil.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 339) def _reduce_61(val, _values, result) result = AST::Types::Boolean.new(location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 343) def _reduce_62(val, _values, result) type = val[0] nil_type = AST::Types::Nil.new(location: val[1].location) result = AST::Types::Union.build(types: [type, nil_type], location: val[0].location + val[1].location) result end .,., module_eval(<<'.,.,', 'parser.y', 349) def _reduce_63(val, _values, result) type = AST::Types::Self.new(location: val[0].location) nil_type = AST::Types::Nil.new(location: val[0].location) result = AST::Types::Union.build(types: [type, nil_type], location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 355) def _reduce_64(val, _values, result) result = AST::Types::Literal.new(value: val[0].value, location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 359) def _reduce_65(val, _values, result) result = AST::Types::Literal.new(value: val[0].value, location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 363) def _reduce_66(val, _values, result) result = AST::Types::Literal.new(value: val[0].value, location: val[0].location) result end .,., module_eval(<<'.,.,', 'parser.y', 367) def _reduce_67(val, _values, result) loc = val[0].location + val[2].location result = AST::Types::Tuple.new(types: val[1], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 373) def _reduce_68(val, _values, result) result = {} result end .,., module_eval(<<'.,.,', 'parser.y', 377) def _reduce_69(val, _values, result) result = val[0].merge(val[2]) result end .,., # reduce 70 omitted module_eval(<<'.,.,', 'parser.y', 382) def _reduce_71(val, _values, result) result = { val[0].value => val[2] } result end .,., module_eval(<<'.,.,', 'parser.y', 386) def _reduce_72(val, _values, result) result = { val[0].value => val[2] } result end .,., module_eval(<<'.,.,', 'parser.y', 390) def _reduce_73(val, _values, result) result = { val[0].value => val[2] } result end .,., module_eval(<<'.,.,', 'parser.y', 394) def _reduce_74(val, _values, result) result = { val[0].value => val[2] } result end .,., module_eval(<<'.,.,', 'parser.y', 399) def _reduce_75(val, _values, result) result = val[1].with_location(val[0].location + val[2].location) result end .,., module_eval(<<'.,.,', 'parser.y', 403) def _reduce_76(val, _values, result) location = val[0].location + val[2].location result = AST::Types::Record.new(elements: val[1], location: location) result end .,., # reduce 77 omitted module_eval(<<'.,.,', 'parser.y', 410) def _reduce_78(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 414) def _reduce_79(val, _values, result) result = LocatedValue.new(location: val[0].location, value: true) result end .,., module_eval(<<'.,.,', 'parser.y', 418) def _reduce_80(val, _values, result) result = LocatedValue.new(location: val[0].location, value: false) result end .,., # reduce 81 omitted module_eval(<<'.,.,', 'parser.y', 424) def _reduce_82(val, _values, result) loc = val[0].first.location + val[0].last.location result = AST::Types::Union.build(types: val[0], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 429) def _reduce_83(val, _values, result) loc = val[0].location + val[5].location result = AST::Types::Proc.new(params: val[2], return_type: val[5], location: loc) result end .,., # reduce 84 omitted module_eval(<<'.,.,', 'parser.y', 436) def _reduce_85(val, _values, result) result = Interface::Params.empty.update(required: [val[0]]) result end .,., module_eval(<<'.,.,', 'parser.y', 440) def _reduce_86(val, _values, result) result = val[2].update(required: [val[0]] + val[2].required) result end .,., module_eval(<<'.,.,', 'parser.y', 445) def _reduce_87(val, _values, result) result = Interface::Params.empty result end .,., module_eval(<<'.,.,', 'parser.y', 449) def _reduce_88(val, _values, result) result = Interface::Params.empty.update(rest: val[1]) result end .,., module_eval(<<'.,.,', 'parser.y', 453) def _reduce_89(val, _values, result) result = Interface::Params.empty.update(optional: [val[1]]) result end .,., module_eval(<<'.,.,', 'parser.y', 457) def _reduce_90(val, _values, result) result = val[3].update(optional: [val[1]] + val[3].optional) result end .,., module_eval(<<'.,.,', 'parser.y', 463) def _reduce_91(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'parser.y', 467) def _reduce_92(val, _values, result) result = [val[0]] + val[2] result end .,., module_eval(<<'.,.,', 'parser.y', 472) def _reduce_93(val, _values, result) result = [val[0], val[2]] result end .,., module_eval(<<'.,.,', 'parser.y', 476) def _reduce_94(val, _values, result) result = [val[0]] + val[2] result end .,., # reduce 95 omitted # reduce 96 omitted # reduce 97 omitted # reduce 98 omitted # reduce 99 omitted # reduce 100 omitted # reduce 101 omitted # reduce 102 omitted # reduce 103 omitted # reduce 104 omitted # reduce 105 omitted module_eval(<<'.,.,', 'parser.y', 493) def _reduce_106(val, _values, result) result = [] result end .,., module_eval(<<'.,.,', 'parser.y', 497) def _reduce_107(val, _values, result) result = [val[0]] + val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 501) def _reduce_108(val, _values, result) result = [val[0]] + val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 505) def _reduce_109(val, _values, result) result = [val[0]] + val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 509) def _reduce_110(val, _values, result) result = [val[0]] + val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 513) def _reduce_111(val, _values, result) result = [val[0]] + val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 517) def _reduce_112(val, _values, result) result = [val[0]] + val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 521) def _reduce_113(val, _values, result) result = [val[0]] + val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 526) def _reduce_114(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Gvar.new( location: loc, name: val[0].value, type: val[2] ) result end .,., module_eval(<<'.,.,', 'parser.y', 536) def _reduce_115(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Const.new( location: loc, name: val[0].value.absolute!, type: val[2] ) result end .,., module_eval(<<'.,.,', 'parser.y', 546) def _reduce_116(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Interface.new( location: loc, name: val[1].value.absolute!, params: val[2], methods: val[3] ) result end .,., module_eval(<<'.,.,', 'parser.y', 557) def _reduce_117(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Class.new(name: val[1].value.absolute!, params: val[2][0], super_class: val[2][1], members: val[3], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 567) def _reduce_118(val, _values, result) result = [nil, nil] result end .,., module_eval(<<'.,.,', 'parser.y', 571) def _reduce_119(val, _values, result) result = [nil, val[1]] result end .,., module_eval(<<'.,.,', 'parser.y', 575) def _reduce_120(val, _values, result) location = val[0].location + val[2].location params = AST::TypeParams.new(location: location, variables: val[1]) result = [params, nil] result end .,., module_eval(<<'.,.,', 'parser.y', 581) def _reduce_121(val, _values, result) location = val[0].location + val[2].location params = AST::TypeParams.new(location: location, variables: val[1]) result = [params, val[4]] result end .,., module_eval(<<'.,.,', 'parser.y', 588) def _reduce_122(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Module.new(name: val[1].value.absolute!, location: loc, params: val[2], self_type: val[3], members: val[4]) result end .,., module_eval(<<'.,.,', 'parser.y', 598) def _reduce_123(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Extension.new(module_name: val[1].value.absolute!, name: val[4].value, location: loc, params: val[2], members: val[6]) result end .,., module_eval(<<'.,.,', 'parser.y', 608) def _reduce_124(val, _values, result) loc = val[0].location + val[4].location result = AST::Signature::Alias.new(location: loc, name: val[1].value.absolute!, params: val[2], type: val[4]) result end .,., module_eval(<<'.,.,', 'parser.y', 617) def _reduce_125(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 621) def _reduce_126(val, _values, result) result = val[1] result end .,., # reduce 127 omitted module_eval(<<'.,.,', 'parser.y', 626) def _reduce_128(val, _values, result) name = Names::Interface.new(name: val[0].value, namespace: AST::Namespace.empty) result = LocatedValue.new(location: val[0].location, value: name) result end .,., # reduce 129 omitted module_eval(<<'.,.,', 'parser.y', 632) def _reduce_130(val, _values, result) name = Names::Module.new(name: val[0].value, namespace: AST::Namespace.empty) result = LocatedValue.new(location: val[0].location, value: name) result end .,., # reduce 131 omitted module_eval(<<'.,.,', 'parser.y', 638) def _reduce_132(val, _values, result) name = Names::Alias.new(name: val[0].value, namespace: AST::Namespace.empty) result = LocatedValue.new(location: val[0].location, value: name) result end .,., module_eval(<<'.,.,', 'parser.y', 644) def _reduce_133(val, _values, result) result = [] result end .,., module_eval(<<'.,.,', 'parser.y', 648) def _reduce_134(val, _values, result) result = [val[0]] + val[1] result end .,., # reduce 135 omitted # reduce 136 omitted # reduce 137 omitted # reduce 138 omitted # reduce 139 omitted # reduce 140 omitted # reduce 141 omitted # reduce 142 omitted module_eval(<<'.,.,', 'parser.y', 662) def _reduce_143(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Members::Ivar.new( location: loc, name: val[0].value, type: val[2] ) result end .,., module_eval(<<'.,.,', 'parser.y', 671) def _reduce_144(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Members::Ivar.new( location: loc, name: :"@type", type: val[2] ) result end .,., module_eval(<<'.,.,', 'parser.y', 681) def _reduce_145(val, _values, result) loc = val.first.location + val.last.last.location result = AST::Signature::Members::Method.new( name: val[2].value, types: val[4], kind: :instance, location: loc, attributes: val[1] || [] ) result end .,., module_eval(<<'.,.,', 'parser.y', 693) def _reduce_146(val, _values, result) loc = val.first.location + val.last.last.location result = AST::Signature::Members::Method.new( name: val[4].value, types: val[6], kind: :module, location: loc, attributes: val[1] || [] ) result end .,., module_eval(<<'.,.,', 'parser.y', 705) def _reduce_147(val, _values, result) loc = val.first.location + val.last.last.location result = AST::Signature::Members::Method.new( name: val[4].value, types: val[6], kind: :module_instance, location: loc, attributes: val[1] || [] ) result end .,., module_eval(<<'.,.,', 'parser.y', 717) def _reduce_148(val, _values, result) loc = val[0].location + val[1].location name = val[1].value result = AST::Signature::Members::Include.new(name: name, location: loc, args: []) result end .,., module_eval(<<'.,.,', 'parser.y', 723) def _reduce_149(val, _values, result) loc = val[0].location + val[4].location name = val[1].value result = AST::Signature::Members::Include.new(name: name, location: loc, args: val[3]) result end .,., module_eval(<<'.,.,', 'parser.y', 730) def _reduce_150(val, _values, result) loc = val[0].location + val[1].location name = val[1].value result = AST::Signature::Members::Extend.new(name: name, location: loc, args: []) result end .,., module_eval(<<'.,.,', 'parser.y', 736) def _reduce_151(val, _values, result) loc = val[0].location + val[4].location name = val[1].value result = AST::Signature::Members::Extend.new(name: name, location: loc, args: val[3]) result end .,., module_eval(<<'.,.,', 'parser.y', 743) def _reduce_152(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Members::Attr.new(location: loc, name: val[1].value, kind: :reader, ivar: val[2], type: val[4]) result end .,., module_eval(<<'.,.,', 'parser.y', 749) def _reduce_153(val, _values, result) loc = val.first.location + val.last.location result = AST::Signature::Members::Attr.new(location: loc, name: val[1].value, kind: :accessor, ivar: val[2], type: val[4]) result end .,., module_eval(<<'.,.,', 'parser.y', 755) def _reduce_154(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 759) def _reduce_155(val, _values, result) result = false result end .,., module_eval(<<'.,.,', 'parser.y', 763) def _reduce_156(val, _values, result) result = val[1].value result end .,., module_eval(<<'.,.,', 'parser.y', 768) def _reduce_157(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 772) def _reduce_158(val, _values, result) result = val[1] result end .,., module_eval(<<'.,.,', 'parser.y', 777) def _reduce_159(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'parser.y', 781) def _reduce_160(val, _values, result) result = [val[0]] + val[2] result end .,., module_eval(<<'.,.,', 'parser.y', 786) def _reduce_161(val, _values, result) result = val[0].value result end .,., module_eval(<<'.,.,', 'parser.y', 790) def _reduce_162(val, _values, result) result = val[0].value result end .,., module_eval(<<'.,.,', 'parser.y', 795) def _reduce_163(val, _values, result) result = AST::Signature::SuperClass.new(location: val[0].location, name: val[0].value, args: []) result end .,., module_eval(<<'.,.,', 'parser.y', 799) def _reduce_164(val, _values, result) loc = val[0].location + val[3].location name = val[0].value result = AST::Signature::SuperClass.new(location: loc, name: name, args: val[2]) result end .,., module_eval(<<'.,.,', 'parser.y', 806) def _reduce_165(val, _values, result) result = nil result end .,., module_eval(<<'.,.,', 'parser.y', 810) def _reduce_166(val, _values, result) location = val[0].location + val[2].location result = AST::TypeParams.new(location: location, variables: val[1]) result end .,., module_eval(<<'.,.,', 'parser.y', 816) def _reduce_167(val, _values, result) result = [val[0].value] result end .,., module_eval(<<'.,.,', 'parser.y', 820) def _reduce_168(val, _values, result) result = [val[0].value] + val[2] result end .,., module_eval(<<'.,.,', 'parser.y', 825) def _reduce_169(val, _values, result) result = [] result end .,., module_eval(<<'.,.,', 'parser.y', 829) def _reduce_170(val, _values, result) result = val[1].unshift(val[0]) result end .,., module_eval(<<'.,.,', 'parser.y', 834) def _reduce_171(val, _values, result) loc = val[0].location + val[3].last.location result = AST::Signature::Interface::Method.new(location: loc, name: val[1].value, types: val[3]) result end .,., module_eval(<<'.,.,', 'parser.y', 840) def _reduce_172(val, _values, result) result = [val[0]] result end .,., module_eval(<<'.,.,', 'parser.y', 844) def _reduce_173(val, _values, result) result = [val[0]] + val[2] result end .,., # reduce 174 omitted # reduce 175 omitted # reduce 176 omitted # reduce 177 omitted # reduce 178 omitted # reduce 179 omitted # reduce 180 omitted # reduce 181 omitted module_eval(<<'.,.,', 'parser.y', 857) def _reduce_182(val, _values, result) result = LocatedValue.new(location: val[0].location, value: :|) result end .,., module_eval(<<'.,.,', 'parser.y', 861) def _reduce_183(val, _values, result) raise ParseError, "\nunexpected method name #{val[0].to_s} =" unless val[0].location.pred?(val[1].location) result = LocatedValue.new(location: val[0].location + val[1].location, value: :"#{val[0].value}=") result end .,., module_eval(<<'.,.,', 'parser.y', 867) def _reduce_184(val, _values, result) raise ParseError, "\nunexpected method name #{val[0].to_s} ?" unless val[0].location.pred?(val[1].location) result = LocatedValue.new(location: val[0].location + val[1].location, value: :"#{val[0].value}?") result end .,., module_eval(<<'.,.,', 'parser.y', 873) def _reduce_185(val, _values, result) raise ParseError, "\nunexpected method name #{val[0].to_s} !" unless val[0].location.pred?(val[1].location) result = LocatedValue.new(location: val[0].location + val[1].location, value: :"#{val[0].value}!") result end .,., module_eval(<<'.,.,', 'parser.y', 879) def _reduce_186(val, _values, result) raise ParseError, "\nunexpected method name > >" unless val[0].location.pred?(val[1].location) result = LocatedValue.new(location: val[0].location + val[1].location, value: :>>) result end .,., module_eval(<<'.,.,', 'parser.y', 884) def _reduce_187(val, _values, result) raise ParseError, "\nunexpected method name #{val[0].to_s} ?" unless val[0].location.pred?(val[1].location) result = LocatedValue.new(location: val[0].location + val[1].location, value: :"nil?") result end .,., # reduce 188 omitted # reduce 189 omitted # reduce 190 omitted # reduce 191 omitted # reduce 192 omitted # reduce 193 omitted # reduce 194 omitted # reduce 195 omitted # reduce 196 omitted # reduce 197 omitted # reduce 198 omitted # reduce 199 omitted # reduce 200 omitted # reduce 201 omitted # reduce 202 omitted # reduce 203 omitted # reduce 204 omitted # reduce 205 omitted # reduce 206 omitted # reduce 207 omitted # reduce 208 omitted module_eval(<<'.,.,', 'parser.y', 912) def _reduce_209(val, _values, result) result = LocatedValue.new(location: val[0].location, value: :constructor) result end .,., module_eval(<<'.,.,', 'parser.y', 916) def _reduce_210(val, _values, result) result = LocatedValue.new(location: val[0].location, value: :noconstructor) result end .,., # reduce 211 omitted # reduce 212 omitted # reduce 213 omitted module_eval(<<'.,.,', 'parser.y', 924) def _reduce_214(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::VarType.new(location: loc, name: val[2].value, type: val[4]) result end .,., module_eval(<<'.,.,', 'parser.y', 931) def _reduce_215(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::MethodType.new(location: loc, name: val[2].value, type: val[4]) result end .,., module_eval(<<'.,.,', 'parser.y', 938) def _reduce_216(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::ReturnType.new(type: val[3], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 943) def _reduce_217(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::BlockType.new(type: val[3], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 948) def _reduce_218(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::SelfType.new(type: val[3], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 953) def _reduce_219(val, _values, result) loc = val[0].location + val[4].location result = AST::Annotation::ConstType.new(name: val[2].value, type: val[4], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 960) def _reduce_220(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::InstanceType.new(type: val[3], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 965) def _reduce_221(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::ModuleType.new(type: val[3], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 970) def _reduce_222(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::IvarType.new(name: val[2].value, type: val[4], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 975) def _reduce_223(val, _values, result) loc = val[0].location + (val[2]&.location || val[1].location) args = val[2]&.variables || [] name = AST::Annotation::Implements::Module.new(name: val[1].value, args: args) result = AST::Annotation::Implements.new(name: name, location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 982) def _reduce_224(val, _values, result) loc = val[0].location + val[1].last.location result = AST::Annotation::Dynamic.new(names: val[1], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 987) def _reduce_225(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::BreakType.new(type: val[3], location: loc) result end .,., module_eval(<<'.,.,', 'parser.y', 993) def _reduce_226(val, _values, result) result = [val[0]] + val[2] result end .,., module_eval(<<'.,.,', 'parser.y', 997) def _reduce_227(val, _values, result) result = val result end .,., module_eval(<<'.,.,', 'parser.y', 1002) def _reduce_228(val, _values, result) result = AST::Annotation::Dynamic::Name.new(name: val[0].value, location: val[0].location, kind: :instance) result end .,., module_eval(<<'.,.,', 'parser.y', 1006) def _reduce_229(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::Dynamic::Name.new(name: val[2].value, location: loc, kind: :module) result end .,., module_eval(<<'.,.,', 'parser.y', 1011) def _reduce_230(val, _values, result) loc = val.first.location + val.last.location result = AST::Annotation::Dynamic::Name.new(name: val[2].value, location: loc, kind: :module_instance) result end .,., module_eval(<<'.,.,', 'parser.y', 1017) def _reduce_231(val, _values, result) result = val[0] result end .,., def _reduce_none(val, _values, result) val[0] end end # class Parser end # module Steep