Class: Ruby25Parser

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

Direct Known Subclasses

RubyParser::V25

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",
"tBDOT2",
"tBDOT3",
"$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",
"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",
"@12",
"@13",
"@14",
"@15",
"@16",
"@17",
"@18",
"@19",
"@20",
"@21",
"@22",
"@23",
"@24",
"@25",
"@26",
"@27",
"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",
"@28",
"@29",
"f_args",
"do_block",
"do_body",
"operation3",
"@30",
"@31",
"@32",
"@33",
"@34",
"@35",
"@36",
"cases",
"@37",
"exc_list",
"exc_var",
"numeric",
"string",
"string1",
"string_contents",
"xstring_contents",
"regexp_contents",
"word_list",
"word",
"string_content",
"symbol_list",
"@38",
"qword_list",
"qsym_list",
"string_dvar",
"@39",
"@40",
"sym",
"@41",
"args_tail",
"@42",
"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",
"@43",
"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, #last_token_type, #lexer

Instance Method Summary collapse

Methods inherited from RubyParser::Parser

inherited, version, version=

Methods included from RubyParserStuff

#_racc_do_reduce, #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_begin, #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



3574
3575
3576
3577
3578
# File 'lib/ruby25_parser.rb', line 3574

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

    result
end

#_reduce_10(val, _values, result) ⇒ Object



3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
# File 'lib/ruby25_parser.rb', line 3620

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



4229
4230
4231
4232
4233
# File 'lib/ruby25_parser.rb', line 4229

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

    result
end

#_reduce_101(val, _values, result) ⇒ Object



4235
4236
4237
4238
4239
# File 'lib/ruby25_parser.rb', line 4235

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

    result
end

#_reduce_102(val, _values, result) ⇒ Object



4241
4242
4243
4244
4245
# File 'lib/ruby25_parser.rb', line 4241

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

    result
end

#_reduce_103(val, _values, result) ⇒ Object



4247
4248
4249
4250
4251
4252
# File 'lib/ruby25_parser.rb', line 4247

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

    result
end

#_reduce_104(val, _values, result) ⇒ Object



4254
4255
4256
4257
4258
# File 'lib/ruby25_parser.rb', line 4254

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

    result
end

#_reduce_105(val, _values, result) ⇒ Object



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

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



4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
# File 'lib/ruby25_parser.rb', line 4274

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



4288
4289
4290
4291
4292
# File 'lib/ruby25_parser.rb', line 4288

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

    result
end

#_reduce_108(val, _values, result) ⇒ Object



4294
4295
4296
4297
4298
4299
4300
# File 'lib/ruby25_parser.rb', line 4294

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



4302
4303
4304
4305
4306
4307
4308
4309
# File 'lib/ruby25_parser.rb', line 4302

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



3632
3633
3634
3635
# File 'lib/ruby25_parser.rb', line 3632

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

#_reduce_110(val, _values, result) ⇒ Object



4311
4312
4313
4314
4315
4316
# File 'lib/ruby25_parser.rb', line 4311

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

    result
end

#_reduce_111(val, _values, result) ⇒ Object



4318
4319
4320
4321
4322
4323
# File 'lib/ruby25_parser.rb', line 4318

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

    result
end

#_reduce_112(val, _values, result) ⇒ Object



4325
4326
4327
4328
4329
4330
# File 'lib/ruby25_parser.rb', line 4325

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

    result
end

#_reduce_113(val, _values, result) ⇒ Object



4332
4333
4334
4335
4336
# File 'lib/ruby25_parser.rb', line 4332

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

    result
end

#_reduce_114(val, _values, result) ⇒ Object



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

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



4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
# File 'lib/ruby25_parser.rb', line 4352

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



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

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

    result
end

#_reduce_117(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_119(val, _values, result) ⇒ Object

reduce 118 omitted



4380
4381
4382
4383
4384
4385
# File 'lib/ruby25_parser.rb', line 4380

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



3637
3638
3639
3640
3641
3642
# File 'lib/ruby25_parser.rb', line 3637

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



4387
4388
4389
4390
4391
# File 'lib/ruby25_parser.rb', line 4387

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

    result
end

#_reduce_121(val, _values, result) ⇒ Object



4393
4394
4395
4396
4397
4398
4399
4400
# File 'lib/ruby25_parser.rb', line 4393

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



4408
4409
4410
4411
4412
4413
# File 'lib/ruby25_parser.rb', line 4408

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

    result
end

#_reduce_126(val, _values, result) ⇒ Object



4415
4416
4417
4418
4419
4420
4421
# File 'lib/ruby25_parser.rb', line 4415

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



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

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



3644
3645
3646
3647
3648
3649
# File 'lib/ruby25_parser.rb', line 3644

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



4436
4437
4438
4439
4440
# File 'lib/ruby25_parser.rb', line 4436

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

    result
end

#_reduce_132(val, _values, result) ⇒ Object



4442
4443
4444
4445
4446
# File 'lib/ruby25_parser.rb', line 4442

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

    result
end

#_reduce_133(val, _values, result) ⇒ Object



4448
4449
4450
4451
4452
# File 'lib/ruby25_parser.rb', line 4448

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

    result
end

#_reduce_14(val, _values, result) ⇒ Object



3651
3652
3653
3654
3655
3656
3657
# File 'lib/ruby25_parser.rb', line 3651

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



3659
3660
3661
3662
3663
3664
3665
# File 'lib/ruby25_parser.rb', line 3659

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



3667
3668
3669
3670
3671
# File 'lib/ruby25_parser.rb', line 3667

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

    result
end

#_reduce_19(val, _values, result) ⇒ Object

reduce 18 omitted



3677
3678
3679
3680
3681
# File 'lib/ruby25_parser.rb', line 3677

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

    result
end

#_reduce_2(val, _values, result) ⇒ Object



3580
3581
3582
3583
3584
3585
3586
3587
# File 'lib/ruby25_parser.rb', line 3580

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

                      lexer.cond.pop # local_pop
                      lexer.cmdarg.pop

    result
end

#_reduce_20(val, _values, result) ⇒ Object



3683
3684
3685
3686
3687
3688
# File 'lib/ruby25_parser.rb', line 3683

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

    result
end

#_reduce_206(val, _values, result) ⇒ Object

reduce 205 omitted



4598
4599
4600
4601
4602
# File 'lib/ruby25_parser.rb', line 4598

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

    result
end

#_reduce_207(val, _values, result) ⇒ Object



4604
4605
4606
4607
4608
# File 'lib/ruby25_parser.rb', line 4604

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

    result
end

#_reduce_208(val, _values, result) ⇒ Object



4610
4611
4612
4613
4614
# File 'lib/ruby25_parser.rb', line 4610

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

    result
end

#_reduce_209(val, _values, result) ⇒ Object



4616
4617
4618
4619
4620
# File 'lib/ruby25_parser.rb', line 4616

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

    result
end

#_reduce_210(val, _values, result) ⇒ Object



4622
4623
4624
4625
4626
# File 'lib/ruby25_parser.rb', line 4622

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

    result
end

#_reduce_211(val, _values, result) ⇒ Object



4628
4629
4630
4631
4632
4633
4634
# File 'lib/ruby25_parser.rb', line 4628

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



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

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



4645
4646
4647
4648
4649
# File 'lib/ruby25_parser.rb', line 4645

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

    result
end

#_reduce_214(val, _values, result) ⇒ Object



4651
4652
4653
4654
4655
4656
4657
4658
# File 'lib/ruby25_parser.rb', line 4651

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



4660
4661
4662
4663
4664
4665
4666
# File 'lib/ruby25_parser.rb', line 4660

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



4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
# File 'lib/ruby25_parser.rb', line 4668

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



4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
# File 'lib/ruby25_parser.rb', line 4679

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



4690
4691
4692
4693
4694
# File 'lib/ruby25_parser.rb', line 4690

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

    result
end

#_reduce_219(val, _values, result) ⇒ Object



4696
4697
4698
4699
4700
# File 'lib/ruby25_parser.rb', line 4696

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



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

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

    result
end

#_reduce_220(val, _values, result) ⇒ Object



4702
4703
4704
4705
4706
# File 'lib/ruby25_parser.rb', line 4702

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

    result
end

#_reduce_221(val, _values, result) ⇒ Object



4708
4709
4710
4711
4712
# File 'lib/ruby25_parser.rb', line 4708

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

    result
end

#_reduce_222(val, _values, result) ⇒ Object



4714
4715
4716
4717
4718
# File 'lib/ruby25_parser.rb', line 4714

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

    result
end

#_reduce_223(val, _values, result) ⇒ Object



4720
4721
4722
4723
4724
# File 'lib/ruby25_parser.rb', line 4720

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

    result
end

#_reduce_224(val, _values, result) ⇒ Object



4726
4727
4728
4729
4730
4731
4732
# File 'lib/ruby25_parser.rb', line 4726

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



4734
4735
4736
4737
4738
# File 'lib/ruby25_parser.rb', line 4734

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

    result
end

#_reduce_226(val, _values, result) ⇒ Object



4740
4741
4742
4743
4744
# File 'lib/ruby25_parser.rb', line 4740

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

    result
end

#_reduce_227(val, _values, result) ⇒ Object



4746
4747
4748
4749
4750
# File 'lib/ruby25_parser.rb', line 4746

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

    result
end

#_reduce_228(val, _values, result) ⇒ Object



