Class: Ruby24Parser

Inherits:
RubyParser::Parser show all
Includes:
RubyLexer::State::Values
Defined in:
lib/ruby24_parser.rb

Direct Known Subclasses

RubyParser::V24

Constant Summary collapse

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",
"kDEF",
"kUNDEF",
"kBEGIN",
"kRESCUE",
"kENSURE",
"kEND",
"kIF",
"kUNLESS",
"kTHEN",
"kELSIF",
"kELSE",
"kCASE",
"kWHEN",
"kWHILE",
"kUNTIL",
"kFOR",
"kBREAK",
"kNEXT",
"kREDO",
"kRETRY",
"kIN",
"kDO",
"kDO_COND",
"kDO_BLOCK",
"kDO_LAMBDA",
"kRETURN",
"kYIELD",
"kSUPER",
"kSELF",
"kNIL",
"kTRUE",
"kFALSE",
"kAND",
"kOR",
"kNOT",
"kIF_MOD",
"kUNLESS_MOD",
"kWHILE_MOD",
"kUNTIL_MOD",
"kRESCUE_MOD",
"kALIAS",
"kDEFINED",
"klBEGIN",
"klEND",
"k__LINE__",
"k__FILE__",
"k__ENCODING__",
"tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
"tCONSTANT",
"tLABEL",
"tCVAR",
"tNTH_REF",
"tBACK_REF",
"tSTRING_CONTENT",
"tINTEGER",
"tFLOAT",
"tREGEXP_END",
"tUPLUS",
"tUMINUS",
"tUMINUS_NUM",
"tPOW",
"tCMP",
"tEQ",
"tEQQ",
"tNEQ",
"tGEQ",
"tLEQ",
"tANDOP",
"tOROP",
"tMATCH",
"tNMATCH",
"tDOT",
"tDOT2",
"tDOT3",
"tAREF",
"tASET",
"tLSHFT",
"tRSHFT",
"tCOLON2",
"tCOLON3",
"tOP_ASGN",
"tASSOC",
"tLPAREN",
"tLPAREN2",
"tRPAREN",
"tLPAREN_ARG",
"tLBRACK",
"tLBRACK2",
"tRBRACK",
"tLBRACE",
"tLBRACE_ARG",
"tSTAR",
"tSTAR2",
"tAMPER",
"tAMPER2",
"tTILDE",
"tPERCENT",
"tDIVIDE",
"tPLUS",
"tMINUS",
"tLT",
"tGT",
"tPIPE",
"tBANG",
"tCARET",
"tLCURLY",
"tRCURLY",
"tBACK_REF2",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
"tWORDS_BEG",
"tQWORDS_BEG",
"tSTRING_DBEG",
"tSTRING_DVAR",
"tSTRING_END",
"tSTRING",
"tSYMBOL",
"tNL",
"tEH",
"tCOLON",
"tCOMMA",
"tSPACE",
"tSEMI",
"tLAMBDA",
"tLAMBEG",
"tDSTAR",
"tCHAR",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
"tSTRING_DEND",
"tUBANG",
"tRATIONAL",
"tIMAGINARY",
"tLABEL_END",
"tLONELY",
"tLOWEST",
"tEQL",
"$start",
"program",
"top_compstmt",
"@1",
"top_stmts",
"opt_terms",
"none",
"top_stmt",
"terms",
"stmt",
"begin_block",
"@2",
"bodystmt",
"@3",
"compstmt",
"opt_rescue",
"k_else",
"opt_ensure",
"@4",
"stmts",
"stmt_or_begin",
"fitem",
"undef_list",
"expr_value",
"command_asgn",
"mlhs",
"command_call",
"lhs",
"mrhs",
"mrhs_arg",
"expr",
"@5",
"command_rhs",
"var_lhs",
"primary_value",
"opt_call_args",
"rbracket",
"call_op",
"backref",
"opt_nl",
"arg",
"expr_value_do",
"do",
"@6",
"@7",
"command",
"block_command",
"block_call",
"call_op2",
"operation2",
"command_args",
"cmd_brace_block",
"brace_body",
"fcall",
"@8",
"operation",
"k_return",
"call_args",
"mlhs_basic",
"mlhs_inner",
"rparen",
"mlhs_head",
"mlhs_item",
"mlhs_node",
"mlhs_post",
"user_variable",
"keyword_variable",
"cname",
"cpath",
"fname",
"op",
"reswords",
"fsym",
"symbol",
"dsym",
"@9",
"arg_rhs",
"simple_numeric",
"rel_expr",
"primary",
"relop",
"@10",
"arg_value",
"aref_args",
"args",
"trailer",
"assocs",
"paren_args",
"opt_paren_args",
"opt_block_arg",
"block_arg",
"@11",
"@12",
"literal",
"strings",
"xstring",
"regexp",
"words",
"qwords",
"symbols",
"qsymbols",
"var_ref",
"k_begin",
"k_end",
"assoc_list",
"brace_block",
"method_call",
"lambda",
"k_if",
"then",
"if_tail",
"k_unless",
"opt_else",
"k_while",
"k_until",
"k_case",
"case_body",
"k_for",
"for_var",
"k_class",
"superclass",
"term",
"k_module",
"k_def",
"f_arglist",
"singleton",
"dot_or_colon",
"@13",
"@14",
"@15",
"@16",
"@17",
"@18",
"@19",
"@20",
"@21",
"@22",
"@23",
"@24",
"@25",
"@26",
"@27",
"@28",
"@29",
"k_do",
"k_do_block",
"k_rescue",
"k_ensure",
"k_when",
"k_elsif",
"f_marg",
"f_norm_arg",
"f_margs",
"f_marg_list",
"block_args_tail",
"f_block_kwarg",
"f_kwrest",
"opt_f_block_arg",
"f_block_arg",
"opt_block_args_tail",
"block_param",
"f_arg",
"f_block_optarg",
"f_rest_arg",
"opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"f_bad_arg",
"f_larglist",
"lambda_body",
"@30",
"@31",
"f_args",
"do_block",
"do_body",
"operation3",
"@32",
"@33",
"@34",
"@35",
"@36",
"@37",
"@38",
"cases",
"@39",
"exc_list",
"exc_var",
"numeric",
"string",
"string1",
"string_contents",
"xstring_contents",
"regexp_contents",
"word_list",
"word",
"string_content",
"symbol_list",
"@40",
"qword_list",
"qsym_list",
"string_dvar",
"@41",
"@42",
"sym",
"@43",
"args_tail",
"@44",
"f_kwarg",
"opt_args_tail",
"f_optarg",
"f_arg_asgn",
"f_arg_item",
"f_label",
"f_kw",
"f_block_kw",
"kwrest_mark",
"f_opt",
"f_block_opt",
"restarg_mark",
"blkarg_mark",
"@45",
"assoc" ]
Racc_debug_parser =
false

Constants included from RubyLexer::State::Values

RubyLexer::State::Values::EXPR_ARG, RubyLexer::State::Values::EXPR_ARG_ANY, RubyLexer::State::Values::EXPR_BEG, RubyLexer::State::Values::EXPR_BEG_ANY, RubyLexer::State::Values::EXPR_CLASS, RubyLexer::State::Values::EXPR_CMDARG, RubyLexer::State::Values::EXPR_DOT, RubyLexer::State::Values::EXPR_END, RubyLexer::State::Values::EXPR_ENDARG, RubyLexer::State::Values::EXPR_ENDFN, RubyLexer::State::Values::EXPR_END_ANY, RubyLexer::State::Values::EXPR_FITEM, RubyLexer::State::Values::EXPR_FNAME, RubyLexer::State::Values::EXPR_LAB, RubyLexer::State::Values::EXPR_LABEL, RubyLexer::State::Values::EXPR_LABELED, RubyLexer::State::Values::EXPR_LIT, RubyLexer::State::Values::EXPR_MID, RubyLexer::State::Values::EXPR_NONE, RubyLexer::State::Values::EXPR_NUM, RubyLexer::State::Values::EXPR_PAD, RubyLexer::State::Values::EXPR_PAR, RubyLexer::State::Values::STR_DQUOTE, RubyLexer::State::Values::STR_DSYM, RubyLexer::State::Values::STR_DWORD, RubyLexer::State::Values::STR_FUNC_BORING, RubyLexer::State::Values::STR_FUNC_ESCAPE, RubyLexer::State::Values::STR_FUNC_EXPAND, RubyLexer::State::Values::STR_FUNC_ICNTNT, RubyLexer::State::Values::STR_FUNC_INDENT, RubyLexer::State::Values::STR_FUNC_LABEL, RubyLexer::State::Values::STR_FUNC_LIST, RubyLexer::State::Values::STR_FUNC_QWORDS, RubyLexer::State::Values::STR_FUNC_REGEXP, RubyLexer::State::Values::STR_FUNC_SYMBOL, RubyLexer::State::Values::STR_FUNC_TERM, RubyLexer::State::Values::STR_REGEXP, RubyLexer::State::Values::STR_SQUOTE, RubyLexer::State::Values::STR_SSYM, RubyLexer::State::Values::STR_SWORD, RubyLexer::State::Values::STR_XQUOTE

Constants included from RubyParserStuff

RubyParserStuff::ARG_TYPES, RubyParserStuff::ENCODING_ORDER, RubyParserStuff::JUMP_TYPE, RubyParserStuff::TAB_WIDTH, RubyParserStuff::VERSION

Instance Attribute Summary

Attributes included from RubyParserStuff

#canonicalize_conditions, #comments, #env, #file, #in_def, #in_kwarg, #in_single, #lexer

Instance Method Summary collapse

Methods inherited from RubyParser::Parser

inherited, version, version=

Methods included from RubyParserStuff

#_racc_do_reduce, #arg_blk_pass, #arg_concat, #argl, #args, #array_to_hash, #aryset, #assignable, #backref_assign_error, #block_append, #block_dup_check, #block_var, #call_args, #clean_mlhs, #cond, #debug20, #dedent, #dedent_size, #dedent_string, deprecate, #do_parse, #gettable, #hack_encoding, #handle_encoding, #initialize, #invert_block_call, #inverted?, #list_append, #list_prepend, #literal_concat, #logical_op, #new_aref, #new_assign, #new_attrasgn, #new_body, #new_brace_body, #new_call, #new_case, #new_class, #new_compstmt, #new_const_op_asgn, #new_defn, #new_defs, #new_do_body, #new_for, #new_hash, #new_if, #new_iter, #new_masgn, #new_masgn_arg, #new_match, #new_module, #new_op_asgn, #new_op_asgn1, #new_op_asgn2, #new_qsym_list, #new_qsym_list_entry, #new_qword_list, #new_qword_list_entry, #new_regexp, #new_resbody, #new_rescue, #new_sclass, #new_string, #new_super, #new_symbol_list, #new_symbol_list_entry, #new_undef, #new_until, #new_until_or_while, #new_when, #new_while, #new_word_list, #new_word_list_entry, #new_xstring, #new_yield, #next_token, #on_error, #process, #remove_begin, #reset, #ret_args, #s, #syntax_error, #void_stmts, #warning, #whitespace_width

Instance Method Details

#_reduce_1(val, _values, result) ⇒ Object

reduce 0 omitted



3564
3565
3566
3567
3568
# File 'lib/ruby24_parser.rb', line 3564

def _reduce_1(val, _values, result)
                      self.lexer.lex_state = EXPR_BEG
                    
    result
end

#_reduce_10(val, _values, result) ⇒ Object



3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
# File 'lib/ruby24_parser.rb', line 3607

def _reduce_10(val, _values, result)
                      (_, lineno), _, iter = val
                      iter.line lineno

                      (_, preexe,) = iter
                      preexe.line lineno

                      result = iter
                    
    result
end

#_reduce_100(val, _values, result) ⇒ Object



4214
4215
4216
4217
4218
# File 'lib/ruby24_parser.rb', line 4214

def _reduce_100(val, _values, result)
                      result = self.assignable val[0]
                    
    result
end

#_reduce_101(val, _values, result) ⇒ Object



4220
4221
4222
4223
4224
# File 'lib/ruby24_parser.rb', line 4220

def _reduce_101(val, _values, result)
                      result = self.aryset val[0], val[2]
                    
    result
end

#_reduce_102(val, _values, result) ⇒ Object



4226
4227
4228
4229
4230
# File 'lib/ruby24_parser.rb', line 4226

def _reduce_102(val, _values, result)
                      result = new_attrasgn val[0], val[2], val[1]
                    
    result
end

#_reduce_103(val, _values, result) ⇒ Object



4232
4233
4234
4235
4236
4237
# File 'lib/ruby24_parser.rb', line 4232

def _reduce_103(val, _values, result)
                      recv, _, id = val
                      result = new_attrasgn recv, id
                    
    result
end

#_reduce_104(val, _values, result) ⇒ Object



4239
4240
4241
4242
4243
# File 'lib/ruby24_parser.rb', line 4239

def _reduce_104(val, _values, result)
                      result = new_attrasgn val[0], val[2], val[1]
                    
    result
end

#_reduce_105(val, _values, result) ⇒ Object



4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
# File 'lib/ruby24_parser.rb', line 4245