4752
4753
4754
4755
4756
# File 'lib/ruby25_parser.rb', line 4752

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

    result
end

#_reduce_229(val, _values, result) ⇒ Object



4758
4759
4760
4761
4762
# File 'lib/ruby25_parser.rb', line 4758

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

    result
end

#_reduce_23(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_230(val, _values, result) ⇒ Object



4764
4765
4766
4767
4768
# File 'lib/ruby25_parser.rb', line 4764

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



4772
4773
4774
4775
4776
# File 'lib/ruby25_parser.rb', line 4772

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

    result
end

#_reduce_233(val, _values, result) ⇒ Object



4778
4779
4780
4781
4782
# File 'lib/ruby25_parser.rb', line 4778

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

    result
end

#_reduce_234(val, _values, result) ⇒ Object



4784
4785
4786
4787
4788
# File 'lib/ruby25_parser.rb', line 4784

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

    result
end

#_reduce_235(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_236(val, _values, result) ⇒ Object



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

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



4804
4805
4806
4807
4808
4809
4810
# File 'lib/ruby25_parser.rb', line 4804

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

    result
end

#_reduce_238(val, _values, result) ⇒ Object



4812
4813
4814
4815
4816
# File 'lib/ruby25_parser.rb', line 4812

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

    result
end

#_reduce_239(val, _values, result) ⇒ Object



4818
4819
4820
4821
4822
4823
4824
# File 'lib/ruby25_parser.rb', line 4818

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



3704
3705
3706
3707
3708
3709
# File 'lib/ruby25_parser.rb', line 3704

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



4826
4827
4828
4829
4830
4831
4832
# File 'lib/ruby25_parser.rb', line 4826

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



4834
4835
4836
4837
4838
# File 'lib/ruby25_parser.rb', line 4834

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

    result
end

#_reduce_242(val, _values, result) ⇒ Object



4840
4841
4842
4843
4844
# File 'lib/ruby25_parser.rb', line 4840

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

    result
end

#_reduce_243(val, _values, result) ⇒ Object



4846
4847
4848
4849
4850
4851
# File 'lib/ruby25_parser.rb', line 4846

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

    result
end

#_reduce_244(val, _values, result) ⇒ Object



4853
4854
4855
4856
4857
4858
# File 'lib/ruby25_parser.rb', line 4853

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



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

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



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

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



4877
4878
4879
4880
4881
4882
4883
# File 'lib/ruby25_parser.rb', line 4877

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



4885
4886
4887
4888
4889
# File 'lib/ruby25_parser.rb', line 4885

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

    result
end

#_reduce_254(val, _values, result) ⇒ Object

reduce 253 omitted



4893
4894
4895
4896
4897
# File 'lib/ruby25_parser.rb', line 4893

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

    result
end

#_reduce_255(val, _values, result) ⇒ Object



4899
4900
4901
4902
4903
# File 'lib/ruby25_parser.rb', line 4899

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

    result
end

#_reduce_256(val, _values, result) ⇒ Object



4905
4906
4907
4908
4909
# File 'lib/ruby25_parser.rb', line 4905

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

    result
end

#_reduce_258(val, _values, result) ⇒ Object

reduce 257 omitted



4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
# File 'lib/ruby25_parser.rb', line 4913

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



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

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

    result
end

#_reduce_26(val, _values, result) ⇒ Object



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

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



4939
4940
4941
4942
4943
# File 'lib/ruby25_parser.rb', line 4939

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

    result
end

#_reduce_265(val, _values, result) ⇒ Object



4945
4946
4947
4948
4949
# File 'lib/ruby25_parser.rb', line 4945

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

    result
end

#_reduce_266(val, _values, result) ⇒ Object



4951
4952
4953
4954
4955
# File 'lib/ruby25_parser.rb', line 4951

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

    result
end

#_reduce_267(val, _values, result) ⇒ Object



4957
4958
4959
4960
4961
4962
# File 'lib/ruby25_parser.rb', line 4957

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



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

def _reduce_268(val, _values, result)
                      result = call_args val

    result
end

#_reduce_269(val, _values, result) ⇒ Object



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

def _reduce_269(val, _values, result)
                      result = call_args [array_to_hash(val[0]), val[1]]

    result
end

#_reduce_27(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_270(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_271(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_272(val, _values, result) ⇒ Object



4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
# File 'lib/ruby25_parser.rb', line 4988

def _reduce_272(val, _values, result)
                      # parse26.y line 2200

                      # If call_args starts with a open paren '(' or
                      # '[', look-ahead reading of the letters calls
                      # CMDARG_PUSH(0), but the push must be done
                      # after CMDARG_PUSH(1). So this code makes them
                      # consistent by first cancelling the premature
                      # CMDARG_PUSH(0), doing CMDARG_PUSH(1), and
                      # finally redoing CMDARG_PUSH(0).

                      result = yychar = self.last_token_type.first
                      lookahead = [:tLPAREN, :tLPAREN_ARG, :tLPAREN2, :tLBRACK, :tLBRACK2].include?(yychar)
                      lexer.cmdarg.pop if lookahead
                      lexer.cmdarg.push true
                      lexer.cmdarg.push false if lookahead

    result
end

#_reduce_273(val, _values, result) ⇒ Object



5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
# File 'lib/ruby25_parser.rb', line 5008

def _reduce_273(val, _values, result)
                      yychar, args = val

                      # call_args can be followed by tLBRACE_ARG (that
                      # does CMDARG_PUSH(0) in the lexer) but the push
                      # must be done after CMDARG_POP() in the parser.
                      # So this code does CMDARG_POP() to pop 0 pushed
                      # by tLBRACE_ARG, CMDARG_POP() to pop 1 pushed
                      # by command_args, and CMDARG_PUSH(0) to restore
                      # back the flag set by tLBRACE_ARG.

                      lookahead = [:tLBRACE_ARG].include?(yychar)
                      lexer.cmdarg.pop if lookahead
                      lexer.cmdarg.pop
                      lexer.cmdarg.push false if lookahead
                      result = args

    result
end

#_reduce_274(val, _values, result) ⇒ Object



5028
5029
5030
5031
5032
5033
# File 'lib/ruby25_parser.rb', line 5028

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

    result
end

#_reduce_275(val, _values, result) ⇒ Object



5035
5036
5037
5038
5039
# File 'lib/ruby25_parser.rb', line 5035

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

    result
end

#_reduce_277(val, _values, result) ⇒ Object

reduce 276 omitted



5043
5044
5045
5046
5047
5048
5049
5050
# File 'lib/ruby25_parser.rb', line 5043

def _reduce_277(val, _values, result)
                      arg, = val
                      lineno = arg.line || lexer.lineno # HACK

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

    result
end

#_reduce_278(val, _values, result) ⇒ Object



5052
5053
5054
5055
5056
5057
# File 'lib/ruby25_parser.rb', line 5052

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



5059
5060
5061
5062
5063
5064
# File 'lib/ruby25_parser.rb', line 5059

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

    result
end

#_reduce_28(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_280(val, _values, result) ⇒ Object



5066
5067
5068
5069
5070
5071
5072
5073
# File 'lib/ruby25_parser.rb', line 5066

def _reduce_280(val, _values, result)
                      # TODO: the line number from tSTAR has been dropped
                      args, _, _, id = val
                      line = lexer.lineno
                      result = self.list_append args, s(:splat, id).line(line)

    result
end

#_reduce_281(val, _values, result) ⇒ Object



5075
5076
5077
5078
5079
# File 'lib/ruby25_parser.rb', line 5075

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

    result
end

#_reduce_282(val, _values, result) ⇒ Object



5081
5082
5083
5084
5085
# File 'lib/ruby25_parser.rb', line 5081

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

    result
end

#_reduce_283(val, _values, result) ⇒ Object



5087
5088
5089
5090
5091
# File 'lib/ruby25_parser.rb', line 5087

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

    result
end

#_reduce_284(val, _values, result) ⇒ Object



5093
5094
5095
5096
5097
5098
5099
# File 'lib/ruby25_parser.rb', line 5093

def _reduce_284(val, _values, result)
                      # TODO: make all tXXXX terminals include lexer.lineno
                      arg, _, _, splat = val
                      result = self.arg_concat arg, splat

    result
end

#_reduce_285(val, _values, result) ⇒ Object



5101
5102
5103
5104
5105
5106
# File 'lib/ruby25_parser.rb', line 5101

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

    result
end

#_reduce_29(val, _values, result) ⇒ Object



3737
3738
3739
3740
3741
3742
# File 'lib/ruby25_parser.rb', line 3737

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

    result
end

#_reduce_296(val, _values, result) ⇒ Object

reduce 295 omitted



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

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

    result
end

#_reduce_297(val, _values, result) ⇒ Object



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

def _reduce_297(val, _values, result)
                      lexer.cmdarg.push false
                      result = self.lexer.lineno

    result
end

#_reduce_298(val, _values, result) ⇒ Object



5142
5143
5144
5145
5146
5147
# File 'lib/ruby25_parser.rb', line 5142

def _reduce_298(val, _values, result)
                      lexer.cmdarg.pop
                      result = new_begin val

    result
end

#_reduce_299(val, _values, result) ⇒ Object



5149
5150
5151
5152
5153
5154
# File 'lib/ruby25_parser.rb', line 5149

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

    result
end

#_reduce_3(val, _values, result) ⇒ Object



3589
3590
3591
3592
3593
3594
# File 'lib/ruby25_parser.rb', line 3589

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

    result
end

#_reduce_30(val, _values, result) ⇒ Object



3744
3745
3746
3747
3748
3749
# File 'lib/ruby25_parser.rb', line 3744

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

    result
end

#_reduce_300(val, _values, result) ⇒ Object



5156
5157
5158
5159
5160
5161
# File 'lib/ruby25_parser.rb', line 5156

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

    result
end

#_reduce_301(val, _values, result) ⇒ Object



5163
5164
5165
5166
5167
# File 'lib/ruby25_parser.rb', line 5163

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

    result
end

#_reduce_302(val, _values, result) ⇒ Object



5169
5170
5171
5172
5173
5174
5175
# File 'lib/ruby25_parser.rb', line 5169

def _reduce_302(val, _values, result)
                      _, stmt, _, _, = val
                      # warning "(...) interpreted as grouped expression"
                      result = stmt

    result
end

#_reduce_303(val, _values, result) ⇒ Object



5177
5178
5179
5180
5181
5182
5183
5184
# File 'lib/ruby25_parser.rb', line 5177

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

    result
end

#_reduce_304(val, _values, result) ⇒ Object



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

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

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

    result
end

#_reduce_305(val, _values, result) ⇒ Object



5194
5195
5196
5197
5198
5199
5200
# File 'lib/ruby25_parser.rb', line 5194

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

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

    result
end

#_reduce_306(val, _values, result) ⇒ Object



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

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

#_reduce_307(val, _values, result) ⇒ Object



5207
5208
5209
5210
5211
5212
5213
5214
# File 'lib/ruby25_parser.rb', line 5207

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

    result
end

#_reduce_308(val, _values, result) ⇒ Object



5216
5217
5218
5219
5220
# File 'lib/ruby25_parser.rb', line 5216

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

    result
end

#_reduce_309(val, _values, result) ⇒ Object



5222
5223
5224
5225
5226
# File 'lib/ruby25_parser.rb', line 5222

def _reduce_309(val, _values, result)
                      result = new_hash val

    result
end

#_reduce_31(val, _values, result) ⇒ Object



3751
3752
3753
3754
3755
3756
# File 'lib/ruby25_parser.rb', line 3751

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

    result
end

#_reduce_310(val, _values, result) ⇒ Object



5228
5229
5230
5231
5232
5233
# File 'lib/ruby25_parser.rb', line 5228

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

    result
end

#_reduce_311(val, _values, result) ⇒ Object



5235
5236
5237
5238
5239
# File 'lib/ruby25_parser.rb', line 5235

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

    result
end

#_reduce_312(val, _values, result) ⇒ Object



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

def _reduce_312(val, _values, result)
                      result = new_yield

    result
end

#_reduce_313(val, _values, result) ⇒ Object



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

def _reduce_313(val, _values, result)
                      result = new_yield

    result
end

#_reduce_314(val, _values, result) ⇒ Object



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

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

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

    result
end

#_reduce_315(val, _values, result) ⇒ Object



5261
5262
5263
5264
5265
5266
# File 'lib/ruby25_parser.rb', line 5261

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

    result
end

#_reduce_316(val, _values, result) ⇒ Object



5268
5269
5270
5271
5272
# File 'lib/ruby25_parser.rb', line 5268

def _reduce_316(val, _values, result)
                      debug20 14, val, result

    result
end

#_reduce_317(val, _values, result) ⇒ Object



5274
5275
5276
5277
5278
5279
5280
5281
5282
# File 'lib/ruby25_parser.rb', line 5274

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

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

    result
end

#_reduce_319(val, _values, result) ⇒ Object

reduce 318 omitted



5286
5287
5288
5289
5290
5291
5292
5293
# File 'lib/ruby25_parser.rb', line 5286

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

    result
end

#_reduce_32(val, _values, result) ⇒ Object



3758
3759
3760
3761
3762
3763
# File 'lib/ruby25_parser.rb', line 3758

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

    result
end

#_reduce_320(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_321(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_322(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_323(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_324(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_325(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_326(val, _values, result) ⇒ Object



5336
5337
5338
5339
5340
5341
# File 'lib/ruby25_parser.rb', line 5336

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

    result
end

#_reduce_327(val, _values, result) ⇒ Object



5343
5344
5345
5346
5347
5348
# File 'lib/ruby25_parser.rb', line 5343

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

    result
end

#_reduce_328(val, _values, result) ⇒ Object



5350
5351
5352
5353
5354
# File 'lib/ruby25_parser.rb', line 5350

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

    result
end

#_reduce_329(val, _values, result) ⇒ Object



5356
5357
5358
5359
5360
5361
5362
5363
5364
# File 'lib/ruby25_parser.rb', line 5356