def _reduce_105(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 7
                        yyerror "dynamic constant assignment"
                      end

                      expr, _, id = val
                      l = expr.line

                      result = s(:const, s(:colon2, expr, id.to_sym).line(l), nil).line l
                    
    result
end

#_reduce_106(val, _values, result) ⇒ Object



4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
# File 'lib/ruby24_parser.rb', line 4259

def _reduce_106(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 8
                        yyerror "dynamic constant assignment"
                      end

                      _, id = val
                      l = lexer.lineno

                      result = s(:const, nil, s(:colon3, id.to_sym).line(l)).line l
                    
    result
end

#_reduce_107(val, _values, result) ⇒ Object



4273
4274
4275
4276
4277
# File 'lib/ruby24_parser.rb', line 4273

def _reduce_107(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

#_reduce_108(val, _values, result) ⇒ Object



4279
4280
4281
4282
4283
4284
4285
# File 'lib/ruby24_parser.rb', line 4279

def _reduce_108(val, _values, result)
                      line = lexer.lineno
                      result = self.assignable val[0]
                      result.line = line
                    
    result
end

#_reduce_109(val, _values, result) ⇒ Object



4287
4288
4289
4290
4291
4292
4293
4294
# File 'lib/ruby24_parser.rb', line 4287

def _reduce_109(val, _values, result)
                      line = lexer.lineno
                      result = self.assignable val[0]
                      result.line = line
                      debug20 9, val, result
                    
    result
end

#_reduce_11(val, _values, result) ⇒ Object



3619
3620
3621
3622
# File 'lib/ruby24_parser.rb', line 3619

def _reduce_11(val, _values, result)
 result = lexer.lineno 
    result
end

#_reduce_110(val, _values, result) ⇒ Object



4296
4297
4298
4299
4300
4301
# File 'lib/ruby24_parser.rb', line 4296

def _reduce_110(val, _values, result)
                      lhs, _, args, _ = val
                      result = self.aryset lhs, args
                    
    result
end

#_reduce_111(val, _values, result) ⇒ Object



4303
4304
4305
4306
4307
4308
# File 'lib/ruby24_parser.rb', line 4303

def _reduce_111(val, _values, result)
                      lhs, op, id = val
                      result = new_attrasgn lhs, id, op
                    
    result
end

#_reduce_112(val, _values, result) ⇒ Object



4310
4311
4312
4313
4314
4315
# File 'lib/ruby24_parser.rb', line 4310

def _reduce_112(val, _values, result)
                      lhs, _, id = val
                      result = new_attrasgn lhs, id
                    
    result
end

#_reduce_113(val, _values, result) ⇒ Object



4317
4318
4319
4320
4321
# File 'lib/ruby24_parser.rb', line 4317

def _reduce_113(val, _values, result)
                      result = new_attrasgn val[0], val[2], val[1]
                    
    result
end

#_reduce_114(val, _values, result) ⇒ Object



4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
# File 'lib/ruby24_parser.rb', line 4323

def _reduce_114(val, _values, result)
                      expr, _, id = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 10
                        yyerror "dynamic constant assignment"
                      end

                      l = expr.line
                      result = s(:const, s(:colon2, expr, id.to_sym).line(l)).line l
                    
    result
end

#_reduce_115(val, _values, result) ⇒ Object



4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
# File 'lib/ruby24_parser.rb', line 4337

def _reduce_115(val, _values, result)
                      _, id = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 11
                        yyerror "dynamic constant assignment"
                      end

                      l = lexer.lineno
                      result = s(:const, s(:colon3, id.to_sym).line(l)).line l
                    
    result
end

#_reduce_116(val, _values, result) ⇒ Object



4351
4352
4353
4354
4355
# File 'lib/ruby24_parser.rb', line 4351

def _reduce_116(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

#_reduce_117(val, _values, result) ⇒ Object



4357
4358
4359
4360
4361
# File 'lib/ruby24_parser.rb', line 4357

def _reduce_117(val, _values, result)
                      yyerror "class/module name must be CONSTANT"
                    
    result
end

#_reduce_119(val, _values, result) ⇒ Object

reduce 118 omitted



4365
4366
4367
4368
4369
4370
# File 'lib/ruby24_parser.rb', line 4365

def _reduce_119(val, _values, result)
                      _, name = val
                      result = s(:colon3, name.to_sym).line lexer.lineno
                    
    result
end

#_reduce_12(val, _values, result) ⇒ Object



3624
3625
3626
3627
3628
3629
# File 'lib/ruby24_parser.rb', line 3624

def _reduce_12(val, _values, result)
                      _, line, stmt, _ = val
                      result = new_iter s(:preexe).line(line), 0, stmt
                    
    result
end

#_reduce_120(val, _values, result) ⇒ Object



4372
4373
4374
4375
4376
# File 'lib/ruby24_parser.rb', line 4372

def _reduce_120(val, _values, result)
                      result = val[0].to_sym
                    
    result
end

#_reduce_121(val, _values, result) ⇒ Object



4378
4379
4380
4381
4382
4383
4384
4385
# File 'lib/ruby24_parser.rb', line 4378

def _reduce_121(val, _values, result)
                      pval, _, name = val

                      result = s(:colon2, pval, name.to_sym)
                      result.line pval.line
                    
    result
end

#_reduce_125(val, _values, result) ⇒ Object

reduce 124 omitted



4393
4394
4395
4396
4397
4398
# File 'lib/ruby24_parser.rb', line 4393

def _reduce_125(val, _values, result)
                      lexer.lex_state = EXPR_END
                      result = val[0]
                    
    result
end

#_reduce_126(val, _values, result) ⇒ Object



4400
4401
4402
4403
4404
4405
4406
# File 'lib/ruby24_parser.rb', line 4400

def _reduce_126(val, _values, result)
                      (sym, _line), = val
                      lexer.lex_state = EXPR_END
                      result = sym
                    
    result
end

#_reduce_129(val, _values, result) ⇒ Object

reduce 128 omitted



4412
4413
4414
4415
4416
4417
# File 'lib/ruby24_parser.rb', line 4412

def _reduce_129(val, _values, result)
                      id, = val
                      result = s(:lit, id.to_sym).line lexer.lineno
                    
    result
end

#_reduce_13(val, _values, result) ⇒ Object



3631
3632
3633
3634
3635
3636
# File 'lib/ruby24_parser.rb', line 3631

def _reduce_13(val, _values, result)
                      res = _values[-2]
                      yyerror "else without rescue is useless" unless res
                    
    result
end

#_reduce_131(val, _values, result) ⇒ Object

reduce 130 omitted



4421
4422
4423
4424
4425
# File 'lib/ruby24_parser.rb', line 4421

def _reduce_131(val, _values, result)
                      result = new_undef val[0]
                    
    result
end

#_reduce_132(val, _values, result) ⇒ Object



4427
4428
4429
4430
4431
# File 'lib/ruby24_parser.rb', line 4427

def _reduce_132(val, _values, result)
                      lexer.lex_state = EXPR_FNAME
                    
    result
end

#_reduce_133(val, _values, result) ⇒ Object



4433
4434
4435
4436
4437
# File 'lib/ruby24_parser.rb', line 4433

def _reduce_133(val, _values, result)
                      result = new_undef val[0], val[3]
                    
    result
end

#_reduce_14(val, _values, result) ⇒ Object



3638
3639
3640
3641
3642
3643
3644
# File 'lib/ruby24_parser.rb', line 3638

def _reduce_14(val, _values, result)
                      body, resc, _, _, els, ens = val

                      result = new_body [body, resc, els, ens]
                    
    result
end

#_reduce_15(val, _values, result) ⇒ Object



3646
3647
3648
3649
3650
3651
3652
# File 'lib/ruby24_parser.rb', line 3646

def _reduce_15(val, _values, result)
                      body, resc, ens = val

                      result = new_body [body, resc, nil, ens]
                    
    result
end

#_reduce_16(val, _values, result) ⇒ Object



3654
3655
3656
3657
3658
# File 'lib/ruby24_parser.rb', line 3654

def _reduce_16(val, _values, result)
                      result = new_compstmt val
                    
    result
end

#_reduce_19(val, _values, result) ⇒ Object

reduce 18 omitted



3664
3665
3666
3667
3668
# File 'lib/ruby24_parser.rb', line 3664

def _reduce_19(val, _values, result)
                      result = self.block_append val[0], val[2]
                    
    result
end

#_reduce_2(val, _values, result) ⇒ Object



3570
3571
3572
3573
3574
# File 'lib/ruby24_parser.rb', line 3570

def _reduce_2(val, _values, result)
                      result = new_compstmt val
                    
    result
end

#_reduce_20(val, _values, result) ⇒ Object



3670
3671
3672
3673
3674
3675
# File 'lib/ruby24_parser.rb', line 3670

def _reduce_20(val, _values, result)
                      result = val[1]
                      debug20 2, val, result
                    
    result
end

#_reduce_206(val, _values, result) ⇒ Object

reduce 205 omitted



4583
4584
4585
4586
4587
# File 'lib/ruby24_parser.rb', line 4583

def _reduce_206(val, _values, result)
                      result = new_assign val[0], val[2]
                    
    result
end

#_reduce_207(val, _values, result) ⇒ Object



4589
4590
4591
4592
4593
# File 'lib/ruby24_parser.rb', line 4589

def _reduce_207(val, _values, result)
                      result = new_op_asgn val
                    
    result
end

#_reduce_208(val, _values, result) ⇒ Object



4595
4596
4597
4598
4599
# File 'lib/ruby24_parser.rb', line 4595

def _reduce_208(val, _values, result)
                      result = new_op_asgn1 val
                    
    result
end

#_reduce_209(val, _values, result) ⇒ Object



4601
4602
4603
4604
4605
# File 'lib/ruby24_parser.rb', line 4601

def _reduce_209(val, _values, result)
                      result = new_op_asgn2 val
                    
    result
end

#_reduce_210(val, _values, result) ⇒ Object



4607
4608
4609
4610
4611
# File 'lib/ruby24_parser.rb', line 4607

def _reduce_210(val, _values, result)
                      result = new_op_asgn2 val
                    
    result
end

#_reduce_211(val, _values, result) ⇒ Object



4613
4614
4615
4616
4617
4618
4619
# File 'lib/ruby24_parser.rb', line 4613

def _reduce_211(val, _values, result)
                      lhs, _, id, op, rhs = val

                      result = s(:op_asgn, lhs, rhs, id.to_sym, op.to_sym).line lhs.line
                    
    result
end

#_reduce_212(val, _values, result) ⇒ Object



4621
4622
4623
4624
4625
4626
4627
4628
# File 'lib/ruby24_parser.rb', line 4621

def _reduce_212(val, _values, result)
                      lhs1, _, lhs2, op, rhs = val

                      lhs = s(:colon2, lhs1, lhs2.to_sym).line lhs1.line
                      result = new_const_op_asgn [lhs, op, rhs]
                    
    result
end

#_reduce_213(val, _values, result) ⇒ Object



4630
4631
4632
4633
4634
# File 'lib/ruby24_parser.rb', line 4630

def _reduce_213(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_214(val, _values, result) ⇒ Object



4636
4637
4638
4639
4640
4641
4642
4643
# File 'lib/ruby24_parser.rb', line 4636

def _reduce_214(val, _values, result)
                      _, lhs, line, op, rhs = val

                      lhs = s(:colon3, lhs.to_sym).line line
                      result = new_const_op_asgn [lhs, op, rhs]
                    
    result
end

#_reduce_215(val, _values, result) ⇒ Object



4645
4646
4647
4648
4649
4650
4651
# File 'lib/ruby24_parser.rb', line 4645

def _reduce_215(val, _values, result)
                      # TODO: lhs = var_field val[0]
                      asgn = new_op_asgn val
                      result = self.backref_assign_error asgn
                    
    result
end

#_reduce_216(val, _values, result) ⇒ Object



4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
# File 'lib/ruby24_parser.rb', line 4653

def _reduce_216(val, _values, result)
                      v1, v2 = val[0], val[2]
                      if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
                        result = s(:lit, (v1.last)..(v2.last)).line v1.line
                      else
                        result = s(:dot2, v1, v2).line v1.line
                      end
                    
    result
end

#_reduce_217(val, _values, result) ⇒ Object



4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
# File 'lib/ruby24_parser.rb', line 4664

def _reduce_217(val, _values, result)
                      v1, v2 = val[0], val[2]
                      if v1.node_type == :lit and v2.node_type == :lit and Integer === v1.last and Integer === v2.last then
                        result = s(:lit, (v1.last)...(v2.last)).line v1.line
                      else
                        result = s(:dot3, v1, v2).line v1.line
                      end
                    
    result
end

#_reduce_218(val, _values, result) ⇒ Object



4675
4676
4677
4678
4679
# File 'lib/ruby24_parser.rb', line 4675

def _reduce_218(val, _values, result)
                      result = new_call val[0], :+, argl(val[2])
                    
    result
end

#_reduce_219(val, _values, result) ⇒ Object



4681
4682
4683
4684
4685
# File 'lib/ruby24_parser.rb', line 4681

def _reduce_219(val, _values, result)
                      result = new_call val[0], :-, argl(val[2])
                    
    result
end

#_reduce_22(val, _values, result) ⇒ Object

reduce 21 omitted



3679
3680
3681
3682
3683
# File 'lib/ruby24_parser.rb', line 3679

def _reduce_22(val, _values, result)
                      yyerror "BEGIN is permitted only at toplevel"
                    
    result
end

#_reduce_220(val, _values, result) ⇒ Object



4687
4688
4689
4690
4691
# File 'lib/ruby24_parser.rb', line 4687

def _reduce_220(val, _values, result)
                      result = new_call val[0], :*, argl(val[2])
                    
    result
end

#_reduce_221(val, _values, result) ⇒ Object



4693
4694
4695
4696
4697
# File 'lib/ruby24_parser.rb', line 4693

def _reduce_221(val, _values, result)
                      result = new_call val[0], :"/", argl(val[2])
                    
    result
end

#_reduce_222(val, _values, result) ⇒ Object



4699
4700
4701
4702
4703
# File 'lib/ruby24_parser.rb', line 4699

def _reduce_222(val, _values, result)
                      result = new_call val[0], :"%", argl(val[2])
                    
    result
end

#_reduce_223(val, _values, result) ⇒ Object



4705
4706
4707
4708
4709
# File 'lib/ruby24_parser.rb', line 4705

def _reduce_223(val, _values, result)
                      result = new_call val[0], :**, argl(val[2])
                    
    result
end

#_reduce_224(val, _values, result) ⇒ Object



4711
4712
4713
4714
4715
4716
4717
# File 'lib/ruby24_parser.rb', line 4711

def _reduce_224(val, _values, result)
                      lit = s(:lit, val[1]).line lexer.lineno
                      result = new_call(new_call(lit, :"**", argl(val[3])), :"-@")

                    
    result
end

#_reduce_225(val, _values, result) ⇒ Object



4719
4720
4721
4722
4723
# File 'lib/ruby24_parser.rb', line 4719

def _reduce_225(val, _values, result)
                      result = new_call val[1], :"+@"
                    
    result
end

#_reduce_226(val, _values, result) ⇒ Object



4725
4726
4727
4728
4729
# File 'lib/ruby24_parser.rb', line 4725

def _reduce_226(val, _values, result)
                      result = new_call val[1], :"-@"
                    
    result
end

#_reduce_227(val, _values, result) ⇒ Object



4731
4732
4733
4734
4735
# File 'lib/ruby24_parser.rb', line 4731

def _reduce_227(val, _values, result)
                      result = new_call val[0], :"|", argl(val[2])
                    
    result
end

#_reduce_228(val, _values, result) ⇒ Object



4737
4738
4739
4740
4741
# File 'lib/ruby24_parser.rb', line 4737

def _reduce_228(val, _values, result)
                      result = new_call val[0], :"^", argl(val[2])
                    
    result
end

#_reduce_229(val, _values, result) ⇒ Object



4743
4744
4745
4746
4747
# File 'lib/ruby24_parser.rb', line 4743

def _reduce_229(val, _values, result)
                      result = new_call val[0], :"&", argl(val[2])
                    
    result
end

#_reduce_23(val, _values, result) ⇒ Object



3685
3686
3687
3688
3689
# File 'lib/ruby24_parser.rb', line 3685

def _reduce_23(val, _values, result)
                      lexer.lex_state = EXPR_FNAME
                    
    result
end

#_reduce_230(val, _values, result) ⇒ Object



4749
4750
4751
4752
4753
# File 'lib/ruby24_parser.rb', line 4749

def _reduce_230(val, _values, result)
                      result = new_call val[0], :"<=>", argl(val[2])
                    
    result
end

#_reduce_232(val, _values, result) ⇒ Object

reduce 231 omitted



4757
4758
4759
4760
4761
# File 'lib/ruby24_parser.rb', line 4757

def _reduce_232(val, _values, result)
                      result = new_call val[0], :"==", argl(val[2])
                    
    result
end

#_reduce_233(val, _values, result) ⇒ Object



4763
4764
4765
4766
4767
# File 'lib/ruby24_parser.rb', line 4763

def _reduce_233(val, _values, result)
                      result = new_call val[0], :"===", argl(val[2])
                    
    result
end

#_reduce_234(val, _values, result) ⇒ Object



4769
4770
4771
4772
4773
# File 'lib/ruby24_parser.rb', line 4769

def _reduce_234(val, _values, result)
                      result = new_call val[0], :"!=", argl(val[2])
                    
    result
end

#_reduce_235(val, _values, result) ⇒ Object



4775
4776
4777
4778
4779
4780
# File 'lib/ruby24_parser.rb', line 4775

def _reduce_235(val, _values, result)
                      lhs, _, rhs = val
                      result = new_match lhs, rhs
                    
    result
end

#_reduce_236(val, _values, result) ⇒ Object



4782
4783
4784
4785
4786
4787
# File 'lib/ruby24_parser.rb', line 4782

def _reduce_236(val, _values, result)
                      lhs, _, rhs = val
                      result = s(:not, new_match(lhs, rhs)).line lhs.line
                    
    result
end

#_reduce_237(val, _values, result) ⇒ Object



4789
4790
4791
4792
4793
4794
4795
# File 'lib/ruby24_parser.rb', line 4789

def _reduce_237(val, _values, result)
                      _, arg = val
                      result = new_call arg, :"!"
                      result.line arg.line
                    
    result
end

#_reduce_238(val, _values, result) ⇒ Object



4797
4798
4799
4800
4801
# File 'lib/ruby24_parser.rb', line 4797

def _reduce_238(val, _values, result)
                      result = new_call value_expr(val[1]), :"~"
                    
    result
end

#_reduce_239(val, _values, result) ⇒ Object



4803
4804
4805
4806
4807
4808
4809
# File 'lib/ruby24_parser.rb', line 4803

def _reduce_239(val, _values, result)
                      val[0] = value_expr val[0]
                      val[2] = value_expr val[2]
                      result = new_call val[0], :"\<\<", argl(val[2])
                    
    result
end

#_reduce_24(val, _values, result) ⇒ Object



3691
3692
3693
3694
3695
3696
# File 'lib/ruby24_parser.rb', line 3691

def _reduce_24(val, _values, result)
                      (_, line), lhs, _, rhs = val
                      result = s(:alias, lhs, rhs).line(line).line line
                    
    result
end

#_reduce_240(val, _values, result) ⇒ Object



4811
4812
4813
4814
4815
4816
4817
# File 'lib/ruby24_parser.rb', line 4811

def _reduce_240(val, _values, result)
                      val[0] = value_expr val[0]
                      val[2] = value_expr val[2]
                      result = new_call val[0], :">>", argl(val[2])
                    
    result
end

#_reduce_241(val, _values, result) ⇒ Object



4819
4820
4821
4822
4823
# File 'lib/ruby24_parser.rb', line 4819

def _reduce_241(val, _values, result)
                      result = logical_op :and, val[0], val[2]
                    
    result
end

#_reduce_242(val, _values, result) ⇒ Object



4825
4826
4827
4828
4829
# File 'lib/ruby24_parser.rb', line 4825

def _reduce_242(val, _values, result)
                      result = logical_op :or, val[0], val[2]
                    
    result
end

#_reduce_243(val, _values, result) ⇒ Object



4831
4832
4833
4834
4835
4836
# File 'lib/ruby24_parser.rb', line 4831

def _reduce_243(val, _values, result)
                      (_, line), _, arg = val
                      result = s(:defined, arg).line line
                    
    result
end

#_reduce_244(val, _values, result) ⇒ Object



4838
4839
4840
4841
4842
4843
# File 'lib/ruby24_parser.rb', line 4838

def _reduce_244(val, _values, result)
                      c, _, t, _, _, f = val
                      result = s(:if, c, t, f).line c.line
                    
    result
end

#_reduce_25(val, _values, result) ⇒ Object



3698
3699
3700
3701
3702
3703
# File 'lib/ruby24_parser.rb', line 3698

def _reduce_25(val, _values, result)
                      (_, line), lhs, rhs = val
                      result = s(:valias, lhs.to_sym, rhs.to_sym).line line
                    
    result
end

#_reduce_250(val, _values, result) ⇒ Object

reduce 249 omitted



4855
4856
4857
4858
4859
4860
# File 'lib/ruby24_parser.rb', line 4855

def _reduce_250(val, _values, result)
                      lhs, op, rhs = val
                      result = new_call lhs, op.to_sym, argl(rhs)
                    
    result
end

#_reduce_251(val, _values, result) ⇒ Object



4862
4863
4864
4865
4866
4867
4868
# File 'lib/ruby24_parser.rb', line 4862

def _reduce_251(val, _values, result)
                      lhs, op, rhs = val
                      warn "comparison '%s' after comparison", op
                      result = new_call lhs, op.to_sym, argl(rhs)
                    
    result
end

#_reduce_252(val, _values, result) ⇒ Object



4870
4871
4872
4873
4874
# File 'lib/ruby24_parser.rb', line 4870

def _reduce_252(val, _values, result)
                      result = value_expr(val[0])
                    
    result
end

#_reduce_254(val, _values, result) ⇒ Object

reduce 253 omitted



4878
4879
4880
4881
4882
# File 'lib/ruby24_parser.rb', line 4878

def _reduce_254(val, _values, result)
                      result = args [val[0]]
                    
    result
end

#_reduce_255(val, _values, result) ⇒ Object



4884
4885
4886
4887
4888
# File 'lib/ruby24_parser.rb', line 4884

def _reduce_255(val, _values, result)
                      result = args [val[0], array_to_hash(val[2])]
                    
    result
end

#_reduce_256(val, _values, result) ⇒ Object



4890
4891
4892
4893
4894
# File 'lib/ruby24_parser.rb', line 4890

def _reduce_256(val, _values, result)
                      result = args [array_to_hash(val[0])]
                    
    result
end

#_reduce_258(val, _values, result) ⇒ Object

reduce 257 omitted



4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
# File 'lib/ruby24_parser.rb', line 4898

def _reduce_258(val, _values, result)
                      body, (_, line), resbody = val
                      body    = value_expr body
                      resbody = remove_begin resbody

                      ary = s(:array).line line
                      result  = new_rescue(body, new_resbody(ary, resbody))
                    
    result
end

#_reduce_259(val, _values, result) ⇒ Object



4909
4910
4911
4912
4913
4914
# File 'lib/ruby24_parser.rb', line 4909

def _reduce_259(val, _values, result)
                      _, args, _ = val
                      result = args
                    
    result
end

#_reduce_26(val, _values, result) ⇒ Object



3705
3706
3707
3708
3709
3710
# File 'lib/ruby24_parser.rb', line 3705

def _reduce_26(val, _values, result)
                      (_, line), lhs, rhs = val
                      result = s(:valias, lhs.to_sym, :"$#{rhs}").line line
                    
    result
end

#_reduce_264(val, _values, result) ⇒ Object

reduce 263 omitted



4924
4925
4926
4927
4928
# File 'lib/ruby24_parser.rb', line 4924

def _reduce_264(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_265(val, _values, result) ⇒ Object



4930
4931
4932
4933
4934
# File 'lib/ruby24_parser.rb', line 4930

def _reduce_265(val, _values, result)
                      result = args [val[0], array_to_hash(val[2])]
                    
    result
end

#_reduce_266(val, _values, result) ⇒ Object



4936
4937
4938
4939
4940
# File 'lib/ruby24_parser.rb', line 4936

def _reduce_266(val, _values, result)
                      result = args [array_to_hash(val[0])]
                    
    result
end

#_reduce_267(val, _values, result) ⇒ Object



4942
4943
4944
4945
4946
4947
# File 'lib/ruby24_parser.rb', line 4942

def _reduce_267(val, _values, result)
                      warning "parenthesize argument(s) for future version"
                      result = call_args val
                    
    result
end

#_reduce_268(val, _values, result) ⇒ Object



4949
4950
4951
4952
4953
4954
# File 'lib/ruby24_parser.rb', line 4949

def _reduce_268(val, _values, result)
                      result = call_args val
                      result = self.arg_blk_pass val[0], val[1]
                    
    result
end

#_reduce_269(val, _values, result) ⇒ Object



4956
4957
4958
4959
4960
4961
# File 'lib/ruby24_parser.rb', line 4956

def _reduce_269(val, _values, result)
                      result = call_args [array_to_hash(val[0])]
                      result = self.arg_blk_pass result, val[1]
                    
    result
end

#_reduce_27(val, _values, result) ⇒ Object



3712
3713
3714
3715
3716
# File 'lib/ruby24_parser.rb', line 3712

def _reduce_27(val, _values, result)
                      yyerror "can't make alias for the number variables"
                    
    result
end

#_reduce_270(val, _values, result) ⇒ Object



4963
4964
4965
4966
4967
4968
# File 'lib/ruby24_parser.rb', line 4963

def _reduce_270(val, _values, result)
                      result = call_args [val[0], array_to_hash(val[2])]
                      result = self.arg_blk_pass result, val[3]
                    
    result
end

#_reduce_271(val, _values, result) ⇒ Object



4970
4971
4972
4973
4974
# File 'lib/ruby24_parser.rb', line 4970

def _reduce_271(val, _values, result)
                      result = call_args val
                    
    result
end

#_reduce_272(val, _values, result) ⇒ Object



4976
4977
4978
4979
4980
# File 'lib/ruby24_parser.rb', line 4976

def _reduce_272(val, _values, result)
                      result = lexer.cmdarg.store true
                    
    result
end

#_reduce_273(val, _values, result) ⇒ Object



4982
4983
4984
4985
4986
4987
# File 'lib/ruby24_parser.rb', line 4982

def _reduce_273(val, _values, result)
                      lexer.cmdarg.restore val[0]
                      result = val[1]
                    
    result
end

#_reduce_274(val, _values, result) ⇒ Object



4989
4990
4991
4992
4993
4994
# File 'lib/ruby24_parser.rb', line 4989

def _reduce_274(val, _values, result)
                      _, arg = val
                      result = s(:block_pass, arg).line arg.line
                    
    result
end

#_reduce_275(val, _values, result) ⇒ Object



4996
4997
4998
4999
5000
# File 'lib/ruby24_parser.rb', line 4996

def _reduce_275(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_277(val, _values, result) ⇒ Object

reduce 276 omitted



5004
5005
5006
5007
5008
5009
5010
# File 'lib/ruby24_parser.rb', line 5004

def _reduce_277(val, _values, result)
                      arg, = val

                      result = s(:array, arg).line arg.line
                    
    result
end

#_reduce_278(val, _values, result) ⇒ Object



5012
5013
5014
5015
5016
5017
# File 'lib/ruby24_parser.rb', line 5012

def _reduce_278(val, _values, result)
                      _, arg = val
                      result = s(:array, s(:splat, arg).line(arg.line)).line arg.line
                    
    result
end

#_reduce_279(val, _values, result) ⇒ Object



5019
5020
5021
5022
5023
5024
# File 'lib/ruby24_parser.rb', line 5019

def _reduce_279(val, _values, result)
                      args, _, id = val
                      result = self.list_append args, id
                    
    result
end

#_reduce_28(val, _values, result) ⇒ Object



3718
3719
3720
3721
3722
# File 'lib/ruby24_parser.rb', line 3718

def _reduce_28(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_280(val, _values, result) ⇒ Object



5026
5027
5028
5029
# File 'lib/ruby24_parser.rb', line 5026

def _reduce_280(val, _values, result)
 result = lexer.lineno 
    result
end

#_reduce_281(val, _values, result) ⇒ Object



5031
5032
5033
5034
5035
5036
# File 'lib/ruby24_parser.rb', line 5031

def _reduce_281(val, _values, result)
                      args, _, _, line, id = val
                      result = self.list_append args, s(:splat, id).line(line)
                    
    result
end

#_reduce_282(val, _values, result) ⇒ Object



5038
5039
5040
5041
5042
# File 'lib/ruby24_parser.rb', line 5038

def _reduce_282(val, _values, result)
                      result = new_masgn_arg val[0]
                    
    result
end

#_reduce_283(val, _values, result) ⇒ Object



5044
5045
5046
5047
5048
# File 'lib/ruby24_parser.rb', line 5044

def _reduce_283(val, _values, result)
                      result = new_masgn_arg val[0], :wrap
                    
    result
end

#_reduce_284(val, _values, result) ⇒ Object



5050
5051
5052
5053
5054
# File 'lib/ruby24_parser.rb', line 5050

def _reduce_284(val, _values, result)
                      result = val[0] << val[2]
                    
    result
end

#_reduce_285(val, _values, result) ⇒ Object



5056
5057
5058
5059
5060
5061
5062
5063
# File 'lib/ruby24_parser.rb', line 5056

def _reduce_285(val, _values, result)
                      # FIX: bad shift/reduce conflict with rhs' comma star prod
                      # TODO: make all tXXXX terminals include lexer.lineno
                      arg, _, _, splat = val
                      result = self.arg_concat arg, splat
                    
    result
end

#_reduce_286(val, _values, result) ⇒ Object



5065
5066
5067
5068
5069
5070
# File 'lib/ruby24_parser.rb', line 5065

def _reduce_286(val, _values, result)
                      _, arg = val
                      result = s(:splat, arg).line arg.line
                    
    result
end

#_reduce_29(val, _values, result) ⇒ Object



3724
3725
3726
3727
3728
3729
# File 'lib/ruby24_parser.rb', line 3724

def _reduce_29(val, _values, result)
                      t, _, c = val
                      result = new_if c, t, nil
                    
    result
end

#_reduce_297(val, _values, result) ⇒ Object

reduce 296 omitted



5092
5093
5094
5095
5096
5097
# File 'lib/ruby24_parser.rb', line 5092

def _reduce_297(val, _values, result)
                      msg, = val
                      result = new_call nil, msg.to_sym
                    
    result
end

#_reduce_298(val, _values, result) ⇒ Object



5099
5100
5101
5102
5103
5104
5105
5106
# File 'lib/ruby24_parser.rb', line 5099

def _reduce_298(val, _values, result)
                      result = self.lexer.lineno
                      # TODO:
                      # $<val>1 = cmdarg_stack;
                      # CMDARG_SET(0);
                    
    result
end

#_reduce_299(val, _values, result) ⇒ Object



5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
# File 'lib/ruby24_parser.rb', line 5108

def _reduce_299(val, _values, result)
                      # TODO: CMDARG_SET($<val>1);
                      unless val[2] then
                        result = s(:nil)
                      else
                        result = s(:begin, val[2])
                      end

                      result.line = val[1]
                    
    result
end

#_reduce_3(val, _values, result) ⇒ Object



3576
3577
3578
3579
3580
3581
# File 'lib/ruby24_parser.rb', line 3576

def _reduce_3(val, _values, result)
                      stmt, _ = val
                      result = stmt
                    
    result
end

#_reduce_30(val, _values, result) ⇒ Object



3731
3732
3733
3734
3735
3736
# File 'lib/ruby24_parser.rb', line 3731

def _reduce_30(val, _values, result)
                      f, _, c = val
                      result = new_if c, nil, f
                    
    result
end

#_reduce_300(val, _values, result) ⇒ Object



5121
5122
5123
5124
5125
5126
# File 'lib/ruby24_parser.rb', line 5121

def _reduce_300(val, _values, result)
                      lexer.lex_state = EXPR_ENDARG
                      result = lexer.lineno
                    
    result
end

#_reduce_301(val, _values, result) ⇒ Object



5128
5129
5130
5131
5132
5133
# File 'lib/ruby24_parser.rb', line 5128

def _reduce_301(val, _values, result)
                      _, line, _ = val
                      result = s(:begin).line line
                    
    result
end

#_reduce_302(val, _values, result) ⇒ Object



5135
5136
5137
5138
5139
# File 'lib/ruby24_parser.rb', line 5135

def _reduce_302(val, _values, result)
                      result = lexer.cmdarg.store false
                    
    result
end

#_reduce_303(val, _values, result) ⇒ Object



5141
5142
5143
5144
5145
# File 'lib/ruby24_parser.rb', line 5141

def _reduce_303(val, _values, result)
                      lexer.lex_state = EXPR_ENDARG
                    
    result
end

#_reduce_304(val, _values, result) ⇒ Object



5147
5148
5149
5150
5151
5152
5153
5154
# File 'lib/ruby24_parser.rb', line 5147

def _reduce_304(val, _values, result)
                      _, cmdarg, stmt, _, _, = val
                      warning "(...) interpreted as grouped expression"
                      lexer.cmdarg.restore cmdarg
                      result = stmt
                    
    result
end

#_reduce_305(val, _values, result) ⇒ Object



5156
5157
5158
5159
5160
5161
5162
5163
# File 'lib/ruby24_parser.rb', line 5156

def _reduce_305(val, _values, result)
                      _, stmt, _ = val
                      result = stmt
                      result ||= s(:nil).line lexer.lineno
                      result.paren = true
                    
    result
end

#_reduce_306(val, _values, result) ⇒ Object



5165
5166
5167
5168
5169
5170
5171
# File 'lib/ruby24_parser.rb', line 5165

def _reduce_306(val, _values, result)
                      expr, _, id = val

                      result = s(:colon2, expr, id.to_sym).line expr.line
                    
    result
end

#_reduce_307(val, _values, result) ⇒ Object



5173
5174
5175
5176
5177
5178
5179
# File 'lib/ruby24_parser.rb', line 5173

def _reduce_307(val, _values, result)
                      _, id = val

                      result = s(:colon3, id.to_sym).line lexer.lineno
                    
    result
end

#_reduce_308(val, _values, result) ⇒ Object



5181
5182
5183
5184
# File 'lib/ruby24_parser.rb', line 5181

def _reduce_308(val, _values, result)
 result = lexer.lineno 
    result
end

#_reduce_309(val, _values, result) ⇒ Object



5186
5187
5188
5189
5190
5191
5192
5193
# File 'lib/ruby24_parser.rb', line 5186

def _reduce_309(val, _values, result)
                      _, line, args, _ = val
                      result = args || s(:array)
                      result.sexp_type = :array # aref_args is :args
                      result.line line
                    
    result
end

#_reduce_31(val, _values, result) ⇒ Object



3738
3739
3740
3741
3742
3743
# File 'lib/ruby24_parser.rb', line 3738

def _reduce_31(val, _values, result)
                      e, _, c = val
                      result = new_while e, c, true
                    
    result
end

#_reduce_310(val, _values, result) ⇒ Object



5195
5196
5197
5198
5199
# File 'lib/ruby24_parser.rb', line 5195

def _reduce_310(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_311(val, _values, result) ⇒ Object



5201
5202
5203
5204
5205
# File 'lib/ruby24_parser.rb', line 5201

def _reduce_311(val, _values, result)
                      result = new_hash val
                    
    result
end

#_reduce_312(val, _values, result) ⇒ Object



5207
5208
5209
5210
5211
5212
# File 'lib/ruby24_parser.rb', line 5207

def _reduce_312(val, _values, result)
                      (_, line), = val
                      result = s(:return).line line
                    
    result
end

#_reduce_313(val, _values, result) ⇒ Object



5214
5215
5216
5217
5218
# File 'lib/ruby24_parser.rb', line 5214

def _reduce_313(val, _values, result)
                      result = new_yield val[2]
                    
    result
end

#_reduce_314(val, _values, result) ⇒ Object



5220
5221
5222
5223
5224
# File 'lib/ruby24_parser.rb', line 5220

def _reduce_314(val, _values, result)
                      result = new_yield
                    
    result
end

#_reduce_315(val, _values, result) ⇒ Object



5226
5227
5228
5229
5230
# File 'lib/ruby24_parser.rb', line 5226

def _reduce_315(val, _values, result)
                      result = new_yield
                    
    result
end

#_reduce_316(val, _values, result) ⇒ Object



5232
5233
5234
5235
5236
5237
5238
# File 'lib/ruby24_parser.rb', line 5232

def _reduce_316(val, _values, result)
                      (_, line), _, _, arg, _ = val

                      result = s(:defined, arg).line line
                    
    result
end

#_reduce_317(val, _values, result) ⇒ Object



5240
5241
5242
5243
5244
5245
# File 'lib/ruby24_parser.rb', line 5240

def _reduce_317(val, _values, result)
                      _, _, lhs, _ = val
                      result = new_call lhs, :"!"
                    
    result
end

#_reduce_318(val, _values, result) ⇒ Object



5247
5248
5249
5250
5251
# File 'lib/ruby24_parser.rb', line 5247

def _reduce_318(val, _values, result)
                      debug20 14, val, result
                    
    result
end

#_reduce_319(val, _values, result) ⇒ Object



5253
5254
5255
5256
5257
5258
5259
5260
5261
# File 'lib/ruby24_parser.rb', line 5253

def _reduce_319(val, _values, result)
                      call, iter = val

                      iter.insert 1, call
                      result = iter
                      # FIX: probably not: call.line = iter.line
                    
    result
end

#_reduce_32(val, _values, result) ⇒ Object



3745
3746
3747
3748
3749
3750
# File 'lib/ruby24_parser.rb', line 3745

def _reduce_32(val, _values, result)
                      e, _, c = val
                      result = new_until e, c, true
                    
    result
end

#_reduce_321(val, _values, result) ⇒ Object

reduce 320 omitted



5265
5266
5267
5268
5269
5270
5271
5272
# File 'lib/ruby24_parser.rb', line 5265

def _reduce_321(val, _values, result)
                      call, iter = val[0], val[1]
                      block_dup_check call, iter
                      iter.insert 1, call # FIX
                      result = iter
                    
    result
end

#_reduce_322(val, _values, result) ⇒ Object



5274
5275
5276
5277
5278
# File 'lib/ruby24_parser.rb', line 5274

def _reduce_322(val, _values, result)
                      result = val[1] # TODO: fix lineno
                    
    result
end

#_reduce_323(val, _values, result) ⇒ Object



5280
5281
5282
5283
5284
5285
# File 'lib/ruby24_parser.rb', line 5280

def _reduce_323(val, _values, result)
                      _, c, _, t, f, _ = val
                      result = new_if c, t, f
                    
    result
end

#_reduce_324(val, _values, result) ⇒ Object



5287
5288
5289
5290
5291
5292
# File 'lib/ruby24_parser.rb', line 5287

def _reduce_324(val, _values, result)
                      _, c, _, t, f, _ = val
                      result = new_if c, f, t
                    
    result
end

#_reduce_325(val, _values, result) ⇒ Object



5294
5295
5296
5297
5298
5299
# File 'lib/ruby24_parser.rb', line 5294

def _reduce_325(val, _values, result)
                      _, cond, body, _ = val
                      result = new_while body, cond, true
                    
    result
end

#_reduce_326(val, _values, result) ⇒ Object



5301
5302
5303
5304
5305
5306
# File 'lib/ruby24_parser.rb', line 5301

def _reduce_326(val, _values, result)
                      _, cond, body, _ = val
                      result = new_until body, cond, true
                    
    result
end

#_reduce_327(val, _values, result) ⇒ Object



5308
5309
5310
5311
5312
5313
# File 'lib/ruby24_parser.rb', line 5308

def _reduce_327(val, _values, result)
                      (_, line), expr, _, body, _ = val
                      result = new_case expr, body, line
                    
    result
end

#_reduce_328(val, _values, result) ⇒ Object



5315
5316
5317
5318
5319
5320
# File 'lib/ruby24_parser.rb', line 5315

def _reduce_328(val, _values, result)
                      (_, line), _, body, _ = val
                      result = new_case nil, body, line
                    
    result
end

#_reduce_329(val, _values, result) ⇒ Object



5322
5323
5324
5325
5326
5327
# File 'lib/ruby24_parser.rb', line 5322

def _reduce_329(val, _values, result)
                      _, var, _, iter, body, _ = val
                      result = new_for iter, var, body
                    
    result
end

#_reduce_33(val, _values, result) ⇒ Object



3752
3753
3754
3755
3756
3757
3758
3759
# File 'lib/ruby24_parser.rb', line 3752

def _reduce_33(val, _values, result)
                      body, _, resbody = val

                      resbody = new_resbody s(:array).line(resbody.line), resbody
                      result = new_rescue body, resbody
                    
    result
end

#_reduce_330(val, _values, result) ⇒ Object



5329
5330
5331
5332
5333
# File 'lib/ruby24_parser.rb', line 5329

def _reduce_330(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_331(val, _values, result) ⇒ Object



5335
5336
5337
5338
5339
5340
5341
5342
5343
# File 'lib/ruby24_parser.rb', line 5335

def _reduce_331(val, _values, result)
                      self.comments.push self.lexer.comments
                      if (self.in_def || self.in_single > 0) then
                        yyerror "class definition in method body"
                      end
                      self.env.extend
                    
    result
end

#_reduce_332(val, _values, result) ⇒ Object



5345
5346
5347
5348
5349
5350
5351
# File 'lib/ruby24_parser.rb', line 5345

def _reduce_332(val, _values, result)
                      result = new_class val
                      self.env.unextend
                      self.lexer.comments # we don't care about comments in the body
                    
    result
end

#_reduce_333(val, _values, result) ⇒ Object



5353
5354
5355
5356
5357
# File 'lib/ruby24_parser.rb', line 5353

def _reduce_333(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_334(val, _values, result) ⇒ Object



5359
5360
5361
5362
5363
5364
# File 'lib/ruby24_parser.rb', line 5359

def _reduce_334(val, _values, result)
                      result = self.in_def
                      self.in_def = false
                    
    result
end

#_reduce_335(val, _values, result) ⇒ Object



5366
5367
5368
5369
5370
5371
5372
# File 'lib/ruby24_parser.rb', line 5366

def _reduce_335(val, _values, result)
                      result = self.in_single
                      self.in_single = 0
                      self.env.extend
                    
    result
end

#_reduce_336(val, _values, result) ⇒ Object



5374
5375
5376
5377
5378
5379
5380
# File 'lib/ruby24_parser.rb', line 5374

def _reduce_336(val, _values, result)
                      result = new_sclass val
                      self.env.unextend
                      self.lexer.comments # we don't care about comments in the body
                    
    result
end

#_reduce_337(val, _values, result) ⇒ Object



5382
5383
5384
5385
5386
# File 'lib/ruby24_parser.rb', line 5382

def _reduce_337(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_338(val, _values, result) ⇒ Object



5388
5389
5390
5391
5392
5393
5394
5395
5396
# File 'lib/ruby24_parser.rb', line 5388

def _reduce_338(val, _values, result)
                      self.comments.push self.lexer.comments
                      yyerror "module definition in method body" if
                        self.in_def or self.in_single > 0

                      self.env.extend
                    
    result
end

#_reduce_339(val, _values, result) ⇒ Object



5398
5399
5400
5401
5402
5403
5404
# File 'lib/ruby24_parser.rb', line 5398

def _reduce_339(val, _values, result)
                      result = new_module val
                      self.env.unextend
                      self.lexer.comments # we don't care about comments in the body
                    
    result
end

#_reduce_34(val, _values, result) ⇒ Object



3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
# File 'lib/ruby24_parser.rb', line 3761

def _reduce_34(val, _values, result)
                      (_, line), _, stmt, _ = val

                      if (self.in_def || self.in_single > 0) then
                        debug20 3
                        yyerror "END in method; use at_exit"
                      end

                      result = new_iter s(:postexe).line(line), 0, stmt
                    
    result
end

#_reduce_340(val, _values, result) ⇒ Object



5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
# File 'lib/ruby24_parser.rb', line 5406

def _reduce_340(val, _values, result)
                      result = [self.in_def, self.lexer.cmdarg.stack.dup]

                      self.comments.push self.lexer.comments
                      self.in_def = true
                      self.env.extend
                      # TODO: local->cmdargs = cmdarg_stack;
                      # TODO: port local_push_gen and local_pop_gen
                      lexer.cmdarg.stack.replace [false]
                    
    result
end

#_reduce_341(val, _values, result) ⇒ Object



5419
5420
5421
5422
# File 'lib/ruby24_parser.rb', line 5419

def _reduce_341(val, _values, result)
 result = lexer.lineno 
    result
end

#_reduce_342(val, _values, result) ⇒ Object



5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
# File 'lib/ruby24_parser.rb', line 5424

def _reduce_342(val, _values, result)
                      in_def, cmdarg = val[2]

                      result = new_defn val

                      lexer.cmdarg.stack.replace cmdarg
                      self.env.unextend
                      self.in_def = in_def
                      self.lexer.comments # we don't care about comments in the body
                    
    result
end

#_reduce_343(val, _values, result) ⇒ Object



5437
5438
5439
5440
5441
5442
# File 'lib/ruby24_parser.rb', line 5437

def _reduce_343(val, _values, result)
                      self.comments.push self.lexer.comments
                      lexer.lex_state = EXPR_FNAME
                    
    result
end

#_reduce_344(val, _values, result) ⇒ Object



5444
5445
5446
5447
5448
5449
5450
5451
5452
# File 'lib/ruby24_parser.rb', line 5444

def _reduce_344(val, _values, result)
                      self.in_single += 1
                      self.env.extend
                      lexer.lex_state = EXPR_ENDFN # force for args
                      result = [lexer.lineno, self.lexer.cmdarg.stack.dup]
                      lexer.cmdarg.stack.replace [false]
                    
    result
end

#_reduce_345(val, _values, result) ⇒ Object



5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
# File 'lib/ruby24_parser.rb', line 5454

def _reduce_345(val, _values, result)
                      _, cmdarg = val[5]
                      result = new_defs val

                      lexer.cmdarg.stack.replace cmdarg

                      self.env.unextend
                      self.in_single -= 1
                      self.lexer.comments # we don't care about comments in the body
                    
    result
end

#_reduce_346(val, _values, result) ⇒ Object



5467
5468
5469
5470
5471
5472
# File 'lib/ruby24_parser.rb', line 5467

def _reduce_346(val, _values, result)
                      (_, line), = val
                      result = s(:break).line line
                    
    result
end

#_reduce_347(val, _values, result) ⇒ Object



5474
5475
5476
5477
5478
5479
# File 'lib/ruby24_parser.rb', line 5474

def _reduce_347(val, _values, result)
                      (_, line), = val
                      result = s(:next).line line
                    
    result
end

#_reduce_348(val, _values, result) ⇒ Object



5481
5482
5483
5484
5485
5486
# File 'lib/ruby24_parser.rb', line 5481

def _reduce_348(val, _values, result)
                      (_, line), = val
                      result = s(:redo).line line
                    
    result
end

#_reduce_349(val, _values, result) ⇒ Object



5488
5489
5490
5491
5492
5493
# File 'lib/ruby24_parser.rb', line 5488

def _reduce_349(val, _values, result)
                      (_, line), = val
                      result = s(:retry).line line
                    
    result
end

#_reduce_350(val, _values, result) ⇒ Object



5495
5496
5497
5498
5499
# File 'lib/ruby24_parser.rb', line 5495

def _reduce_350(val, _values, result)
                      result = value_expr(val[0])
                    
    result
end

#_reduce_36(val, _values, result) ⇒ Object

reduce 35 omitted



3776
3777
3778
3779
3780
# File 'lib/ruby24_parser.rb', line 3776

def _reduce_36(val, _values, result)
                      result = new_masgn val[0], val[2], :wrap
                    
    result
end

#_reduce_37(val, _values, result) ⇒ Object



3782
3783
3784
3785
3786
3787
# File 'lib/ruby24_parser.rb', line 3782

def _reduce_37(val, _values, result)
                      lhs, _, rhs = val
                      result = new_assign lhs, s(:svalue, rhs).line(rhs.line)
                    
    result
end

#_reduce_376(val, _values, result) ⇒ Object

reduce 375 omitted



5551
5552
5553
5554
5555
5556
5557
# File 'lib/ruby24_parser.rb', line 5551

def _reduce_376(val, _values, result)
                      (_, line), c, _, t, rest = val

                      result = s(:if, c, t, rest).line line
                    
    result
end

#_reduce_378(val, _values, result) ⇒ Object

reduce 377 omitted



5561
5562
5563
5564
5565
# File 'lib/ruby24_parser.rb', line 5561

def _reduce_378(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_38(val, _values, result) ⇒ Object



3789
3790
3791
3792
3793
# File 'lib/ruby24_parser.rb', line 3789

def _reduce_38(val, _values, result)
                      result = new_masgn val[0], val[2]
                    
    result
end

#_reduce_380(val, _values, result) ⇒ Object

reduce 379 omitted



5569
5570
5571
5572
5573
# File 'lib/ruby24_parser.rb', line 5569

def _reduce_380(val, _values, result)
                      val[0].delete_at 1 if val[0][1].nil? # HACK
                    
    result
end

#_reduce_382(val, _values, result) ⇒ Object

reduce 381 omitted



5577
5578
5579
5580
5581
# File 'lib/ruby24_parser.rb', line 5577

def _reduce_382(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_383(val, _values, result) ⇒ Object



5583
5584
5585
5586
5587
5588
5589
# File 'lib/ruby24_parser.rb', line 5583

def _reduce_383(val, _values, result)
                      sym, = val

                      result = s(:array, sym).line lexer.lineno
                    
    result
end

#_reduce_384(val, _values, result) ⇒ Object



5591
5592
5593
5594
5595
# File 'lib/ruby24_parser.rb', line 5591

def _reduce_384(val, _values, result)
                      result = list_append val[0], val[2]
                    
    result
end

#_reduce_385(val, _values, result) ⇒ Object



5597
5598
5599
5600
5601
5602
5603
# File 'lib/ruby24_parser.rb', line 5597

def _reduce_385(val, _values, result)
                      args, = val

                      result = block_var args
                    
    result
end

#_reduce_386(val, _values, result) ⇒ Object



5605
5606
5607
5608
5609
5610
5611
# File 'lib/ruby24_parser.rb', line 5605

def _reduce_386(val, _values, result)
                      args, _, _, splat = val

                      result = block_var args, "*#{splat}".to_sym
                    
    result
end

#_reduce_387(val, _values, result) ⇒ Object



5613
5614
5615
5616
5617
5618
5619
# File 'lib/ruby24_parser.rb', line 5613

def _reduce_387(val, _values, result)
                      args, _, _, splat, _, args2 = val

                      result = block_var args, "*#{splat}".to_sym, args2
                    
    result
end

#_reduce_388(val, _values, result) ⇒ Object



5621
5622
5623
5624
5625
5626
5627
# File 'lib/ruby24_parser.rb', line 5621

def _reduce_388(val, _values, result)
                      args, _, _ = val

                      result = block_var args, :*
                    
    result
end

#_reduce_389(val, _values, result) ⇒ Object



5629
5630
5631
5632
5633
5634
5635
# File 'lib/ruby24_parser.rb', line 5629

def _reduce_389(val, _values, result)
                      args, _, _, _, args2 = val

                      result = block_var args, :*, args2
                    
    result
end

#_reduce_390(val, _values, result) ⇒ Object



5637
5638
5639
5640
5641
5642
5643
# File 'lib/ruby24_parser.rb', line 5637

def _reduce_390(val, _values, result)
                      _, splat = val

                      result = block_var :"*#{splat}"
                    
    result
end

#_reduce_391(val, _values, result) ⇒ Object



5645
5646
5647
5648
5649
5650
5651
# File 'lib/ruby24_parser.rb', line 5645

def _reduce_391(val, _values, result)
                      _, splat, _, args = val

                      result = block_var :"*#{splat}", args
                    
    result
end

#_reduce_392(val, _values, result) ⇒ Object



5653
5654
5655
5656
5657
# File 'lib/ruby24_parser.rb', line 5653

def _reduce_392(val, _values, result)
                      result = block_var :*
                    
    result
end

#_reduce_393(val, _values, result) ⇒ Object



5659
5660
5661
5662
5663
5664
5665
# File 'lib/ruby24_parser.rb', line 5659

def _reduce_393(val, _values, result)
                      _, _, args = val

                      result = block_var :*, args
                    
    result
end

#_reduce_394(val, _values, result) ⇒ Object



5667
5668
5669
5670
5671
# File 'lib/ruby24_parser.rb', line 5667

def _reduce_394(val, _values, result)
                      result = call_args val
                    
    result
end

#_reduce_395(val, _values, result) ⇒ Object



5673
5674
5675
5676
5677
# File 'lib/ruby24_parser.rb', line 5673

def _reduce_395(val, _values, result)
                      result = call_args val
                    
    result
end

#_reduce_396(val, _values, result) ⇒ Object



5679
5680
5681
5682
5683
# File 'lib/ruby24_parser.rb', line 5679

def _reduce_396(val, _values, result)
                      result = call_args val
                    
    result
end

#_reduce_397(val, _values, result) ⇒ Object



5685
5686
5687
5688
5689
5690
5691
# File 'lib/ruby24_parser.rb', line 5685

def _reduce_397(val, _values, result)
                      line = lexer.lineno
                      result = call_args val # TODO: push line down
                      result.line line
                    
    result
end

#_reduce_398(val, _values, result) ⇒ Object



5693
5694
5695
5696
5697
# File 'lib/ruby24_parser.rb', line 5693

def _reduce_398(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_40(val, _values, result) ⇒ Object

reduce 39 omitted



3797
3798
3799
3800
3801
# File 'lib/ruby24_parser.rb', line 3797

def _reduce_40(val, _values, result)
                      result = new_assign val[0], val[2]
                    
    result
end

#_reduce_400(val, _values, result) ⇒ Object

reduce 399 omitted



5701
5702
5703
5704
5705
# File 'lib/ruby24_parser.rb', line 5701

def _reduce_400(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_401(val, _values, result) ⇒ Object



5707
5708
5709
5710
5711
# File 'lib/ruby24_parser.rb', line 5707

def _reduce_401(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_402(val, _values, result) ⇒ Object



5713
5714
5715
5716
5717
# File 'lib/ruby24_parser.rb', line 5713

def _reduce_402(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_403(val, _values, result) ⇒ Object



5719
5720
5721
5722
5723
# File 'lib/ruby24_parser.rb', line 5719

def _reduce_403(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_404(val, _values, result) ⇒ Object



5725
5726
5727
5728
5729
# File 'lib/ruby24_parser.rb', line 5725

def _reduce_404(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_405(val, _values, result) ⇒ Object



5731
5732
5733
5734
5735
# File 'lib/ruby24_parser.rb', line 5731

def _reduce_405(val, _values, result)
                      result = args(val) << nil
                    
    result
end

#_reduce_406(val, _values, result) ⇒ Object



5737
5738
5739
5740
5741
# File 'lib/ruby24_parser.rb', line 5737

def _reduce_406(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_407(val, _values, result) ⇒ Object



5743
5744
5745
5746
5747
# File 'lib/ruby24_parser.rb', line 5743

def _reduce_407(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_408(val, _values, result) ⇒ Object



5749
5750
5751
5752
5753
# File 'lib/ruby24_parser.rb', line 5749

def _reduce_408(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_409(val, _values, result) ⇒ Object



5755
5756
5757
5758
5759
# File 'lib/ruby24_parser.rb', line 5755

def _reduce_409(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_41(val, _values, result) ⇒ Object



3803
3804
3805
3806
3807
# File 'lib/ruby24_parser.rb', line 3803

def _reduce_41(val, _values, result)
                      result = new_op_asgn val
                    
    result
end

#_reduce_410(val, _values, result) ⇒ Object



5761
5762
5763
5764
5765
# File 'lib/ruby24_parser.rb', line 5761

def _reduce_410(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_411(val, _values, result) ⇒ Object



5767
5768
5769
5770
5771
# File 'lib/ruby24_parser.rb', line 5767

def _reduce_411(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_412(val, _values, result) ⇒ Object



5773
5774
5775
5776
5777
# File 'lib/ruby24_parser.rb', line 5773

def _reduce_412(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_413(val, _values, result) ⇒ Object



5779
5780
5781
5782
5783
# File 'lib/ruby24_parser.rb', line 5779

def _reduce_413(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_414(val, _values, result) ⇒ Object



5785
5786
5787
5788
5789
# File 'lib/ruby24_parser.rb', line 5785

def _reduce_414(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_415(val, _values, result) ⇒ Object



5791
5792
5793
5794
# File 'lib/ruby24_parser.rb', line 5791

def _reduce_415(val, _values, result)
 result = 0 
    result
end

#_reduce_416(val, _values, result) ⇒ Object



5796
5797
5798
5799
5800
# File 'lib/ruby24_parser.rb', line 5796

def _reduce_416(val, _values, result)
                      self.lexer.command_start = true
                    
    result
end

#_reduce_417(val, _values, result) ⇒ Object



5802
5803
5804
5805
5806
5807
# File 'lib/ruby24_parser.rb', line 5802

def _reduce_417(val, _values, result)
                      # TODO: current_arg = 0
                      result = args val
                    
    result
end

#_reduce_418(val, _values, result) ⇒ Object



5809
5810
5811
5812
5813
# File 'lib/ruby24_parser.rb', line 5809

def _reduce_418(val, _values, result)
                      result = s(:args).line lexer.lineno
                    
    result
end

#_reduce_419(val, _values, result) ⇒ Object



5815
5816
5817
5818
5819
5820
# File 'lib/ruby24_parser.rb', line 5815

def _reduce_419(val, _values, result)
                      # TODO: current_arg = 0
                      result = args val
                    
    result
end

#_reduce_42(val, _values, result) ⇒ Object



3809
3810
3811
3812
3813
# File 'lib/ruby24_parser.rb', line 3809

def _reduce_42(val, _values, result)
                      result = new_op_asgn1 val
                    
    result
end

#_reduce_421(val, _values, result) ⇒ Object

reduce 420 omitted



5824
5825
5826
5827
5828
# File 'lib/ruby24_parser.rb', line 5824

def _reduce_421(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_422(val, _values, result) ⇒ Object



5830
5831
5832
5833
5834
# File 'lib/ruby24_parser.rb', line 5830

def _reduce_422(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_423(val, _values, result) ⇒ Object



5836
5837
5838
5839
5840
# File 'lib/ruby24_parser.rb', line 5836

def _reduce_423(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_424(val, _values, result) ⇒ Object



5842
5843
5844
5845
5846
5847
5848
# File 'lib/ruby24_parser.rb', line 5842

def _reduce_424(val, _values, result)
                      id, = val
                      line = lexer.lineno
                      result = s(:shadow, id.to_sym).line line
                    
    result
end

#_reduce_426(val, _values, result) ⇒ Object

reduce 425 omitted



5852
5853
5854
5855
5856
5857
5858
5859
# File 'lib/ruby24_parser.rb', line 5852

def _reduce_426(val, _values, result)
                      self.env.extend :dynamic
                      result = [lexer.lineno, lexer.lpar_beg]
                      lexer.paren_nest += 1
                      lexer.lpar_beg = lexer.paren_nest
                    
    result
end

#_reduce_427(val, _values, result) ⇒ Object



5861
5862
5863
5864
5865
# File 'lib/ruby24_parser.rb', line 5861

def _reduce_427(val, _values, result)
                      result = lexer.cmdarg.store(false)
                    
    result
end

#_reduce_428(val, _values, result) ⇒ Object



5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
# File 'lib/ruby24_parser.rb', line 5867

def _reduce_428(val, _values, result)
                      (line, lpar), args, cmdarg, body = val
                      lexer.lpar_beg = lpar

                      lexer.cmdarg.restore cmdarg
                      lexer.cmdarg.lexpop

                      call = s(:lambda).line line
                      result = new_iter call, args, body
                      result.line = line
                      self.env.unextend
                    
    result
end

#_reduce_429(val, _values, result) ⇒ Object



5882
5883
5884
5885
5886
# File 'lib/ruby24_parser.rb', line 5882

def _reduce_429(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_43(val, _values, result) ⇒ Object



3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
# File 'lib/ruby24_parser.rb', line 3815

def _reduce_43(val, _values, result)
                      prim, _, id, opasgn, rhs = val
                      result = s(:op_asgn, prim, rhs, id.to_sym, opasgn.to_sym)
                      if val[1] == '&.'
                        result.sexp_type = :safe_op_asgn
                      end
                      result.line = val[0].line
                    
    result
end

#_reduce_430(val, _values, result) ⇒ Object



5888
5889
5890
5891
5892
5893
# File 'lib/ruby24_parser.rb', line 5888

def _reduce_430(val, _values, result)
                      result = val[0]
                      result = 0 if result == s(:args)
                    
    result
end

#_reduce_431(val, _values, result) ⇒ Object



5895
5896
5897
5898
5899
# File 'lib/ruby24_parser.rb', line 5895

def _reduce_431(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_432(val, _values, result) ⇒ Object



5901
5902
5903
5904
5905
# File 'lib/ruby24_parser.rb', line 5901

def _reduce_432(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_433(val, _values, result) ⇒ Object



5907
5908
5909
5910
5911
5912
# File 'lib/ruby24_parser.rb', line 5907

def _reduce_433(val, _values, result)
                      (_, line), iter, _ = val
                      result = iter.line line
                    
    result
end

#_reduce_434(val, _values, result) ⇒ Object



5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
# File 'lib/ruby24_parser.rb', line 5914

def _reduce_434(val, _values, result)
                      # TODO:
                      ## if (nd_type($1) == NODE_YIELD) {
                      ##     compile_error(PARSER_ARG "block given to yield");

                      syntax_error "Both block arg and actual block given." if
                        val[0].block_pass?

                      val = invert_block_call val if inverted? val

                      cmd, blk = val

                      result = blk
                      result.insert 1, cmd
                    
    result
end

#_reduce_435(val, _values, result) ⇒ Object



5932
5933
5934
5935
5936
# File 'lib/ruby24_parser.rb', line 5932

def _reduce_435(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

#_reduce_436(val, _values, result) ⇒ Object



5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
# File 'lib/ruby24_parser.rb', line 5938

def _reduce_436(val, _values, result)
                      iter1, _, name, args, iter2 = val

                      call = new_call iter1, name.to_sym, args
                      iter2.insert 1, call

                      result = iter2
                    
    result
end

#_reduce_437(val, _values, result) ⇒ Object



5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
# File 'lib/ruby24_parser.rb', line 5949

def _reduce_437(val, _values, result)
                      iter1, _, name, args, iter2 = val

                      call = new_call iter1, name.to_sym, args
                      iter2.insert 1, call

                      result = iter2
                    
    result
end

#_reduce_438(val, _values, result) ⇒ Object



5960
5961
5962
5963
5964
# File 'lib/ruby24_parser.rb', line 5960

def _reduce_438(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_439(val, _values, result) ⇒ Object



5966
5967
5968
5969
5970
5971
5972
5973
# File 'lib/ruby24_parser.rb', line 5966

def _reduce_439(val, _values, result)
                      call, lineno, args = val

                      result = call.concat args.sexp_body if args
                      result.line lineno
                    
    result
end

#_reduce_44(val, _values, result) ⇒ Object



3826
3827
3828
3829
3830
3831
3832
3833
3834
# File 'lib/ruby24_parser.rb', line 3826

def _reduce_44(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2].to_sym, val[3].to_sym)
                      if val[1] == '&.'
                        result.sexp_type = :safe_op_asgn
                      end
                      result.line = val[0].line
                    
    result
end

#_reduce_440(val, _values, result) ⇒ Object



5975
5976
5977
5978
5979
# File 'lib/ruby24_parser.rb', line 5975

def _reduce_440(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3], val[1]
                    
    result
end

#_reduce_441(val, _values, result) ⇒ Object



5981
5982
5983
5984
5985
# File 'lib/ruby24_parser.rb', line 5981

def _reduce_441(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

#_reduce_442(val, _values, result) ⇒ Object



5987
5988
5989
5990
5991
# File 'lib/ruby24_parser.rb', line 5987

def _reduce_442(val, _values, result)
                      result = new_call val[0], val[2].to_sym
                    
    result
end

#_reduce_443(val, _values, result) ⇒ Object



5993
5994
5995
5996
5997
# File 'lib/ruby24_parser.rb', line 5993

def _reduce_443(val, _values, result)
                      result = new_call val[0], :call, val[2], val[1]
                    
    result
end

#_reduce_444(val, _values, result) ⇒ Object



5999
6000
6001
6002
6003
# File 'lib/ruby24_parser.rb', line 5999

def _reduce_444(val, _values, result)
                      result = new_call val[0], :call, val[2]
                    
    result
end

#_reduce_445(val, _values, result) ⇒ Object



6005
6006
6007
6008
6009
# File 'lib/ruby24_parser.rb', line 6005

def _reduce_445(val, _values, result)
                      result = new_super val[1]
                    
    result
end

#_reduce_446(val, _values, result) ⇒ Object



6011
6012
6013
6014
6015
# File 'lib/ruby24_parser.rb', line 6011

def _reduce_446(val, _values, result)
                      result = s(:zsuper).line lexer.lineno
                    
    result
end

#_reduce_447(val, _values, result) ⇒ Object



6017
6018
6019
6020
6021
# File 'lib/ruby24_parser.rb', line 6017

def _reduce_447(val, _values, result)
                      result = new_aref val
                    
    result
end

#_reduce_448(val, _values, result) ⇒ Object



6023
6024
6025
6026
6027
6028
# File 'lib/ruby24_parser.rb', line 6023

def _reduce_448(val, _values, result)
                      self.env.extend :dynamic
                      result = self.lexer.lineno
                    
    result
end

#_reduce_449(val, _values, result) ⇒ Object



6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
# File 'lib/ruby24_parser.rb', line 6030

def _reduce_449(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      self.env.unextend
                    
    result
end

#_reduce_45(val, _values, result) ⇒ Object



3836
3837
3838
3839
3840
3841
# File 'lib/ruby24_parser.rb', line 3836

def _reduce_45(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                      debug20 4, val, result
                    
    result
end

#_reduce_450(val, _values, result) ⇒ Object



6041
6042
6043
6044
6045
6046
# File 'lib/ruby24_parser.rb', line 6041

def _reduce_450(val, _values, result)
                      self.env.extend :dynamic
                      result = self.lexer.lineno
                    
    result
end

#_reduce_451(val, _values, result) ⇒ Object



6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
# File 'lib/ruby24_parser.rb', line 6048

def _reduce_451(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      self.env.unextend
                    
    result
end

#_reduce_452(val, _values, result) ⇒ Object



6059
6060
6061
6062
# File 'lib/ruby24_parser.rb', line 6059

def _reduce_452(val, _values, result)
 self.env.extend :dynamic; result = self.lexer.lineno 
    result
end

#_reduce_453(val, _values, result) ⇒ Object



6064
6065
6066
6067
# File 'lib/ruby24_parser.rb', line 6064

def _reduce_453(val, _values, result)
 result = lexer.cmdarg.store(false) 
    result
end

#_reduce_454(val, _values, result) ⇒ Object



6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
# File 'lib/ruby24_parser.rb', line 6069

def _reduce_454(val, _values, result)
                      line, cmdarg, param, cmpstmt = val

                      result = new_brace_body param, cmpstmt, line
                      self.env.unextend
                      lexer.cmdarg.restore cmdarg
                      lexer.cmdarg.pop # because of: cmdarg_stack >> 1 ?
                    
    result
end

#_reduce_455(val, _values, result) ⇒ Object



6080
6081
6082
6083
# File 'lib/ruby24_parser.rb', line 6080

def _reduce_455(val, _values, result)
 self.env.extend :dynamic; result = self.lexer.lineno 
    result
end

#_reduce_456(val, _values, result) ⇒ Object



6085
6086
6087
6088
# File 'lib/ruby24_parser.rb', line 6085

def _reduce_456(val, _values, result)
 result = lexer.cmdarg.store(false) 
    result
end

#_reduce_457(val, _values, result) ⇒ Object



6090
6091
6092
6093
6094
6095
6096
6097
6098
# File 'lib/ruby24_parser.rb', line 6090

def _reduce_457(val, _values, result)
                      line, cmdarg, param, cmpstmt = val

                      result = new_do_body param, cmpstmt, line
                      self.env.unextend
                      lexer.cmdarg.restore cmdarg
                    
    result
end

#_reduce_458(val, _values, result) ⇒ Object



6100
6101
6102
6103
6104
# File 'lib/ruby24_parser.rb', line 6100

def _reduce_458(val, _values, result)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_459(val, _values, result) ⇒ Object



6106
6107
6108
6109
6110
6111
6112
# File 'lib/ruby24_parser.rb', line 6106

def _reduce_459(val, _values, result)
                      result = new_when(val[2], val[4])
                      result.line = val[1]
                      result << val[5] if val[5]
                    
    result
end

#_reduce_46(val, _values, result) ⇒ Object



3843
3844
3845
3846
3847
3848
# File 'lib/ruby24_parser.rb', line 3843

def _reduce_46(val, _values, result)
                      result = s(:op_asgn, val[0], val[4], val[2], val[3])
                      debug20 5, val, result
                    
    result
end

#_reduce_462(val, _values, result) ⇒ Object

reduce 461 omitted



6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
# File 'lib/ruby24_parser.rb', line 6118

def _reduce_462(val, _values, result)
                      (_, line), klasses, var, _, body, rest = val

                      klasses ||= s(:array)
                      klasses << new_assign(var, s(:gvar, :"$!").line(var.line)) if var
                      klasses.line line

                      result = new_resbody(klasses, body)
                      result << rest if rest # UGH, rewritten above
                    
    result
end

#_reduce_463(val, _values, result) ⇒ Object



6131
6132
6133
6134
6135
# File 'lib/ruby24_parser.rb', line 6131

def _reduce_463(val, _values, result)
                      result = nil
                    
    result
end

#_reduce_464(val, _values, result) ⇒ Object



6137
6138
6139
6140
6141
6142
# File 'lib/ruby24_parser.rb', line 6137

def _reduce_464(val, _values, result)
                      arg, = val
                      result = s(:array, arg).line arg.line
                    
    result
end

#_reduce_467(val, _values, result) ⇒ Object

reduce 466 omitted



6148
6149
6150
6151
6152
# File 'lib/ruby24_parser.rb', line 6148

def _reduce_467(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_469(val, _values, result) ⇒ Object

reduce 468 omitted



6156
6157
6158
6159
6160
6161
6162
# File 'lib/ruby24_parser.rb', line 6156

def _reduce_469(val, _values, result)
                      (_, line), body = val

                      result = body || s(:nil).line(line)
                    
    result
end

#_reduce_47(val, _values, result) ⇒ Object



3850
3851
3852
3853
3854
# File 'lib/ruby24_parser.rb', line 3850

def _reduce_47(val, _values, result)
                      self.backref_assign_error val[0]
                    
    result
end

#_reduce_471(val, _values, result) ⇒ Object

reduce 470 omitted



6166
6167
6168
6169
6170
6171
6172
# File 'lib/ruby24_parser.rb', line 6166

def _reduce_471(val, _values, result)
                      line = lexer.lineno
                      result = s(:lit, val[0])
                      result.line = line
                    
    result
end

#_reduce_472(val, _values, result) ⇒ Object



6174
6175
6176
6177
6178
6179
6180
# File 'lib/ruby24_parser.rb', line 6174

def _reduce_472(val, _values, result)
                      line = lexer.lineno
                      result = s(:lit, val[0])
                      result.line = line
                    
    result
end

#_reduce_474(val, _values, result) ⇒ Object

reduce 473 omitted



6184
6185
6186
6187
6188
6189
6190
# File 'lib/ruby24_parser.rb', line 6184

def _reduce_474(val, _values, result)
                      str, = val
                      str = s(:dstr, str.value) if str.sexp_type == :evstr
                      result = str
                    
    result
end

#_reduce_475(val, _values, result) ⇒ Object



6192
6193
6194
6195
6196
# File 'lib/ruby24_parser.rb', line 6192

def _reduce_475(val, _values, result)
                      debug20 23, val, result
                    
    result
end

#_reduce_477(val, _values, result) ⇒ Object

reduce 476 omitted



6200
6201
6202
6203
6204
# File 'lib/ruby24_parser.rb', line 6200

def _reduce_477(val, _values, result)
                      result = self.literal_concat val[0], val[1]
                    
    result
end

#_reduce_478(val, _values, result) ⇒ Object



6206
6207
6208
6209
6210
6211
6212
6213
6214
# File 'lib/ruby24_parser.rb', line 6206

def _reduce_478(val, _values, result)
                      _, str, (_, func) = val

                      str = dedent str if func =~ RubyLexer::STR_FUNC_ICNTNT

                      result = str
                    
    result
end

#_reduce_479(val, _values, result) ⇒ Object



6216
6217
6218
6219
6220
# File 'lib/ruby24_parser.rb', line 6216

def _reduce_479(val, _values, result)
                      result = new_string val
                    
    result
end

#_reduce_48(val, _values, result) ⇒ Object



3856
3857
3858
3859
3860
3861
# File 'lib/ruby24_parser.rb', line 3856

def _reduce_48(val, _values, result)
                      expr, = val
                      result = value_expr expr
                    
    result
end

#_reduce_480(val, _values, result) ⇒ Object



6222
6223
6224
6225
6226
6227
# File 'lib/ruby24_parser.rb', line 6222

def _reduce_480(val, _values, result)
                      result = new_xstring val[1]
                      # TODO: dedent?!?! SERIOUSLY?!?
                    
    result
end

#_reduce_481(val, _values, result) ⇒ Object



6229
6230
6231
6232
6233
# File 'lib/ruby24_parser.rb', line 6229

def _reduce_481(val, _values, result)
                      result = new_regexp val
                    
    result
end

#_reduce_482(val, _values, result) ⇒ Object



6235
6236
6237
6238
6239
# File 'lib/ruby24_parser.rb', line 6235

def _reduce_482(val, _values, result)
                      result = s(:array).line lexer.lineno
                    
    result
end

#_reduce_483(val, _values, result) ⇒ Object



6241
6242
6243
6244
6245
# File 'lib/ruby24_parser.rb', line 6241

def _reduce_483(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_484(val, _values, result) ⇒ Object



6247
6248
6249
6250
6251
# File 'lib/ruby24_parser.rb', line 6247

def _reduce_484(val, _values, result)
                      result = new_word_list
                    
    result
end

#_reduce_485(val, _values, result) ⇒ Object



6253
6254
6255
6256
6257
# File 'lib/ruby24_parser.rb', line 6253

def _reduce_485(val, _values, result)
                      result = val[0].dup << new_word_list_entry(val)
                    
    result
end

#_reduce_487(val, _values, result) ⇒ Object

reduce 486 omitted



6261
6262
6263
6264
6265
# File 'lib/ruby24_parser.rb', line 6261

def _reduce_487(val, _values, result)
                      result = self.literal_concat val[0], val[1]
                    
    result
end

#_reduce_488(val, _values, result) ⇒ Object



6267
6268
6269
6270
6271
# File 'lib/ruby24_parser.rb', line 6267

def _reduce_488(val, _values, result)
                      result = s(:array).line lexer.lineno
                    
    result
end

#_reduce_489(val, _values, result) ⇒ Object



6273
6274
6275
6276
# File 'lib/ruby24_parser.rb', line 6273

def _reduce_489(val, _values, result)
 result = lexer.lineno 
    result
end

#_reduce_49(val, _values, result) ⇒ Object



3863
3864
3865
3866
3867
3868
3869
3870
3871
# File 'lib/ruby24_parser.rb', line 3863

def _reduce_49(val, _values, result)
                      expr, (_, line), resbody = val

                      expr = value_expr expr
                      ary  = s(:array).line line
                      result = new_rescue(expr, new_resbody(ary, resbody))
                    
    result
end

#_reduce_490(val, _values, result) ⇒ Object



6278
6279
6280
6281
6282
6283
6284
# File 'lib/ruby24_parser.rb', line 6278

def _reduce_490(val, _values, result)
                      _, line, list, _, = val
                      list.line = line
                      result = list
                    
    result
end

#_reduce_491(val, _values, result) ⇒ Object



6286
6287
6288
6289
6290
# File 'lib/ruby24_parser.rb', line 6286

def _reduce_491(val, _values, result)
                      result = new_symbol_list.line lexer.lineno
                    
    result
end

#_reduce_492(val, _values, result) ⇒ Object



6292
6293
6294
6295
6296
6297
# File 'lib/ruby24_parser.rb', line 6292

def _reduce_492(val, _values, result)
                      list, * = val
                      result = list.dup << new_symbol_list_entry(val)
                    
    result
end

#_reduce_493(val, _values, result) ⇒ Object



6299
6300
6301
6302
6303
# File 'lib/ruby24_parser.rb', line 6299

def _reduce_493(val, _values, result)
                      result = s(:array).line lexer.lineno
                    
    result
end

#_reduce_494(val, _values, result) ⇒ Object



6305
6306
6307
6308
6309
# File 'lib/ruby24_parser.rb', line 6305

def _reduce_494(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_495(val, _values, result) ⇒ Object



6311
6312
6313
6314
6315
# File 'lib/ruby24_parser.rb', line 6311

def _reduce_495(val, _values, result)
                      result = s(:array).line lexer.lineno # FIX
                    
    result
end

#_reduce_496(val, _values, result) ⇒ Object



6317
6318
6319
6320
6321
# File 'lib/ruby24_parser.rb', line 6317

def _reduce_496(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_497(val, _values, result) ⇒ Object



6323
6324
6325
6326
6327
# File 'lib/ruby24_parser.rb', line 6323

def _reduce_497(val, _values, result)
                      result = new_qword_list
                    
    result
end

#_reduce_498(val, _values, result) ⇒ Object



6329
6330
6331
6332
6333
# File 'lib/ruby24_parser.rb', line 6329

def _reduce_498(val, _values, result)
                      result = val[0].dup << new_qword_list_entry(val)
                    
    result
end

#_reduce_499(val, _values, result) ⇒ Object



6335
6336
6337
6338
6339
# File 'lib/ruby24_parser.rb', line 6335

def _reduce_499(val, _values, result)
                      result = new_qsym_list
                    
    result
end

#_reduce_500(val, _values, result) ⇒ Object



6341
6342
6343
6344
6345
# File 'lib/ruby24_parser.rb', line 6341

def _reduce_500(val, _values, result)
                      result = val[0].dup << new_qsym_list_entry(val)
                    
    result
end

#_reduce_501(val, _values, result) ⇒ Object



6347
6348
6349
6350
6351
# File 'lib/ruby24_parser.rb', line 6347

def _reduce_501(val, _values, result)
                      result = s(:str, "").line lexer.lineno
                    
    result
end

#_reduce_502(val, _values, result) ⇒ Object



6353
6354
6355
6356
6357
6358
# File 'lib/ruby24_parser.rb', line 6353

def _reduce_502(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2
                    
    result
end

#_reduce_503(val, _values, result) ⇒ Object



6360
6361
6362
6363
6364
# File 'lib/ruby24_parser.rb', line 6360

def _reduce_503(val, _values, result)
                      result = nil
                    
    result
end

#_reduce_504(val, _values, result) ⇒ Object



6366
6367
6368
6369
6370
6371
# File 'lib/ruby24_parser.rb', line 6366

def _reduce_504(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2
                    
    result
end

#_reduce_505(val, _values, result) ⇒ Object



6373
6374
6375
6376
6377
# File 'lib/ruby24_parser.rb', line 6373

def _reduce_505(val, _values, result)
                      result = nil
                    
    result
end

#_reduce_506(val, _values, result) ⇒ Object



6379
6380
6381
6382
6383
6384
# File 'lib/ruby24_parser.rb', line 6379

def _reduce_506(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2
                    
    result
end

#_reduce_507(val, _values, result) ⇒ Object



6386
6387
6388
6389
6390
# File 'lib/ruby24_parser.rb', line 6386

def _reduce_507(val, _values, result)
                      result = new_string val
                    
    result
end

#_reduce_508(val, _values, result) ⇒ Object



6392
6393
6394
6395
6396
6397
6398
6399
# File 'lib/ruby24_parser.rb', line 6392

def _reduce_508(val, _values, result)
                      result = lexer.lex_strterm

                      lexer.lex_strterm = nil
                      lexer.lex_state = EXPR_BEG
                    
    result
end

#_reduce_509(val, _values, result) ⇒ Object



6401
6402
6403
6404
6405
6406
6407
# File 'lib/ruby24_parser.rb', line 6401

def _reduce_509(val, _values, result)
                      _, strterm, str = val
                      lexer.lex_strterm = strterm
                      result = s(:evstr, str).line str.line
                    
    result
end

#_reduce_510(val, _values, result) ⇒ Object



6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
# File 'lib/ruby24_parser.rb', line 6409

def _reduce_510(val, _values, result)
                      result = [lexer.lex_strterm,
                                lexer.brace_nest,
                                lexer.string_nest, # TODO: remove
                                lexer.cond.store,
                                lexer.cmdarg.store,
                                lexer.lex_state,
                                lexer.lineno,
                               ]

                      lexer.lex_strterm = nil
                      lexer.brace_nest  = 0
                      lexer.string_nest = 0

                      lexer.lex_state   = EXPR_BEG
                    
    result
end

#_reduce_511(val, _values, result) ⇒ Object



6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
# File 'lib/ruby24_parser.rb', line 6428

def _reduce_511(val, _values, result)
                      _, memo, stmt, _ = val

                      lex_strterm, brace_nest, string_nest, oldcond, oldcmdarg, oldlex_state, line = memo

                      lexer.lex_strterm = lex_strterm
                      lexer.brace_nest  = brace_nest
                      lexer.string_nest = string_nest

                      lexer.cond.restore oldcond
                      lexer.cmdarg.restore oldcmdarg

                      lexer.lex_state = oldlex_state

                      case stmt
                      when Sexp then
                        case stmt.sexp_type
                        when :str, :dstr, :evstr then
                          result = stmt
                        else
                          result = s(:evstr, stmt).line line
                        end
                      when nil then
                        result = s(:evstr).line line
                      else
                        debug20 25
                        raise "unknown string body: #{stmt.inspect}"
                      end
                    
    result
end

#_reduce_512(val, _values, result) ⇒ Object



6460
6461
6462
6463
# File 'lib/ruby24_parser.rb', line 6460

def _reduce_512(val, _values, result)
 result = s(:gvar, val[0].to_sym).line lexer.lineno 
    result
end

#_reduce_513(val, _values, result) ⇒ Object



6465
6466
6467
6468
# File 'lib/ruby24_parser.rb', line 6465

def _reduce_513(val, _values, result)
 result = s(:ivar, val[0].to_sym).line lexer.lineno 
    result
end

#_reduce_514(val, _values, result) ⇒ Object



6470
6471
6472
6473
# File 'lib/ruby24_parser.rb', line 6470

def _reduce_514(val, _values, result)
 result = s(:cvar, val[0].to_sym).line lexer.lineno 
    result
end

#_reduce_516(val, _values, result) ⇒ Object

reduce 515 omitted



6477
6478
6479
6480
6481
6482
# File 'lib/ruby24_parser.rb', line 6477

def _reduce_516(val, _values, result)
                      lexer.lex_state = EXPR_END
                      result = val[1].to_sym
                    
    result
end

#_reduce_517(val, _values, result) ⇒ Object



6484
6485
6486
6487
6488
# File 'lib/ruby24_parser.rb', line 6484

def _reduce_517(val, _values, result)
                      result = val[0].to_sym
                    
    result
end

#_reduce_52(val, _values, result) ⇒ Object

reduce 51 omitted



3877
3878
3879
3880
3881
3882
# File 'lib/ruby24_parser.rb', line 3877

def _reduce_52(val, _values, result)
                      lhs, _, rhs = val
                      result = logical_op :and, lhs, rhs
                    
    result
end

#_reduce_522(val, _values, result) ⇒ Object

reduce 521 omitted



6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
# File 'lib/ruby24_parser.rb', line 6498

def _reduce_522(val, _values, result)
                      _, result, _ = val

                      lexer.lex_state = EXPR_END

                      result ||= s(:str, "").line lexer.lineno

                      case result.sexp_type
                      when :dstr then
                        result.sexp_type = :dsym
                      when :str then
                        result = s(:lit, result.last.to_sym).line result.line
                      when :evstr then
                        result = s(:dsym, "", result).line result.line
                      else
                        debug20 26, val, result
                      end
                    
    result
end

#_reduce_524(val, _values, result) ⇒ Object

reduce 523 omitted



6521
6522
6523
6524
6525
# File 'lib/ruby24_parser.rb', line 6521

def _reduce_524(val, _values, result)
                      result = -val[1] # TODO: pt_testcase
                    
    result
end

#_reduce_53(val, _values, result) ⇒ Object



3884
3885
3886
3887
3888
3889
# File 'lib/ruby24_parser.rb', line 3884

def _reduce_53(val, _values, result)
                      lhs, _, rhs = val
                      result = logical_op :or, lhs, rhs
                    
    result
end

#_reduce_534(val, _values, result) ⇒ Object

reduce 533 omitted



6545
6546
6547
6548
# File 'lib/ruby24_parser.rb', line 6545

def _reduce_534(val, _values, result)
 result = s(:nil).line lexer.lineno 
    result
end

#_reduce_535(val, _values, result) ⇒ Object



6550
6551
6552
6553
# File 'lib/ruby24_parser.rb', line 6550

def _reduce_535(val, _values, result)
 result = s(:self).line lexer.lineno 
    result
end

#_reduce_536(val, _values, result) ⇒ Object



6555
6556
6557
6558
# File 'lib/ruby24_parser.rb', line 6555

def _reduce_536(val, _values, result)
 result = s(:true).line lexer.lineno 
    result
end

#_reduce_537(val, _values, result) ⇒ Object



6560
6561
6562
6563
# File 'lib/ruby24_parser.rb', line 6560

def _reduce_537(val, _values, result)
 result = s(:false).line lexer.lineno 
    result
end

#_reduce_538(val, _values, result) ⇒ Object



6565
6566
6567
6568
# File 'lib/ruby24_parser.rb', line 6565

def _reduce_538(val, _values, result)
 result = s(:str, self.file).line lexer.lineno 
    result
end

#_reduce_539(val, _values, result) ⇒ Object



6570
6571
6572
6573
# File 'lib/ruby24_parser.rb', line 6570

def _reduce_539(val, _values, result)
 result = s(:lit, lexer.lineno).line lexer.lineno 
    result
end

#_reduce_54(val, _values, result) ⇒ Object



3891
3892
3893
3894
3895
3896
3897
# File 'lib/ruby24_parser.rb', line 3891

def _reduce_54(val, _values, result)
                      (_, line), _, expr = val
                      result = new_call(expr, :"!").line line
                      # REFACTOR: call_uni_op
                    
    result
end

#_reduce_540(val, _values, result) ⇒ Object



6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
# File 'lib/ruby24_parser.rb', line 6575

def _reduce_540(val, _values, result)
                      l = lexer.lineno
                      result =
                        if defined? Encoding then
                          s(:colon2, s(:const, :Encoding).line(l), :UTF_8).line l
                        else
                          s(:str, "Unsupported!").line l
                        end
                    
    result
end

#_reduce_541(val, _values, result) ⇒ Object



6587
6588
6589
6590
6591
6592
# File 'lib/ruby24_parser.rb', line 6587

def _reduce_541(val, _values, result)
                      var = val[0]
                      result = Sexp === var ? var : self.gettable(var)
                    
    result
end

#_reduce_542(val, _values, result) ⇒ Object



6594
6595
6596
6597
6598
6599
# File 'lib/ruby24_parser.rb', line 6594

def _reduce_542(val, _values, result)
                      var = val[0]
                      result = Sexp === var ? var : self.gettable(var)
                    
    result
end

#_reduce_543(val, _values, result) ⇒ Object



6601
6602
6603
6604
6605
# File 'lib/ruby24_parser.rb', line 6601

def _reduce_543(val, _values, result)
                      result = self.assignable val[0]
                    
    result
end

#_reduce_544(val, _values, result) ⇒ Object



6607
6608
6609
6610
6611
6612
# File 'lib/ruby24_parser.rb', line 6607

def _reduce_544(val, _values, result)
                      result = self.assignable val[0]
                      debug20 29, val, result
                    
    result
end

#_reduce_545(val, _values, result) ⇒ Object



6614
6615
6616
6617
# File 'lib/ruby24_parser.rb', line 6614

def _reduce_545(val, _values, result)
 result = s(:nth_ref,  val[0]).line lexer.lineno 
    result
end

#_reduce_546(val, _values, result) ⇒ Object



6619
6620
6621
6622
# File 'lib/ruby24_parser.rb', line 6619

def _reduce_546(val, _values, result)
 result = s(:back_ref, val[0]).line lexer.lineno 
    result
end

#_reduce_547(val, _values, result) ⇒ Object



6624
6625
6626
6627
6628
6629
# File 'lib/ruby24_parser.rb', line 6624

def _reduce_547(val, _values, result)
                      lexer.lex_state = EXPR_BEG
                      lexer.command_start = true
                    
    result
end

#_reduce_548(val, _values, result) ⇒ Object



6631
6632
6633
6634
6635
# File 'lib/ruby24_parser.rb', line 6631

def _reduce_548(val, _values, result)
                      result = val[2]
                    
    result
end

#_reduce_549(val, _values, result) ⇒ Object



6637
6638
6639
6640
6641
# File 'lib/ruby24_parser.rb', line 6637

def _reduce_549(val, _values, result)
                      result = nil
                    
    result
end

#_reduce_55(val, _values, result) ⇒ Object



3899
3900
3901
3902
3903
3904
3905
3906
# File 'lib/ruby24_parser.rb', line 3899

def _reduce_55(val, _values, result)
                      _, cmd = val
                      result = new_call(cmd, :"!").line cmd.line
                      # TODO: fix line number to tBANG... but causes BAD shift/reduce conflict
                      # REFACTOR: call_uni_op -- see parse26.y
                    
    result
end

#_reduce_550(val, _values, result) ⇒ Object



6643
6644
6645
6646
6647
6648
6649
# File 'lib/ruby24_parser.rb', line 6643

def _reduce_550(val, _values, result)
                      result = val[1]
                      self.lexer.lex_state = EXPR_BEG
                      self.lexer.command_start = true
                    
    result
end

#_reduce_551(val, _values, result) ⇒ Object



6651
6652
6653
6654
6655
6656
6657
# File 'lib/ruby24_parser.rb', line 6651

def _reduce_551(val, _values, result)
                      result = self.in_kwarg
                      self.in_kwarg = true
                      self.lexer.lex_state |= EXPR_LABEL
                    
    result
end

#_reduce_552(val, _values, result) ⇒ Object



6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
# File 'lib/ruby24_parser.rb', line 6659

def _reduce_552(val, _values, result)
                      kwarg, args, _ = val

                      self.in_kwarg = kwarg
                      result = args
                      lexer.lex_state     = EXPR_BEG
                      lexer.command_start = true
                    
    result
end

#_reduce_553(val, _values, result) ⇒ Object



6670
6671
6672
6673
6674
# File 'lib/ruby24_parser.rb', line 6670

def _reduce_553(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_554(val, _values, result) ⇒ Object



6676
6677
6678
6679
6680
# File 'lib/ruby24_parser.rb', line 6676

def _reduce_554(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_555(val, _values, result) ⇒ Object



6682
6683
6684
6685
6686
# File 'lib/ruby24_parser.rb', line 6682

def _reduce_555(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_557(val, _values, result) ⇒ Object

reduce 556 omitted



6690
6691
6692
6693
6694
# File 'lib/ruby24_parser.rb', line 6690

def _reduce_557(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_558(val, _values, result) ⇒ Object



6696
6697
6698
6699
6700
# File 'lib/ruby24_parser.rb', line 6696

def _reduce_558(val, _values, result)
                      result = nil
                    
    result
end

#_reduce_559(val, _values, result) ⇒ Object



6702
6703
6704
6705
6706
# File 'lib/ruby24_parser.rb', line 6702

def _reduce_559(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_560(val, _values, result) ⇒ Object



6708
6709
6710
6711
6712
# File 'lib/ruby24_parser.rb', line 6708

def _reduce_560(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_561(val, _values, result) ⇒ Object



6714
6715
6716
6717
6718
# File 'lib/ruby24_parser.rb', line 6714

def _reduce_561(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_562(val, _values, result) ⇒ Object



6720
6721
6722
6723
6724
# File 'lib/ruby24_parser.rb', line 6720

def _reduce_562(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_563(val, _values, result) ⇒ Object



6726
6727
6728
6729
6730
# File 'lib/ruby24_parser.rb', line 6726

def _reduce_563(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_564(val, _values, result) ⇒ Object



6732
6733
6734
6735
6736
# File 'lib/ruby24_parser.rb', line 6732

def _reduce_564(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_565(val, _values, result) ⇒ Object



6738
6739
6740
6741
6742
# File 'lib/ruby24_parser.rb', line 6738

def _reduce_565(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_566(val, _values, result) ⇒ Object



6744
6745
6746
6747
6748
# File 'lib/ruby24_parser.rb', line 6744

def _reduce_566(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_567(val, _values, result) ⇒ Object



6750
6751
6752
6753
6754
# File 'lib/ruby24_parser.rb', line 6750

def _reduce_567(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_568(val, _values, result) ⇒ Object



6756
6757
6758
6759
6760
# File 'lib/ruby24_parser.rb', line 6756

def _reduce_568(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_569(val, _values, result) ⇒ Object



6762
6763
6764
6765
6766
# File 'lib/ruby24_parser.rb', line 6762

def _reduce_569(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_57(val, _values, result) ⇒ Object

reduce 56 omitted



3910
3911
3912
3913
3914
# File 'lib/ruby24_parser.rb', line 3910

def _reduce_57(val, _values, result)
                      result = value_expr(val[0])
                    
    result
end

#_reduce_570(val, _values, result) ⇒ Object



6768
6769
6770
6771
6772
# File 'lib/ruby24_parser.rb', line 6768

def _reduce_570(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_571(val, _values, result) ⇒ Object



6774
6775
6776
6777
6778
# File 'lib/ruby24_parser.rb', line 6774

def _reduce_571(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_572(val, _values, result) ⇒ Object



6780
6781
6782
6783
6784
# File 'lib/ruby24_parser.rb', line 6780

def _reduce_572(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_573(val, _values, result) ⇒ Object



6786
6787
6788
6789
6790
# File 'lib/ruby24_parser.rb', line 6786

def _reduce_573(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_574(val, _values, result) ⇒ Object



6792
6793
6794
6795
6796
# File 'lib/ruby24_parser.rb', line 6792

def _reduce_574(val, _values, result)
                      yyerror "formal argument cannot be a constant"
                    
    result
end

#_reduce_575(val, _values, result) ⇒ Object



6798
6799
6800
6801
6802
# File 'lib/ruby24_parser.rb', line 6798

def _reduce_575(val, _values, result)
                      yyerror "formal argument cannot be an instance variable"
                    
    result
end

#_reduce_576(val, _values, result) ⇒ Object



6804
6805
6806
6807
6808
# File 'lib/ruby24_parser.rb', line 6804

def _reduce_576(val, _values, result)
                      yyerror "formal argument cannot be a global variable"
                    
    result
end

#_reduce_577(val, _values, result) ⇒ Object



6810
6811
6812
6813
6814
# File 'lib/ruby24_parser.rb', line 6810

def _reduce_577(val, _values, result)
                      yyerror "formal argument cannot be a class variable"
                    
    result
end

#_reduce_579(val, _values, result) ⇒ Object

reduce 578 omitted



6818
6819
6820
6821
6822
6823
6824
6825
# File 'lib/ruby24_parser.rb', line 6818

def _reduce_579(val, _values, result)
                      identifier = val[0].to_sym
                      self.env[identifier] = :lvar

                      result = identifier
                    
    result
end

#_reduce_58(val, _values, result) ⇒ Object



3916
3917
3918
3919
3920
# File 'lib/ruby24_parser.rb', line 3916

def _reduce_58(val, _values, result)
                      lexer.cond.push true
                    
    result
end

#_reduce_582(val, _values, result) ⇒ Object

reduce 581 omitted



6831
6832
6833
6834
6835
# File 'lib/ruby24_parser.rb', line 6831

def _reduce_582(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_583(val, _values, result) ⇒ Object



6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
# File 'lib/ruby24_parser.rb', line 6837

def _reduce_583(val, _values, result)
                      arg, = val

                      case arg
                      when Symbol then
                        result = s(:args, arg).line lexer.lineno
                      when Sexp then
                        result = arg
                      else
                        debug20 32
                        raise "Unknown f_arg type: #{val.inspect}"
                      end
                    
    result
end

#_reduce_584(val, _values, result) ⇒ Object



6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
# File 'lib/ruby24_parser.rb', line 6853

def _reduce_584(val, _values, result)
                      list, _, item = val

                      if list.sexp_type == :args then
                        result = list
                      else
                        result = s(:args, list).line list.line
                      end

                      result << item
                    
    result
end

#_reduce_586(val, _values, result) ⇒ Object

reduce 585 omitted



6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
# File 'lib/ruby24_parser.rb', line 6869

def _reduce_586(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), arg = val

                      identifier = label.to_sym
                      self.env[identifier] = :lvar

                      kwarg  = s(:kwarg, identifier, arg).line line
                      result = s(:array, kwarg).line line
                    
    result
end

#_reduce_587(val, _values, result) ⇒ Object



6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
# File 'lib/ruby24_parser.rb', line 6882

def _reduce_587(val, _values, result)
                      (label, line), = val

                      id = label.to_sym
                      self.env[id] = :lvar

                      result = s(:array, s(:kwarg, id).line(line)).line line
                    
    result
end

#_reduce_588(val, _values, result) ⇒ Object



6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
# File 'lib/ruby24_parser.rb', line 6893

def _reduce_588(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), expr = val
                      id = label.to_sym
                      self.env[id] = :lvar

                      result = s(:array, s(:kwarg, id, expr).line(line)).line line
                    
    result
end

#_reduce_589(val, _values, result) ⇒ Object



6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
# File 'lib/ruby24_parser.rb', line 6904

def _reduce_589(val, _values, result)
                      # TODO: new_kw_arg
                      (label, line), = val
                      id = label.to_sym
                      self.env[id] = :lvar

                      result = s(:array, s(:kwarg, id).line(line)).line line
                    
    result
end

#_reduce_59(val, _values, result) ⇒ Object



3922
3923
3924
3925
3926
# File 'lib/ruby24_parser.rb', line 3922

def _reduce_59(val, _values, result)
                      lexer.cond.pop
                    
    result
end

#_reduce_591(val, _values, result) ⇒ Object

reduce 590 omitted



6917
6918
6919
6920
6921
6922
# File 'lib/ruby24_parser.rb', line 6917

def _reduce_591(val, _values, result)
                      list, _, item = val
                      result = list << item.last
                    
    result
end

#_reduce_593(val, _values, result) ⇒ Object

reduce 592 omitted



6926
6927
6928
6929
6930
# File 'lib/ruby24_parser.rb', line 6926

def _reduce_593(val, _values, result)
                      result = args val
                    
    result
end

#_reduce_596(val, _values, result) ⇒ Object

reduce 595 omitted



6936
6937
6938
6939
6940
6941
6942
# File 'lib/ruby24_parser.rb', line 6936

def _reduce_596(val, _values, result)
                      name = val[1].to_sym
                      self.assignable name
                      result = :"**#{name}"
                    
    result
end

#_reduce_597(val, _values, result) ⇒ Object



6944
6945
6946
6947
6948
# File 'lib/ruby24_parser.rb', line 6944

def _reduce_597(val, _values, result)
                      result = :"**"
                    
    result
end

#_reduce_598(val, _values, result) ⇒ Object



6950
6951
6952
6953
6954
6955
# File 'lib/ruby24_parser.rb', line 6950

def _reduce_598(val, _values, result)
                      result = self.assignable val[0], val[2]
                      # TODO: detect duplicate names
                    
    result
end

#_reduce_599(val, _values, result) ⇒ Object



6957
6958
6959
6960
6961
# File 'lib/ruby24_parser.rb', line 6957

def _reduce_599(val, _values, result)
                      result = self.assignable val[0], val[2]
                    
    result
end

#_reduce_6(val, _values, result) ⇒ Object

reduce 5 omitted



3587
3588
3589
3590
3591
# File 'lib/ruby24_parser.rb', line 3587

def _reduce_6(val, _values, result)
                      result = self.block_append val[0], val[2]
                    
    result
end

#_reduce_60(val, _values, result) ⇒ Object



3928
3929
3930
3931
3932
3933
# File 'lib/ruby24_parser.rb', line 3928

def _reduce_60(val, _values, result)
                      _, expr, _, _ = val
                      result = expr
                    
    result
end

#_reduce_600(val, _values, result) ⇒ Object



6963
6964
6965
6966
6967
6968
# File 'lib/ruby24_parser.rb', line 6963

def _reduce_600(val, _values, result)
                      optblk, = val
                      result = s(:block, optblk).line optblk.line
                    
    result
end

#_reduce_601(val, _values, result) ⇒ Object



6970
6971
6972
6973
6974
6975
6976
# File 'lib/ruby24_parser.rb', line 6970

def _reduce_601(val, _values, result)
                      optarg, _, optblk = val
                      result = optarg
                      result << optblk
                    
    result
end

#_reduce_602(val, _values, result) ⇒ Object



6978
6979
6980
6981
6982
6983
# File 'lib/ruby24_parser.rb', line 6978

def _reduce_602(val, _values, result)
                      opt, = val
                      result = s(:block, opt).line opt.line
                    
    result
end

#_reduce_603(val, _values, result) ⇒ Object



6985
6986
6987
6988
6989
# File 'lib/ruby24_parser.rb', line 6985

def _reduce_603(val, _values, result)
                      result = self.block_append val[0], val[2]
                    
    result
end

#_reduce_606(val, _values, result) ⇒ Object

reduce 605 omitted



6995
6996
6997
6998
6999
7000
7001
7002
# File 'lib/ruby24_parser.rb', line 6995

def _reduce_606(val, _values, result)
                      # TODO: differs from parse.y - needs tests
                      name = val[1].to_sym
                      self.assignable name
                      result = :"*#{name}"
                    
    result
end

#_reduce_607(val, _values, result) ⇒ Object



7004
7005
7006
7007
7008
7009
7010
# File 'lib/ruby24_parser.rb', line 7004

def _reduce_607(val, _values, result)
                      name = :"*"
                      self.env[name] = :lvar
                      result = name
                    
    result
end

#_reduce_610(val, _values, result) ⇒ Object

reduce 609 omitted



7016
7017
7018
7019
7020
7021
7022
7023
# File 'lib/ruby24_parser.rb', line 7016

def _reduce_610(val, _values, result)
                      identifier = val[1].to_sym

                      self.env[identifier] = :lvar
                      result = "&#{identifier}".to_sym
                    
    result
end

#_reduce_611(val, _values, result) ⇒ Object



7025
7026
7027
7028
7029
# File 'lib/ruby24_parser.rb', line 7025

def _reduce_611(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_612(val, _values, result) ⇒ Object



7031
7032
7033
7034
7035
# File 'lib/ruby24_parser.rb', line 7031

def _reduce_612(val, _values, result)
                      result = nil
                    
    result
end

#_reduce_614(val, _values, result) ⇒ Object

reduce 613 omitted



7039
7040
7041
7042
7043
# File 'lib/ruby24_parser.rb', line 7039

def _reduce_614(val, _values, result)
                      lexer.lex_state = EXPR_BEG
                    
    result
end

#_reduce_615(val, _values, result) ⇒ Object



7045
7046
7047
7048
7049
7050
7051
# File 'lib/ruby24_parser.rb', line 7045

def _reduce_615(val, _values, result)
                      result = val[2]
                      yyerror "Can't define single method for literals." if
                        result.sexp_type == :lit
                    
    result
end

#_reduce_616(val, _values, result) ⇒ Object



7053
7054
7055
7056
7057
# File 'lib/ruby24_parser.rb', line 7053

def _reduce_616(val, _values, result)
                      result = s(:array).line lexer.lineno
                    
    result
end

#_reduce_619(val, _values, result) ⇒ Object

reduce 618 omitted



7063
7064
7065
7066
7067
7068
7069
7070
7071
# File 'lib/ruby24_parser.rb', line 7063

def _reduce_619(val, _values, result)
                      list = val[0].dup
                      more = val[2].sexp_body
                      list.push(*more) unless more.empty?
                      result = list
                      result.sexp_type = :hash
                    
    result
end

#_reduce_620(val, _values, result) ⇒ Object



7073
7074
7075
7076
7077
7078
# File 'lib/ruby24_parser.rb', line 7073

def _reduce_620(val, _values, result)
                      v1, _, v2 = val
                      result = s(:array, v1, v2).line v1.line
                    
    result
end

#_reduce_621(val, _values, result) ⇒ Object



7080
7081
7082
7083
7084
7085
7086
7087
# File 'lib/ruby24_parser.rb', line 7080

def _reduce_621(val, _values, result)
                      (label, line), arg = val

                      lit = s(:lit, label.to_sym).line line
                      result = s(:array, lit, arg).line line
                    
    result
end

#_reduce_622(val, _values, result) ⇒ Object



7089
7090
7091
7092
7093
7094
7095
# File 'lib/ruby24_parser.rb', line 7089

def _reduce_622(val, _values, result)
                      _, sym, _, value = val
                      sym.sexp_type = :dsym
                      result = s(:array, sym, value).line sym.line
                    
    result
end

#_reduce_623(val, _values, result) ⇒ Object



7097
7098
7099
7100
7101
7102
7103
# File 'lib/ruby24_parser.rb', line 7097

def _reduce_623(val, _values, result)
                      _, arg = val
                      line = arg.line
                      result = s(:array, s(:kwsplat, arg).line(line)).line line
                    
    result
end

#_reduce_64(val, _values, result) ⇒ Object

reduce 63 omitted



3941
3942
3943
3944
3945
3946
# File 'lib/ruby24_parser.rb', line 3941

def _reduce_64(val, _values, result)
                      blk, _, msg, args = val
                      result = new_call(blk, msg.to_sym, args).line blk.line
                    
    result
end

#_reduce_649(val, _values, result) ⇒ Object

reduce 648 omitted



7155
7156
7157
7158
# File 'lib/ruby24_parser.rb', line 7155

def _reduce_649(val, _values, result)
 yyerrok 
    result
end

#_reduce_65(val, _values, result) ⇒ Object



3948
3949
3950
3951
3952
3953
# File 'lib/ruby24_parser.rb', line 3948

def _reduce_65(val, _values, result)
                      # self.env.extend(:dynamic)
                      result = self.lexer.lineno
                    
    result
end

#_reduce_652(val, _values, result) ⇒ Object

reduce 651 omitted



7164
7165
7166
7167
# File 'lib/ruby24_parser.rb', line 7164

def _reduce_652(val, _values, result)
 yyerrok 
    result
end

#_reduce_653(val, _values, result) ⇒ Object



7169
7170
7171
7172
# File 'lib/ruby24_parser.rb', line 7169

def _reduce_653(val, _values, result)
 result = nil; 
    result
end

#_reduce_66(val, _values, result) ⇒ Object



3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
# File 'lib/ruby24_parser.rb', line 3955

def _reduce_66(val, _values, result)
                      _, line, body, _ = val

                      result = body
                      result.line = line

                      # self.env.unextend
                    
    result
end

#_reduce_67(val, _values, result) ⇒ Object



3966
3967
3968
3969
3970
3971
# File 'lib/ruby24_parser.rb', line 3966

def _reduce_67(val, _values, result)
                      msg, = val
                      result = new_call(nil, msg.to_sym).line lexer.lineno
                    
    result
end

#_reduce_68(val, _values, result) ⇒ Object



3973
3974
3975
3976
3977
3978
# File 'lib/ruby24_parser.rb', line 3973

def _reduce_68(val, _values, result)
                      call, args = val
                      result = call.concat args.sexp_body
                    
    result
end

#_reduce_69(val, _values, result) ⇒ Object



3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
# File 'lib/ruby24_parser.rb', line 3980

def _reduce_69(val, _values, result)
                      call, args, block = val

                      result = call.concat args.sexp_body

                      if block then
                        block_dup_check result, block

                        result, operation = block, result
                        result.insert 1, operation
                      end
                    
    result
end

#_reduce_70(val, _values, result) ⇒ Object



3995
3996
3997
3998
3999
4000
# File 'lib/ruby24_parser.rb', line 3995

def _reduce_70(val, _values, result)
                      lhs, callop, op, args = val
                      result = new_call lhs, op.to_sym, args, callop
                    
    result
end

#_reduce_71(val, _values, result) ⇒ Object



4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
# File 'lib/ruby24_parser.rb', line 4002

def _reduce_71(val, _values, result)
                      recv, _, msg, args, block = val
                      call = new_call recv, msg.to_sym, args, val[1]

                      block_dup_check call, block

                      block.insert 1, call
                      result = block
                    
    result
end

#_reduce_72(val, _values, result) ⇒ Object



4014
4015
4016
4017
4018
# File 'lib/ruby24_parser.rb', line 4014

def _reduce_72(val, _values, result)
                      result = new_call val[0], val[2].to_sym, val[3]
                    
    result
end

#_reduce_73(val, _values, result) ⇒ Object



4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
# File 'lib/ruby24_parser.rb', line 4020

def _reduce_73(val, _values, result)
                      recv, _, msg, args, block = val
                      call = new_call recv, msg.to_sym, args

                      block_dup_check call, block

                      block.insert 1, call
                      result = block
                    
    result
end

#_reduce_74(val, _values, result) ⇒ Object



4032
4033
4034
4035
4036
# File 'lib/ruby24_parser.rb', line 4032

def _reduce_74(val, _values, result)
                      result = new_super val[1]
                    
    result
end

#_reduce_75(val, _values, result) ⇒ Object



4038
4039
4040
4041
4042
4043
4044
# File 'lib/ruby24_parser.rb', line 4038

def _reduce_75(val, _values, result)
                      (_, line), args = val
                      result = new_yield args
                      result.line line # TODO: push to new_yield
                    
    result
end

#_reduce_76(val, _values, result) ⇒ Object



4046
4047
4048
4049
4050
4051
# File 'lib/ruby24_parser.rb', line 4046

def _reduce_76(val, _values, result)
                      line = val[0].last
                      result = s(:return, ret_args(val[1])).line(line)
                    
    result
end

#_reduce_77(val, _values, result) ⇒ Object



4053
4054
4055
4056
4057
4058
# File 'lib/ruby24_parser.rb', line 4053

def _reduce_77(val, _values, result)
                      (_, line), args = val
                      result = s(:break, ret_args(args)).line line
                    
    result
end

#_reduce_78(val, _values, result) ⇒ Object



4060
4061
4062
4063
4064
4065
# File 'lib/ruby24_parser.rb', line 4060

def _reduce_78(val, _values, result)
                      line = val[0].last
                      result = s(:next, ret_args(val[1])).line(line)
                    
    result
end

#_reduce_80(val, _values, result) ⇒ Object

reduce 79 omitted



4069
4070
4071
4072
4073
# File 'lib/ruby24_parser.rb', line 4069

def _reduce_80(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_82(val, _values, result) ⇒ Object

reduce 81 omitted



4077
4078
4079
4080
4081
4082
4083
4084
# File 'lib/ruby24_parser.rb', line 4077

def _reduce_82(val, _values, result)
                      _, arg, _ = val
                      l = arg.line

                      result = s(:masgn, s(:array, arg).line(l)).line l
                    
    result
end

#_reduce_83(val, _values, result) ⇒ Object



4086
4087
4088
4089
4090
4091
# File 'lib/ruby24_parser.rb', line 4086

def _reduce_83(val, _values, result)
                      head, = val
                      result = s(:masgn, head).line head.line
                    
    result
end

#_reduce_84(val, _values, result) ⇒ Object



4093
4094
4095
4096
4097
4098
# File 'lib/ruby24_parser.rb', line 4093

def _reduce_84(val, _values, result)
                      lhs, rhs = val
                      result = s(:masgn, lhs << rhs.compact).line lhs.line
                    
    result
end

#_reduce_85(val, _values, result) ⇒ Object



4100
4101
4102
4103
4104
4105
4106
# File 'lib/ruby24_parser.rb', line 4100

def _reduce_85(val, _values, result)
                      head, _, tail = val
                      head << s(:splat, tail).line(tail.line)
                      result = s(:masgn, head).line head.line
                    
    result
end

#_reduce_86(val, _values, result) ⇒ Object



4108
4109
4110
4111
4112
4113
4114
4115
4116
# File 'lib/ruby24_parser.rb', line 4108

def _reduce_86(val, _values, result)
                      ary1, _, splat, _, ary2 = val

                      result = list_append ary1, s(:splat, splat).line(splat.line)
                      result.concat ary2.sexp_body
                      result = s(:masgn, result).line result.line
                    
    result
end

#_reduce_87(val, _values, result) ⇒ Object



4118
4119
4120
4121
4122
4123
4124
# File 'lib/ruby24_parser.rb', line 4118

def _reduce_87(val, _values, result)
                      head, _ = val
                      l = head.line
                      result = s(:masgn, head << s(:splat).line(l)).line l
                    
    result
end

#_reduce_88(val, _values, result) ⇒ Object



4126
4127
4128
4129
4130
4131
4132
4133
# File 'lib/ruby24_parser.rb', line 4126

def _reduce_88(val, _values, result)
                      head, _, _, post = val
                      ary = list_append head, s(:splat).line(head.line)
                      ary.concat post.sexp_body
                      result = s(:masgn, ary).line ary.line
                    
    result
end

#_reduce_89(val, _values, result) ⇒ Object



4135
4136
4137
4138
4139
4140
4141
4142
4143
# File 'lib/ruby24_parser.rb', line 4135

def _reduce_89(val, _values, result)
                      _, node = val
                      l = node.line
                      splat  = s(:splat, node).line l
                      ary    = s(:array, splat).line l
                      result = s(:masgn, ary).line l
                    
    result
end

#_reduce_9(val, _values, result) ⇒ Object

reduce 8 omitted



3597
3598
3599
3600
3601
3602
3603
3604
3605
# File 'lib/ruby24_parser.rb', line 3597

def _reduce_9(val, _values, result)
                      if (self.in_def || self.in_single > 0) then
                        debug20 1
                        yyerror "BEGIN in method"
                      end
                      self.env.extend
                    
    result
end

#_reduce_90(val, _values, result) ⇒ Object



4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
# File 'lib/ruby24_parser.rb', line 4145

def _reduce_90(val, _values, result)
                      _, node, _, post = val

                      splat = s(:splat, node).line node.line
                      ary = s(:array, splat).line splat.line
                      ary.concat post.sexp_body
                      result = s(:masgn, ary).line ary.line
                    
    result
end

#_reduce_91(val, _values, result) ⇒ Object



4156
4157
4158
4159
4160
4161
# File 'lib/ruby24_parser.rb', line 4156

def _reduce_91(val, _values, result)
                      l = lexer.lineno
                      result = s(:masgn, s(:array, s(:splat).line(l)).line(l)).line l
                    
    result
end

#_reduce_92(val, _values, result) ⇒ Object



4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
# File 'lib/ruby24_parser.rb', line 4163

def _reduce_92(val, _values, result)
                      _, _, post = val
                      l = post.line

                      splat = s(:splat).line l
                      ary = s(:array, splat, *post.sexp_body).line l
                      result = s(:masgn, ary).line l
                    
    result
end

#_reduce_94(val, _values, result) ⇒ Object

reduce 93 omitted



4176
4177
4178
4179
4180
# File 'lib/ruby24_parser.rb', line 4176

def _reduce_94(val, _values, result)
                      result = val[1]
                    
    result
end

#_reduce_95(val, _values, result) ⇒ Object



4182
4183
4184
4185
4186
4187
# File 'lib/ruby24_parser.rb', line 4182

def _reduce_95(val, _values, result)
                      lhs, _ = val
                      result = s(:array, lhs).line lhs.line
                    
    result
end

#_reduce_96(val, _values, result) ⇒ Object



4189
4190
4191
4192
4193
# File 'lib/ruby24_parser.rb', line 4189

def _reduce_96(val, _values, result)
                      result = val[0] << val[1].compact
                    
    result
end

#_reduce_97(val, _values, result) ⇒ Object



4195
4196
4197
4198
4199
4200
# File 'lib/ruby24_parser.rb', line 4195

def _reduce_97(val, _values, result)
                      item, = val
                      result = s(:array, item).line item.line
                    
    result
end

#_reduce_98(val, _values, result) ⇒ Object



4202
4203
4204
4205
4206
# File 'lib/ruby24_parser.rb', line 4202

def _reduce_98(val, _values, result)
                      result = list_append val[0], val[2]
                    
    result
end

#_reduce_99(val, _values, result) ⇒ Object



4208
4209
4210
4211
4212
# File 'lib/ruby24_parser.rb', line 4208

def _reduce_99(val, _values, result)
                      result = self.assignable val[0]
                    
    result
end

#_reduce_none(val, _values, result) ⇒ Object



7174
7175
7176
# File 'lib/ruby24_parser.rb', line 7174

def _reduce_none(val, _values, result)
  val[0]
end