def _reduce_329(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_33(val, _values, result) ⇒ Object



3765
3766
3767
3768
3769
3770
3771
3772
# File 'lib/ruby25_parser.rb', line 3765

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



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

def _reduce_330(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_331(val, _values, result) ⇒ Object



5374
5375
5376
5377
5378
# File 'lib/ruby25_parser.rb', line 5374

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

    result
end

#_reduce_332(val, _values, result) ⇒ Object



5380
5381
5382
5383
5384
5385
# File 'lib/ruby25_parser.rb', line 5380

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

    result
end

#_reduce_333(val, _values, result) ⇒ Object



5387
5388
5389
5390
5391
5392
5393
# File 'lib/ruby25_parser.rb', line 5387

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

    result
end

#_reduce_334(val, _values, result) ⇒ Object



5395
5396
5397
5398
5399
5400
5401
# File 'lib/ruby25_parser.rb', line 5395

def _reduce_334(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_335(val, _values, result) ⇒ Object



5403
5404
5405
5406
5407
# File 'lib/ruby25_parser.rb', line 5403

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

    result
end

#_reduce_336(val, _values, result) ⇒ Object



5409
5410
5411
5412
5413
5414
5415
5416
5417
# File 'lib/ruby25_parser.rb', line 5409

def _reduce_336(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_337(val, _values, result) ⇒ Object



5419
5420
5421
5422
5423
5424
5425
# File 'lib/ruby25_parser.rb', line 5419

def _reduce_337(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_338(val, _values, result) ⇒ Object



5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
# File 'lib/ruby25_parser.rb', line 5427

def _reduce_338(val, _values, result)
                      result = self.in_def

                      self.in_def = true # group = local_push
                      self.env.extend
                      lexer.cmdarg.push false
                      lexer.cond.push false

                      self.comments.push self.lexer.comments

    result
end

#_reduce_339(val, _values, result) ⇒ Object



5440
5441
5442
5443
# File 'lib/ruby25_parser.rb', line 5440

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

#_reduce_34(val, _values, result) ⇒ Object



3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
# File 'lib/ruby25_parser.rb', line 3774

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



5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
# File 'lib/ruby25_parser.rb', line 5445

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

                      result = new_defn val

                      lexer.cond.pop # group = local_pop
                      lexer.cmdarg.pop
                      self.env.unextend
                      self.in_def = in_def

                      self.lexer.comments # we don't care about comments in the body

    result
end

#_reduce_341(val, _values, result) ⇒ Object



5460
5461
5462
5463
5464
# File 'lib/ruby25_parser.rb', line 5460

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

    result
end

#_reduce_342(val, _values, result) ⇒ Object



5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
# File 'lib/ruby25_parser.rb', line 5466

def _reduce_342(val, _values, result)
                      result = [self.in_def, lexer.lineno]

                      self.in_single += 1 # TODO: remove?

                      self.in_def = true # local_push
                      self.env.extend
                      lexer.cmdarg.push false
                      lexer.cond.push false

                      lexer.lex_state = EXPR_ENDFN|EXPR_LABEL
                      self.comments.push self.lexer.comments

    result
end

#_reduce_343(val, _values, result) ⇒ Object



5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
# File 'lib/ruby25_parser.rb', line 5482

def _reduce_343(val, _values, result)
                      _, _recv, _, _, _name, (in_def, _lineno), _args, _body, _ = val

                      result = new_defs val

                      lexer.cond.pop # group = local_pop
                      lexer.cmdarg.pop
                      self.env.unextend
                      self.in_def = in_def

                      self.in_single -= 1

                      # TODO: restore cur_arg ? what's cur_arg?

                      self.lexer.comments # we don't care about comments in the body

    result
end

#_reduce_344(val, _values, result) ⇒ Object



5501
5502
5503
5504
5505
5506
# File 'lib/ruby25_parser.rb', line 5501

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

    result
end

#_reduce_345(val, _values, result) ⇒ Object



5508
5509
5510
5511
5512
5513
# File 'lib/ruby25_parser.rb', line 5508

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

    result
end

#_reduce_346(val, _values, result) ⇒ Object



5515
5516
5517
5518
5519
5520
# File 'lib/ruby25_parser.rb', line 5515

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

    result
end

#_reduce_347(val, _values, result) ⇒ Object



5522
5523
5524
5525
5526
5527
# File 'lib/ruby25_parser.rb', line 5522

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

    result
end

#_reduce_348(val, _values, result) ⇒ Object



5529
5530
5531
5532
5533
# File 'lib/ruby25_parser.rb', line 5529

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

    result
end

#_reduce_36(val, _values, result) ⇒ Object

reduce 35 omitted



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

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

    result
end

#_reduce_37(val, _values, result) ⇒ Object



3795
3796
3797
3798
3799
3800
# File 'lib/ruby25_parser.rb', line 3795

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

    result
end

#_reduce_374(val, _values, result) ⇒ Object

reduce 373 omitted



5585
5586
5587
5588
5589
5590
5591
# File 'lib/ruby25_parser.rb', line 5585

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

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

    result
end

#_reduce_376(val, _values, result) ⇒ Object

reduce 375 omitted



5595
5596
5597
5598
5599
# File 'lib/ruby25_parser.rb', line 5595

def _reduce_376(val, _values, result)
                      result = val[1]

    result
end

#_reduce_378(val, _values, result) ⇒ Object

reduce 377 omitted



5603
5604
5605
5606
5607
# File 'lib/ruby25_parser.rb', line 5603

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

    result
end

#_reduce_38(val, _values, result) ⇒ Object



3802
3803
3804
3805
3806
# File 'lib/ruby25_parser.rb', line 3802

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

    result
end

#_reduce_380(val, _values, result) ⇒ Object

reduce 379 omitted



5611
5612
5613
5614
5615
# File 'lib/ruby25_parser.rb', line 5611

def _reduce_380(val, _values, result)
                      result = val[1]

    result
end

#_reduce_381(val, _values, result) ⇒ Object



5617
5618
5619
5620
5621
5622
5623
# File 'lib/ruby25_parser.rb', line 5617

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

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

    result
end

#_reduce_382(val, _values, result) ⇒ Object



5625
5626
5627
5628
5629
# File 'lib/ruby25_parser.rb', line 5625

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

    result
end

#_reduce_383(val, _values, result) ⇒ Object



5631
5632
5633
5634
5635
5636
5637
# File 'lib/ruby25_parser.rb', line 5631

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

                      result = block_var args

    result
end

#_reduce_384(val, _values, result) ⇒ Object



5639
5640
5641
5642
5643
5644
5645
# File 'lib/ruby25_parser.rb', line 5639

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

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

    result
end

#_reduce_385(val, _values, result) ⇒ Object



5647
5648
5649
5650
5651
5652
5653
# File 'lib/ruby25_parser.rb', line 5647

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

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

    result
end

#_reduce_386(val, _values, result) ⇒ Object



5655
5656
5657
5658
5659
5660
5661
# File 'lib/ruby25_parser.rb', line 5655

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

                      result = block_var args, :*

    result
end

#_reduce_387(val, _values, result) ⇒ Object



5663
5664
5665
5666
5667
5668
5669
# File 'lib/ruby25_parser.rb', line 5663

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

                      result = block_var args, :*, args2

    result
end

#_reduce_388(val, _values, result) ⇒ Object



5671
5672
5673
5674
5675
5676
5677
# File 'lib/ruby25_parser.rb', line 5671

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

                      result = block_var :"*#{splat}"

    result
end

#_reduce_389(val, _values, result) ⇒ Object



5679
5680
5681
5682
5683
5684
5685
# File 'lib/ruby25_parser.rb', line 5679

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

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

    result
end

#_reduce_390(val, _values, result) ⇒ Object



5687
5688
5689
5690
5691
# File 'lib/ruby25_parser.rb', line 5687

def _reduce_390(val, _values, result)
                      result = block_var :*

    result
end

#_reduce_391(val, _values, result) ⇒ Object



5693
5694
5695
5696
5697
5698
5699
# File 'lib/ruby25_parser.rb', line 5693

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

                      result = block_var :*, args

    result
end

#_reduce_392(val, _values, result) ⇒ Object



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

def _reduce_392(val, _values, result)
                      result = call_args val

    result
end

#_reduce_393(val, _values, result) ⇒ Object



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

def _reduce_393(val, _values, result)
                      result = call_args val

    result
end

#_reduce_394(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_395(val, _values, result) ⇒ Object



5719
5720
5721
5722
5723
5724
5725
# File 'lib/ruby25_parser.rb', line 5719

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

    result
end

#_reduce_396(val, _values, result) ⇒ Object



5727
5728
5729
5730
5731
# File 'lib/ruby25_parser.rb', line 5727

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

    result
end

#_reduce_398(val, _values, result) ⇒ Object

reduce 397 omitted



5735
5736
5737
5738
5739
# File 'lib/ruby25_parser.rb', line 5735

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

    result
end

#_reduce_399(val, _values, result) ⇒ Object



5741
5742
5743
5744
5745
# File 'lib/ruby25_parser.rb', line 5741

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

    result
end

#_reduce_40(val, _values, result) ⇒ Object

reduce 39 omitted



3810
3811
3812
3813
3814
# File 'lib/ruby25_parser.rb', line 3810

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

    result
end

#_reduce_400(val, _values, result) ⇒ Object



5747
5748
5749
5750
5751
# File 'lib/ruby25_parser.rb', line 5747

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

    result
end

#_reduce_401(val, _values, result) ⇒ Object



5753
5754
5755
5756
5757
# File 'lib/ruby25_parser.rb', line 5753

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

    result
end

#_reduce_402(val, _values, result) ⇒ Object



5759
5760
5761
5762
5763
# File 'lib/ruby25_parser.rb', line 5759

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

    result
end

#_reduce_403(val, _values, result) ⇒ Object



5765
5766
5767
5768
5769
# File 'lib/ruby25_parser.rb', line 5765

def _reduce_403(val, _values, result)
                      result = args(val) << nil

    result
end

#_reduce_404(val, _values, result) ⇒ Object



5771
5772
5773
5774
5775
# File 'lib/ruby25_parser.rb', line 5771

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

    result
end

#_reduce_405(val, _values, result) ⇒ Object



5777
5778
5779
5780
5781
# File 'lib/ruby25_parser.rb', line 5777

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

    result
end

#_reduce_406(val, _values, result) ⇒ Object



5783
5784
5785
5786
5787
# File 'lib/ruby25_parser.rb', line 5783

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

    result
end

#_reduce_407(val, _values, result) ⇒ Object



5789
5790
5791
5792
5793
# File 'lib/ruby25_parser.rb', line 5789

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

    result
end

#_reduce_408(val, _values, result) ⇒ Object



5795
5796
5797
5798
5799
# File 'lib/ruby25_parser.rb', line 5795

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

    result
end

#_reduce_409(val, _values, result) ⇒ Object



5801
5802
5803
5804
5805
# File 'lib/ruby25_parser.rb', line 5801

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

    result
end

#_reduce_41(val, _values, result) ⇒ Object



3816
3817
3818
3819
3820
# File 'lib/ruby25_parser.rb', line 3816

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

    result
end

#_reduce_410(val, _values, result) ⇒ Object



5807
5808
5809
5810
5811
# File 'lib/ruby25_parser.rb', line 5807

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

    result
end

#_reduce_411(val, _values, result) ⇒ Object



5813
5814
5815
5816
5817
# File 'lib/ruby25_parser.rb', line 5813

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

    result
end

#_reduce_412(val, _values, result) ⇒ Object



5819
5820
5821
5822
5823
# File 'lib/ruby25_parser.rb', line 5819

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

    result
end

#_reduce_413(val, _values, result) ⇒ Object



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

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

#_reduce_414(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_415(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_416(val, _values, result) ⇒ Object



5843
5844
5845
5846
5847
# File 'lib/ruby25_parser.rb', line 5843

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

    result
end

#_reduce_417(val, _values, result) ⇒ Object



5849
5850
5851
5852
5853
5854
# File 'lib/ruby25_parser.rb', line 5849

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

    result
end

#_reduce_419(val, _values, result) ⇒ Object

reduce 418 omitted



5858
5859
5860
5861
5862
# File 'lib/ruby25_parser.rb', line 5858

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

    result
end

#_reduce_42(val, _values, result) ⇒ Object



3822
3823
3824
3825
3826
# File 'lib/ruby25_parser.rb', line 3822

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

    result
end

#_reduce_420(val, _values, result) ⇒ Object



5864
5865
5866
5867
5868
# File 'lib/ruby25_parser.rb', line 5864

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

    result
end

#_reduce_421(val, _values, result) ⇒ Object



5870
5871
5872
5873
5874
# File 'lib/ruby25_parser.rb', line 5870

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

    result
end

#_reduce_422(val, _values, result) ⇒ Object



5876
5877
5878
5879
5880
5881
5882
# File 'lib/ruby25_parser.rb', line 5876

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

    result
end

#_reduce_424(val, _values, result) ⇒ Object

reduce 423 omitted



5886
5887
5888
5889
5890
5891
5892
5893
# File 'lib/ruby25_parser.rb', line 5886

def _reduce_424(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_425(val, _values, result) ⇒ Object



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

def _reduce_425(val, _values, result)
                      lexer.cmdarg.push false

    result
end

#_reduce_426(val, _values, result) ⇒ Object



5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
# File 'lib/ruby25_parser.rb', line 5901

def _reduce_426(val, _values, result)
                      (line, lpar), args, _cmdarg, body = val
                      lexer.lpar_beg = lpar

                      lexer.cmdarg.pop

                      call = s(:lambda).line line
                      result = new_iter call, args, body
                      result.line = line
                      self.env.unextend # TODO: dynapush & dynapop

    result
end

#_reduce_427(val, _values, result) ⇒ Object



5915
5916
5917
5918
5919
# File 'lib/ruby25_parser.rb', line 5915

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

    result
end

#_reduce_428(val, _values, result) ⇒ Object



5921
5922
5923
5924
5925
5926
# File 'lib/ruby25_parser.rb', line 5921

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

    result
end

#_reduce_429(val, _values, result) ⇒ Object



5928
5929
5930
5931
5932
# File 'lib/ruby25_parser.rb', line 5928

def _reduce_429(val, _values, result)
                      result = val[1]

    result
end

#_reduce_43(val, _values, result) ⇒ Object



3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
# File 'lib/ruby25_parser.rb', line 3828

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



5934
5935
5936
5937
5938
# File 'lib/ruby25_parser.rb', line 5934

def _reduce_430(val, _values, result)
                      result = val[1]

    result
end

#_reduce_431(val, _values, result) ⇒ Object



5940
5941
5942
5943
5944
5945
# File 'lib/ruby25_parser.rb', line 5940

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

    result
end

#_reduce_432(val, _values, result) ⇒ Object



5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
# File 'lib/ruby25_parser.rb', line 5947

def _reduce_432(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_433(val, _values, result) ⇒ Object



5965
5966
5967
5968
5969
# File 'lib/ruby25_parser.rb', line 5965

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

    result
end

#_reduce_434(val, _values, result) ⇒ Object



5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
# File 'lib/ruby25_parser.rb', line 5971

def _reduce_434(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_435(val, _values, result) ⇒ Object



5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
# File 'lib/ruby25_parser.rb', line 5982

def _reduce_435(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_436(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_437(val, _values, result) ⇒ Object



5999
6000
6001
6002
6003
6004
6005
6006
# File 'lib/ruby25_parser.rb', line 5999

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

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

    result
end

#_reduce_438(val, _values, result) ⇒ Object



6008
6009
6010
6011
6012
# File 'lib/ruby25_parser.rb', line 6008

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

    result
end

#_reduce_439(val, _values, result) ⇒ Object



6014
6015
6016
6017
6018
# File 'lib/ruby25_parser.rb', line 6014

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

    result
end

#_reduce_44(val, _values, result) ⇒ Object



3839
3840
3841
3842
3843
3844
3845
3846
3847
# File 'lib/ruby25_parser.rb', line 3839

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



6020
6021
6022
6023
6024
# File 'lib/ruby25_parser.rb', line 6020

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

    result
end

#_reduce_441(val, _values, result) ⇒ Object



6026
6027
6028
6029
6030
# File 'lib/ruby25_parser.rb', line 6026

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

    result
end

#_reduce_442(val, _values, result) ⇒ Object



6032
6033
6034
6035
6036
# File 'lib/ruby25_parser.rb', line 6032

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

    result
end

#_reduce_443(val, _values, result) ⇒ Object



6038
6039
6040
6041
6042
# File 'lib/ruby25_parser.rb', line 6038

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

    result
end

#_reduce_444(val, _values, result) ⇒ Object



6044
6045
6046
6047
6048
# File 'lib/ruby25_parser.rb', line 6044

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

    result
end

#_reduce_445(val, _values, result) ⇒ Object



6050
6051
6052
6053
6054
# File 'lib/ruby25_parser.rb', line 6050

def _reduce_445(val, _values, result)
                      result = new_aref val

    result
end

#_reduce_446(val, _values, result) ⇒ Object



6056
6057
6058
6059
6060
6061
# File 'lib/ruby25_parser.rb', line 6056

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

    result
end

#_reduce_447(val, _values, result) ⇒ Object



6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
# File 'lib/ruby25_parser.rb', line 6063

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

                      result = body
                      result.line = line

                      self.env.unextend

    result
end

#_reduce_448(val, _values, result) ⇒ Object



6074
6075
6076
6077
6078
6079
# File 'lib/ruby25_parser.rb', line 6074

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

    result
end

#_reduce_449(val, _values, result) ⇒ Object



6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
# File 'lib/ruby25_parser.rb', line 6081

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



3849
3850
3851
3852
3853
3854
3855
# File 'lib/ruby25_parser.rb', line 3849

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

                      result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)

    result
end

#_reduce_450(val, _values, result) ⇒ Object



6092
6093
6094
6095
# File 'lib/ruby25_parser.rb', line 6092

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

#_reduce_451(val, _values, result) ⇒ Object



6097
6098
6099
6100
# File 'lib/ruby25_parser.rb', line 6097

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

#_reduce_452(val, _values, result) ⇒ Object



6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
# File 'lib/ruby25_parser.rb', line 6102

def _reduce_452(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_453(val, _values, result) ⇒ Object



6113
6114
6115
6116
# File 'lib/ruby25_parser.rb', line 6113

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

#_reduce_454(val, _values, result) ⇒ Object



6118
6119
6120
6121
# File 'lib/ruby25_parser.rb', line 6118

def _reduce_454(val, _values, result)
 lexer.cmdarg.push false
    result
end

#_reduce_455(val, _values, result) ⇒ Object



6123
6124
6125
6126
6127
6128
6129
6130
6131
# File 'lib/ruby25_parser.rb', line 6123

def _reduce_455(val, _values, result)
                      line, _cmdarg, param, cmpstmt = val

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

    result
end

#_reduce_456(val, _values, result) ⇒ Object



6133
6134
6135
6136
6137
# File 'lib/ruby25_parser.rb', line 6133

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

    result
end

#_reduce_457(val, _values, result) ⇒ Object



6139
6140
6141
6142
6143
6144
6145
# File 'lib/ruby25_parser.rb', line 6139

def _reduce_457(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



3857
3858
3859
3860
3861
3862
3863
# File 'lib/ruby25_parser.rb', line 3857

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

                      result = s(:op_asgn, lhs1, rhs, lhs2.to_sym, op.to_sym)

    result
end

#_reduce_460(val, _values, result) ⇒ Object

reduce 459 omitted



6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
# File 'lib/ruby25_parser.rb', line 6151

def _reduce_460(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_461(val, _values, result) ⇒ Object



6164
6165
6166
6167
6168
# File 'lib/ruby25_parser.rb', line 6164

def _reduce_461(val, _values, result)
                      result = nil

    result
end

#_reduce_462(val, _values, result) ⇒ Object



6170
6171
6172
6173
6174
6175
# File 'lib/ruby25_parser.rb', line 6170

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

    result
end

#_reduce_465(val, _values, result) ⇒ Object

reduce 464 omitted



6181
6182
6183
6184
6185
# File 'lib/ruby25_parser.rb', line 6181

def _reduce_465(val, _values, result)
                      result = val[1]

    result
end

#_reduce_467(val, _values, result) ⇒ Object

reduce 466 omitted



6189
6190
6191
6192
6193
6194
6195
# File 'lib/ruby25_parser.rb', line 6189

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

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

    result
end

#_reduce_469(val, _values, result) ⇒ Object

reduce 468 omitted



6199
6200
6201
6202
6203
6204
6205
# File 'lib/ruby25_parser.rb', line 6199

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

    result
end

#_reduce_47(val, _values, result) ⇒ Object



3865
3866
3867
3868
3869
# File 'lib/ruby25_parser.rb', line 3865

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

    result
end

#_reduce_470(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_472(val, _values, result) ⇒ Object

reduce 471 omitted



6217
6218
6219
6220
6221
6222
6223
# File 'lib/ruby25_parser.rb', line 6217

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

    result
end

#_reduce_473(val, _values, result) ⇒ Object



6225
6226
6227
6228
6229
# File 'lib/ruby25_parser.rb', line 6225

def _reduce_473(val, _values, result)
                      debug20 23, val, result

    result
end

#_reduce_475(val, _values, result) ⇒ Object

reduce 474 omitted



6233
6234
6235
6236
6237
# File 'lib/ruby25_parser.rb', line 6233

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

    result
end

#_reduce_476(val, _values, result) ⇒ Object



6239
6240
6241
6242
6243
6244
6245
6246
6247
# File 'lib/ruby25_parser.rb', line 6239

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

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

                      result = str

    result
end

#_reduce_477(val, _values, result) ⇒ Object



6249
6250
6251
6252
6253
# File 'lib/ruby25_parser.rb', line 6249

def _reduce_477(val, _values, result)
                      result = new_string val

    result
end

#_reduce_478(val, _values, result) ⇒ Object



6255
6256
6257
6258
6259
6260
# File 'lib/ruby25_parser.rb', line 6255

def _reduce_478(val, _values, result)
                      result = new_xstring val
                      # TODO: dedent?!?! SERIOUSLY?!?

    result
end

#_reduce_479(val, _values, result) ⇒ Object



6262
6263
6264
6265
6266
# File 'lib/ruby25_parser.rb', line 6262

def _reduce_479(val, _values, result)
                      result = new_regexp val

    result
end

#_reduce_48(val, _values, result) ⇒ Object



3871
3872
3873
3874
3875
3876
# File 'lib/ruby25_parser.rb', line 3871

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

    result
end

#_reduce_480(val, _values, result) ⇒ Object



6268
6269
6270
6271
6272
# File 'lib/ruby25_parser.rb', line 6268

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

    result
end

#_reduce_481(val, _values, result) ⇒ Object



6274
6275
6276
6277
6278
# File 'lib/ruby25_parser.rb', line 6274

def _reduce_481(val, _values, result)
                      result = val[1]

    result
end

#_reduce_482(val, _values, result) ⇒ Object



6280
6281
6282
6283
6284
# File 'lib/ruby25_parser.rb', line 6280

def _reduce_482(val, _values, result)
                      result = new_word_list

    result
end

#_reduce_483(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_485(val, _values, result) ⇒ Object

reduce 484 omitted



6294
6295
6296
6297
6298
# File 'lib/ruby25_parser.rb', line 6294

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

    result
end

#_reduce_486(val, _values, result) ⇒ Object



6300
6301
6302
6303
6304
# File 'lib/ruby25_parser.rb', line 6300

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

    result
end

#_reduce_487(val, _values, result) ⇒ Object



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

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

#_reduce_488(val, _values, result) ⇒ Object



6311
6312
6313
6314
6315
6316
6317
# File 'lib/ruby25_parser.rb', line 6311

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

    result
end

#_reduce_489(val, _values, result) ⇒ Object



6319
6320
6321
6322
6323
# File 'lib/ruby25_parser.rb', line 6319

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

    result
end

#_reduce_49(val, _values, result) ⇒ Object



3878
3879
3880
3881
3882
3883
3884
3885
3886
# File 'lib/ruby25_parser.rb', line 3878

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



6325
6326
6327
6328
6329
6330
# File 'lib/ruby25_parser.rb', line 6325

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

    result
end

#_reduce_491(val, _values, result) ⇒ Object



6332
6333
6334
6335
6336
# File 'lib/ruby25_parser.rb', line 6332

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

    result
end

#_reduce_492(val, _values, result) ⇒ Object



6338
6339
6340
6341
6342
# File 'lib/ruby25_parser.rb', line 6338

def _reduce_492(val, _values, result)
                      result = val[1]

    result
end

#_reduce_493(val, _values, result) ⇒ Object



6344
6345
6346
6347
6348
# File 'lib/ruby25_parser.rb', line 6344

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

    result
end

#_reduce_494(val, _values, result) ⇒ Object



6350
6351
6352
6353
6354
# File 'lib/ruby25_parser.rb', line 6350

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

    result
end

#_reduce_495(val, _values, result) ⇒ Object



6356
6357
6358
6359
6360
# File 'lib/ruby25_parser.rb', line 6356

def _reduce_495(val, _values, result)
                      result = new_qword_list

    result
end

#_reduce_496(val, _values, result) ⇒ Object



6362
6363
6364
6365
6366
# File 'lib/ruby25_parser.rb', line 6362

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

    result
end

#_reduce_497(val, _values, result) ⇒ Object



6368
6369
6370
6371
6372
# File 'lib/ruby25_parser.rb', line 6368

def _reduce_497(val, _values, result)
                      result = new_qsym_list

    result
end

#_reduce_498(val, _values, result) ⇒ Object



6374
6375
6376
6377
6378
# File 'lib/ruby25_parser.rb', line 6374

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

    result
end

#_reduce_499(val, _values, result) ⇒ Object



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

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

    result
end

#_reduce_500(val, _values, result) ⇒ Object



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

def _reduce_500(val, _values, result)
                      v1, v2 = val
                      result = literal_concat v1, v2

    result
end

#_reduce_501(val, _values, result) ⇒ Object



6393
6394
6395
6396
6397
# File 'lib/ruby25_parser.rb', line 6393

def _reduce_501(val, _values, result)
                      result = nil

    result
end

#_reduce_502(val, _values, result) ⇒ Object



6399
6400
6401
6402
6403
6404
# File 'lib/ruby25_parser.rb', line 6399

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

    result
end

#_reduce_503(val, _values, result) ⇒ Object



6406
6407
6408
6409
6410
# File 'lib/ruby25_parser.rb', line 6406

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

    result
end

#_reduce_504(val, _values, result) ⇒ Object



6412
6413
6414
6415
6416
6417
# File 'lib/ruby25_parser.rb', line 6412

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

    result
end

#_reduce_505(val, _values, result) ⇒ Object



6419
6420
6421
6422
6423
# File 'lib/ruby25_parser.rb', line 6419

def _reduce_505(val, _values, result)
                      result = new_string val

    result
end

#_reduce_506(val, _values, result) ⇒ Object



6425
6426
6427
6428
6429
6430
6431
6432
# File 'lib/ruby25_parser.rb', line 6425

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

                      lexer.lex_strterm = nil
                      lexer.lex_state = EXPR_BEG

    result
end

#_reduce_507(val, _values, result) ⇒ Object



6434
6435
6436
6437
6438
6439
6440
# File 'lib/ruby25_parser.rb', line 6434

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

    result
end

#_reduce_508(val, _values, result) ⇒ Object



6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
# File 'lib/ruby25_parser.rb', line 6442

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

                      lexer.cmdarg.push false
                      lexer.cond.push false

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

                      lexer.lex_state   = EXPR_BEG

    result
end

#_reduce_509(val, _values, result) ⇒ Object



6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
# File 'lib/ruby25_parser.rb', line 6462

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

                      lex_strterm, brace_nest, string_nest, oldlex_state, line = memo
                      # TODO: heredoc_indent

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

                      lexer.cmdarg.pop
                      lexer.cond.pop

                      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_510(val, _values, result) ⇒ Object



6495
6496
6497
6498
# File 'lib/ruby25_parser.rb', line 6495

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

#_reduce_511(val, _values, result) ⇒ Object



6500
6501
6502
6503
# File 'lib/ruby25_parser.rb', line 6500

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

#_reduce_512(val, _values, result) ⇒ Object



6505
6506
6507
6508
# File 'lib/ruby25_parser.rb', line 6505

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

#_reduce_514(val, _values, result) ⇒ Object

reduce 513 omitted



6512
6513
6514
6515
6516
6517
# File 'lib/ruby25_parser.rb', line 6512

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

    result
end

#_reduce_515(val, _values, result) ⇒ Object



6519
6520
6521
6522
6523
# File 'lib/ruby25_parser.rb', line 6519

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

    result
end

#_reduce_52(val, _values, result) ⇒ Object

reduce 51 omitted



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

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

    result
end

#_reduce_520(val, _values, result) ⇒ Object

reduce 519 omitted



6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
# File 'lib/ruby25_parser.rb', line 6533

def _reduce_520(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_522(val, _values, result) ⇒ Object

reduce 521 omitted



6556
6557
6558
6559
6560
# File 'lib/ruby25_parser.rb', line 6556

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

    result
end

#_reduce_53(val, _values, result) ⇒ Object



3899
3900
3901
3902
3903
3904
# File 'lib/ruby25_parser.rb', line 3899

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

    result
end

#_reduce_532(val, _values, result) ⇒ Object

reduce 531 omitted



6580
6581
6582
6583
# File 'lib/ruby25_parser.rb', line 6580

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

#_reduce_533(val, _values, result) ⇒ Object



6585
6586
6587
6588
# File 'lib/ruby25_parser.rb', line 6585

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

#_reduce_534(val, _values, result) ⇒ Object



6590
6591
6592
6593
# File 'lib/ruby25_parser.rb', line 6590

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

#_reduce_535(val, _values, result) ⇒ Object



6595
6596
6597
6598
# File 'lib/ruby25_parser.rb', line 6595

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

#_reduce_536(val, _values, result) ⇒ Object



6600
6601
6602
6603
# File 'lib/ruby25_parser.rb', line 6600

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

#_reduce_537(val, _values, result) ⇒ Object



6605
6606
6607
6608
# File 'lib/ruby25_parser.rb', line 6605

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

#_reduce_538(val, _values, result) ⇒ Object



6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
# File 'lib/ruby25_parser.rb', line 6610

def _reduce_538(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_539(val, _values, result) ⇒ Object



6622
6623
6624
6625
6626
6627
# File 'lib/ruby25_parser.rb', line 6622

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

    result
end

#_reduce_54(val, _values, result) ⇒ Object



3906
3907
3908
3909
3910
3911
3912
# File 'lib/ruby25_parser.rb', line 3906

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



6629
6630
6631
6632
6633
6634
# File 'lib/ruby25_parser.rb', line 6629

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

    result
end

#_reduce_541(val, _values, result) ⇒ Object



6636
6637
6638
6639
6640
# File 'lib/ruby25_parser.rb', line 6636

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

    result
end

#_reduce_542(val, _values, result) ⇒ Object



6642
6643
6644
6645
6646
6647
# File 'lib/ruby25_parser.rb', line 6642

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

    result
end

#_reduce_543(val, _values, result) ⇒ Object



6649
6650
6651
6652
# File 'lib/ruby25_parser.rb', line 6649

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

#_reduce_544(val, _values, result) ⇒ Object



6654
6655
6656
6657
# File 'lib/ruby25_parser.rb', line 6654

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

#_reduce_545(val, _values, result) ⇒ Object



6659
6660
6661
6662
6663
6664
# File 'lib/ruby25_parser.rb', line 6659

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

    result
end

#_reduce_546(val, _values, result) ⇒ Object



6666
6667
6668
6669
6670
# File 'lib/ruby25_parser.rb', line 6666

def _reduce_546(val, _values, result)
                      result = val[2]

    result
end

#_reduce_547(val, _values, result) ⇒ Object



6672
6673
6674
6675
6676
# File 'lib/ruby25_parser.rb', line 6672

def _reduce_547(val, _values, result)
                      result = nil

    result
end

#_reduce_548(val, _values, result) ⇒ Object



6678
6679
6680
6681
6682
6683
6684
# File 'lib/ruby25_parser.rb', line 6678

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

    result
end

#_reduce_549(val, _values, result) ⇒ Object



6686
6687
6688
6689
6690
6691
6692
# File 'lib/ruby25_parser.rb', line 6686

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

    result
end

#_reduce_55(val, _values, result) ⇒ Object



3914
3915
3916
3917
3918
3919
3920
3921
# File 'lib/ruby25_parser.rb', line 3914

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



6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
# File 'lib/ruby25_parser.rb', line 6694

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

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

    result
end

#_reduce_551(val, _values, result) ⇒ Object



6705
6706
6707
6708
6709
# File 'lib/ruby25_parser.rb', line 6705

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

    result
end

#_reduce_552(val, _values, result) ⇒ Object



6711
6712
6713
6714
6715
# File 'lib/ruby25_parser.rb', line 6711

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

    result
end

#_reduce_553(val, _values, result) ⇒ Object



6717
6718
6719
6720
6721
# File 'lib/ruby25_parser.rb', line 6717

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

    result
end

#_reduce_555(val, _values, result) ⇒ Object

reduce 554 omitted



6725
6726
6727
6728
6729
# File 'lib/ruby25_parser.rb', line 6725

def _reduce_555(val, _values, result)
                      result = val[1]

    result
end

#_reduce_556(val, _values, result) ⇒ Object



6731
6732
6733
6734
6735
# File 'lib/ruby25_parser.rb', line 6731

def _reduce_556(val, _values, result)
                      result = nil

    result
end

#_reduce_557(val, _values, result) ⇒ Object



6737
6738
6739
6740
6741
# File 'lib/ruby25_parser.rb', line 6737

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

    result
end

#_reduce_558(val, _values, result) ⇒ Object



6743
6744
6745
6746
6747
# File 'lib/ruby25_parser.rb', line 6743

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

    result
end

#_reduce_559(val, _values, result) ⇒ Object



6749
6750
6751
6752
6753
# File 'lib/ruby25_parser.rb', line 6749

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

    result
end

#_reduce_560(val, _values, result) ⇒ Object



6755
6756
6757
6758
6759
# File 'lib/ruby25_parser.rb', line 6755

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

    result
end

#_reduce_561(val, _values, result) ⇒ Object



6761
6762
6763
6764
6765
# File 'lib/ruby25_parser.rb', line 6761

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

    result
end

#_reduce_562(val, _values, result) ⇒ Object



6767
6768
6769
6770
6771
# File 'lib/ruby25_parser.rb', line 6767

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

    result
end

#_reduce_563(val, _values, result) ⇒ Object



6773
6774
6775
6776
6777
# File 'lib/ruby25_parser.rb', line 6773

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

    result
end

#_reduce_564(val, _values, result) ⇒ Object



6779
6780
6781
6782
6783
# File 'lib/ruby25_parser.rb', line 6779

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

    result
end

#_reduce_565(val, _values, result) ⇒ Object



6785
6786
6787
6788
6789
# File 'lib/ruby25_parser.rb', line 6785

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

    result
end

#_reduce_566(val, _values, result) ⇒ Object



6791
6792
6793
6794
6795
# File 'lib/ruby25_parser.rb', line 6791

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

    result
end

#_reduce_567(val, _values, result) ⇒ Object



6797
6798
6799
6800
6801
# File 'lib/ruby25_parser.rb', line 6797

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

    result
end

#_reduce_568(val, _values, result) ⇒ Object



6803
6804
6805
6806
6807
# File 'lib/ruby25_parser.rb', line 6803

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

    result
end

#_reduce_569(val, _values, result) ⇒ Object



6809
6810
6811
6812
6813
# File 'lib/ruby25_parser.rb', line 6809

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

    result
end

#_reduce_57(val, _values, result) ⇒ Object

reduce 56 omitted



3925
3926
3927
3928
3929
# File 'lib/ruby25_parser.rb', line 3925

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

    result
end

#_reduce_570(val, _values, result) ⇒ Object



6815
6816
6817
6818
6819
# File 'lib/ruby25_parser.rb', line 6815

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

    result
end

#_reduce_571(val, _values, result) ⇒ Object



6821
6822
6823
6824
6825
# File 'lib/ruby25_parser.rb', line 6821

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

    result
end

#_reduce_572(val, _values, result) ⇒ Object



6827
6828
6829
6830
6831
# File 'lib/ruby25_parser.rb', line 6827

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

    result
end

#_reduce_573(val, _values, result) ⇒ Object



6833
6834
6835
6836
6837
# File 'lib/ruby25_parser.rb', line 6833

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

    result
end

#_reduce_574(val, _values, result) ⇒ Object



6839
6840
6841
6842
6843
# File 'lib/ruby25_parser.rb', line 6839

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

    result
end

#_reduce_575(val, _values, result) ⇒ Object



6845
6846
6847
6848
6849
# File 'lib/ruby25_parser.rb', line 6845

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

    result
end

#_reduce_577(val, _values, result) ⇒ Object

reduce 576 omitted



6853
6854
6855
6856
6857
6858
6859
6860
# File 'lib/ruby25_parser.rb', line 6853

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

                      result = identifier

    result
end

#_reduce_58(val, _values, result) ⇒ Object



3931
3932
3933
3934
3935
# File 'lib/ruby25_parser.rb', line 3931

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

    result
end

#_reduce_580(val, _values, result) ⇒ Object

reduce 579 omitted



6866
6867
6868
6869
6870
# File 'lib/ruby25_parser.rb', line 6866

def _reduce_580(val, _values, result)
                      result = val[1]

    result
end

#_reduce_581(val, _values, result) ⇒ Object



6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
# File 'lib/ruby25_parser.rb', line 6872

def _reduce_581(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_582(val, _values, result) ⇒ Object



6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
# File 'lib/ruby25_parser.rb', line 6888

def _reduce_582(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_584(val, _values, result) ⇒ Object

reduce 583 omitted



6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
# File 'lib/ruby25_parser.rb', line 6904

def _reduce_584(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_585(val, _values, result) ⇒ Object



6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
# File 'lib/ruby25_parser.rb', line 6917

def _reduce_585(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_586(val, _values, result) ⇒ Object



6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
# File 'lib/ruby25_parser.rb', line 6928

def _reduce_586(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_587(val, _values, result) ⇒ Object



6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
# File 'lib/ruby25_parser.rb', line 6939

def _reduce_587(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_589(val, _values, result) ⇒ Object

reduce 588 omitted



6952
6953
6954
6955
6956
6957
# File 'lib/ruby25_parser.rb', line 6952

def _reduce_589(val, _values, result)
                      list, _, item = val
                      result = list << item.last

    result
end

#_reduce_59(val, _values, result) ⇒ Object



3937
3938
3939
3940
3941
# File 'lib/ruby25_parser.rb', line 3937

def _reduce_59(val, _values, result)
                      lexer.cond.pop

    result
end

#_reduce_591(val, _values, result) ⇒ Object

reduce 590 omitted



6961
6962
6963
6964
6965
# File 'lib/ruby25_parser.rb', line 6961

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

    result
end

#_reduce_594(val, _values, result) ⇒ Object

reduce 593 omitted



6971
6972
6973
6974
6975
6976
6977
# File 'lib/ruby25_parser.rb', line 6971

def _reduce_594(val, _values, result)
                      name = val[1].to_sym
                      self.assignable name
                      result = :"**#{name}"

    result
end

#_reduce_595(val, _values, result) ⇒ Object



6979
6980
6981
6982
6983
# File 'lib/ruby25_parser.rb', line 6979

def _reduce_595(val, _values, result)
                      result = :"**"

    result
end

#_reduce_596(val, _values, result) ⇒ Object



6985
6986
6987
6988
6989
6990
# File 'lib/ruby25_parser.rb', line 6985

def _reduce_596(val, _values, result)
                      result = self.assignable val[0], val[2]
                      # TODO: detect duplicate names

    result
end

#_reduce_597(val, _values, result) ⇒ Object



6992
6993
6994
6995
6996
# File 'lib/ruby25_parser.rb', line 6992

def _reduce_597(val, _values, result)
                      result = self.assignable val[0], val[2]

    result
end

#_reduce_598(val, _values, result) ⇒ Object



6998
6999
7000
7001
7002
7003
# File 'lib/ruby25_parser.rb', line 6998

def _reduce_598(val, _values, result)
                      optblk, = val
                      result = s(:block, optblk).line optblk.line

    result
end

#_reduce_599(val, _values, result) ⇒ Object



7005
7006
7007
7008
7009
7010
7011
# File 'lib/ruby25_parser.rb', line 7005

def _reduce_599(val, _values, result)
                      optarg, _, optblk = val
                      result = optarg
                      result << optblk

    result
end

#_reduce_6(val, _values, result) ⇒ Object

reduce 5 omitted



3600
3601
3602
3603
3604
# File 'lib/ruby25_parser.rb', line 3600

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

    result
end

#_reduce_60(val, _values, result) ⇒ Object



3943
3944
3945
3946
3947
3948
# File 'lib/ruby25_parser.rb', line 3943

def _reduce_60(val, _values, result)
                      _, expr, _, _ = val
                      result = expr

    result
end

#_reduce_600(val, _values, result) ⇒ Object



7013
7014
7015
7016
7017
7018
# File 'lib/ruby25_parser.rb', line 7013

def _reduce_600(val, _values, result)
                      opt, = val
                      result = s(:block, opt).line opt.line

    result
end

#_reduce_601(val, _values, result) ⇒ Object



7020
7021
7022
7023
7024
# File 'lib/ruby25_parser.rb', line 7020

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

    result
end

#_reduce_604(val, _values, result) ⇒ Object

reduce 603 omitted



7030
7031
7032
7033
7034
7035
7036
7037
# File 'lib/ruby25_parser.rb', line 7030

def _reduce_604(val, _values, result)
                      # TODO: differs from parse.y - needs tests
                      name = val[1].to_sym
                      self.assignable name
                      result = :"*#{name}"

    result
end

#_reduce_605(val, _values, result) ⇒ Object



7039
7040
7041
7042
7043
7044
7045
# File 'lib/ruby25_parser.rb', line 7039

def _reduce_605(val, _values, result)
                      name = :"*"
                      self.env[name] = :lvar
                      result = name

    result
end

#_reduce_608(val, _values, result) ⇒ Object

reduce 607 omitted



7051
7052
7053
7054
7055
7056
7057
7058
# File 'lib/ruby25_parser.rb', line 7051

def _reduce_608(val, _values, result)
                      identifier = val[1].to_sym

                      self.env[identifier] = :lvar
                      result = "&#{identifier}".to_sym

    result
end

#_reduce_609(val, _values, result) ⇒ Object



7060
7061
7062
7063
7064
# File 'lib/ruby25_parser.rb', line 7060

def _reduce_609(val, _values, result)
                      result = val[1]

    result
end

#_reduce_610(val, _values, result) ⇒ Object



7066
7067
7068
7069
7070
# File 'lib/ruby25_parser.rb', line 7066

def _reduce_610(val, _values, result)
                      result = nil

    result
end

#_reduce_612(val, _values, result) ⇒ Object

reduce 611 omitted



7074
7075
7076
7077
7078
# File 'lib/ruby25_parser.rb', line 7074

def _reduce_612(val, _values, result)
                      lexer.lex_state = EXPR_BEG

    result
end

#_reduce_613(val, _values, result) ⇒ Object



7080
7081
7082
7083
7084
7085
7086
# File 'lib/ruby25_parser.rb', line 7080

def _reduce_613(val, _values, result)
                      result = val[2]
                      yyerror "Can't define single method for literals." if
                        result.sexp_type == :lit

    result
end

#_reduce_614(val, _values, result) ⇒ Object



7088
7089
7090
7091
7092
# File 'lib/ruby25_parser.rb', line 7088

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

    result
end

#_reduce_617(val, _values, result) ⇒ Object

reduce 616 omitted



7098
7099
7100
7101
7102
7103
7104
7105
7106
# File 'lib/ruby25_parser.rb', line 7098

def _reduce_617(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_618(val, _values, result) ⇒ Object



7108
7109
7110
7111
7112
7113
# File 'lib/ruby25_parser.rb', line 7108

def _reduce_618(val, _values, result)
                      v1, _, v2 = val
                      result = s(:array, v1, v2).line v1.line

    result
end

#_reduce_619(val, _values, result) ⇒ Object



7115
7116
7117
7118
7119
7120
7121
7122
# File 'lib/ruby25_parser.rb', line 7115

def _reduce_619(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_620(val, _values, result) ⇒ Object



7124
7125
7126
7127
7128
7129
7130
# File 'lib/ruby25_parser.rb', line 7124

def _reduce_620(val, _values, result)
                      _, sym, _, value = val
                      sym.sexp_type = :dsym
                      result = s(:array, sym, value).line sym.line

    result
end

#_reduce_621(val, _values, result) ⇒ Object



7132
7133
7134
7135
7136
7137
7138
# File 'lib/ruby25_parser.rb', line 7132

def _reduce_621(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



3956
3957
3958
3959
3960
3961
# File 'lib/ruby25_parser.rb', line 3956

def _reduce_64(val, _values, result)
                      blk, _, msg, args = val
                      result = new_call(blk, msg.to_sym, args).line blk.line

    result
end

#_reduce_647(val, _values, result) ⇒ Object

reduce 646 omitted



7190
7191
7192
7193
# File 'lib/ruby25_parser.rb', line 7190

def _reduce_647(val, _values, result)
 yyerrok
    result
end

#_reduce_65(val, _values, result) ⇒ Object



3963
3964
3965
3966
3967
3968
# File 'lib/ruby25_parser.rb', line 3963

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

    result
end

#_reduce_650(val, _values, result) ⇒ Object

reduce 649 omitted



7199
7200
7201
7202
# File 'lib/ruby25_parser.rb', line 7199

def _reduce_650(val, _values, result)
 yyerrok
    result
end

#_reduce_651(val, _values, result) ⇒ Object



7204
7205
7206
7207
# File 'lib/ruby25_parser.rb', line 7204

def _reduce_651(val, _values, result)
 result = nil;
    result
end

#_reduce_66(val, _values, result) ⇒ Object



3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
# File 'lib/ruby25_parser.rb', line 3970

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



3981
3982
3983
3984
3985
3986
# File 'lib/ruby25_parser.rb', line 3981

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



3988
3989
3990
3991
3992
3993
# File 'lib/ruby25_parser.rb', line 3988

def _reduce_68(val, _values, result)
                      call, args = val
                      result = call.concat args.sexp_body

    result
end

#_reduce_69(val, _values, result) ⇒ Object



3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
# File 'lib/ruby25_parser.rb', line 3995

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



4010
4011
4012
4013
4014
4015
# File 'lib/ruby25_parser.rb', line 4010

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



4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
# File 'lib/ruby25_parser.rb', line 4017

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



4029
4030
4031
4032
4033
# File 'lib/ruby25_parser.rb', line 4029

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



4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
# File 'lib/ruby25_parser.rb', line 4035

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



4047
4048
4049
4050
4051
# File 'lib/ruby25_parser.rb', line 4047

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

    result
end

#_reduce_75(val, _values, result) ⇒ Object



4053
4054
4055
4056
4057
4058
4059
# File 'lib/ruby25_parser.rb', line 4053

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



4061
4062
4063
4064
4065
4066
# File 'lib/ruby25_parser.rb', line 4061

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



4068
4069
4070
4071
4072
4073
# File 'lib/ruby25_parser.rb', line 4068

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



4075
4076
4077
4078
4079
4080
# File 'lib/ruby25_parser.rb', line 4075

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



4084
4085
4086
4087
4088
# File 'lib/ruby25_parser.rb', line 4084

def _reduce_80(val, _values, result)
                      result = val[1]

    result
end

#_reduce_82(val, _values, result) ⇒ Object

reduce 81 omitted



4092
4093
4094
4095
4096
4097
4098
4099
# File 'lib/ruby25_parser.rb', line 4092

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



4101
4102
4103
4104
4105
4106
# File 'lib/ruby25_parser.rb', line 4101

def _reduce_83(val, _values, result)
                      head, = val
                      result = s(:masgn, head).line head.line

    result
end

#_reduce_84(val, _values, result) ⇒ Object



4108
4109
4110
4111
4112
4113
# File 'lib/ruby25_parser.rb', line 4108

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



4115
4116
4117
4118
4119
4120
4121
# File 'lib/ruby25_parser.rb', line 4115

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



4123
4124
4125
4126
4127
4128
4129
4130
4131
# File 'lib/ruby25_parser.rb', line 4123

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



4133
4134
4135
4136
4137
4138
4139
# File 'lib/ruby25_parser.rb', line 4133

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



4141
4142
4143
4144
4145
4146
4147
4148
# File 'lib/ruby25_parser.rb', line 4141

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



4150
4151
4152
4153
4154
4155
4156
4157
4158
# File 'lib/ruby25_parser.rb', line 4150

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



3610
3611
3612
3613
3614
3615
3616
3617
3618
# File 'lib/ruby25_parser.rb', line 3610

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



4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
# File 'lib/ruby25_parser.rb', line 4160

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



4171
4172
4173
4174
4175
4176
# File 'lib/ruby25_parser.rb', line 4171

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



4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
# File 'lib/ruby25_parser.rb', line 4178

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



4191
4192
4193
4194
4195
# File 'lib/ruby25_parser.rb', line 4191

def _reduce_94(val, _values, result)
                      result = val[1]

    result
end

#_reduce_95(val, _values, result) ⇒ Object



4197
4198
4199
4200
4201
4202
# File 'lib/ruby25_parser.rb', line 4197

def _reduce_95(val, _values, result)
                      lhs, _ = val
                      result = s(:array, lhs).line lhs.line

    result
end

#_reduce_96(val, _values, result) ⇒ Object



4204
4205
4206
4207
4208
# File 'lib/ruby25_parser.rb', line 4204

def _reduce_96(val, _values, result)
                      result = val[0] << val[1].compact

    result
end

#_reduce_97(val, _values, result) ⇒ Object



4210
4211
4212
4213
4214
4215
# File 'lib/ruby25_parser.rb', line 4210

def _reduce_97(val, _values, result)
                      item, = val
                      result = s(:array, item).line item.line

    result
end

#_reduce_98(val, _values, result) ⇒ Object



4217
4218
4219
4220
4221
# File 'lib/ruby25_parser.rb', line 4217

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

    result
end

#_reduce_99(val, _values, result) ⇒ Object



4223
4224
4225
4226
4227
# File 'lib/ruby25_parser.rb', line 4223

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

    result
end

#_reduce_none(val, _values, result) ⇒ Object



7209
7210
7211
# File 'lib/ruby25_parser.rb', line 7209

def _reduce_none(val, _values, result)
  val[0]
end