Class: Parser::Ruby27

Inherits:
Base
  • Object
show all
Defined in:
lib/parser/ruby27.rb

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",
"tUPLUS",
"tUMINUS",
"tUNARY_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",
"tDSTAR",
"tPLUS",
"tMINUS",
"tLT",
"tGT",
"tPIPE",
"tBANG",
"tCARET",
"tLCURLY",
"tRCURLY",
"tBACK_REF2",
"tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
"tREGEXP_OPT",
"tWORDS_BEG",
"tQWORDS_BEG",
"tSYMBOLS_BEG",
"tQSYMBOLS_BEG",
"tSTRING_DBEG",
"tSTRING_DVAR",
"tSTRING_END",
"tSTRING_DEND",
"tSTRING",
"tSYMBOL",
"tNL",
"tEH",
"tCOLON",
"tCOMMA",
"tSPACE",
"tSEMI",
"tLAMBDA",
"tLAMBEG",
"tCHARACTER",
"tRATIONAL",
"tIMAGINARY",
"tLABEL_END",
"tANDDOT",
"tBDOT2",
"tBDOT3",
"tEQL",
"tLOWEST",
"$start",
"program",
"top_compstmt",
"@1",
"top_stmts",
"opt_terms",
"top_stmt",
"terms",
"stmt",
"begin_block",
"bodystmt",
"compstmt",
"opt_rescue",
"opt_else",
"opt_ensure",
"stmts",
"stmt_or_begin",
"fitem",
"undef_list",
"expr_value",
"command_asgn",
"mlhs",
"command_call",
"lhs",
"mrhs",
"mrhs_arg",
"expr",
"@2",
"command_rhs",
"var_lhs",
"primary_value",
"opt_call_args",
"rbracket",
"call_op",
"backref",
"opt_nl",
"arg",
"p_expr",
"@3",
"expr_value_do",
"do",
"@4",
"command",
"block_command",
"block_call",
"dot_or_colon",
"operation2",
"command_args",
"cmd_brace_block",
"brace_body",
"fcall",
"@5",
"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",
"symbol",
"@6",
"arg_rhs",
"simple_numeric",
"rel_expr",
"primary",
"relop",
"arg_value",
"aref_args",
"none",
"args",
"trailer",
"assocs",
"paren_args",
"args_forward",
"opt_paren_args",
"opt_block_arg",
"block_arg",
"@7",
"literal",
"strings",
"xstring",
"regexp",
"words",
"qwords",
"symbols",
"qsymbols",
"var_ref",
"assoc_list",
"brace_block",
"method_call",
"lambda",
"then",
"if_tail",
"case_body",
"p_case_body",
"for_var",
"k_class",
"superclass",
"term",
"k_module",
"k_def",
"f_arglist",
"singleton",
"@8",
"@9",
"@10",
"@11",
"@12",
"@13",
"@14",
"@15",
"@16",
"@17",
"f_marg",
"f_norm_arg",
"f_margs",
"f_marg_list",
"f_rest_marg",
"block_args_tail",
"f_block_kwarg",
"f_kwrest",
"opt_f_block_arg",
"f_no_kwarg",
"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",
"@18",
"@19",
"f_args",
"do_block",
"@20",
"@21",
"do_body",
"@22",
"operation3",
"@23",
"@24",
"@25",
"@26",
"@27",
"cases",
"p_top_expr",
"p_cases",
"@28",
"@29",
"p_top_expr_body",
"p_args",
"p_args_tail",
"p_kwargs",
"p_as",
"p_variable",
"p_alt",
"p_expr_basic",
"p_lparen",
"p_lbracket",
"p_value",
"p_const",
"rbrace",
"@30",
"@31",
"@32",
"p_args_head",
"p_arg",
"p_args_post",
"p_kwarg",
"p_kwrest",
"p_kwnorest",
"p_kw",
"p_kw_label",
"string_contents",
"kwrest_mark",
"p_primitive",
"p_var_ref",
"@33",
"exc_list",
"exc_var",
"numeric",
"string",
"string1",
"xstring_contents",
"regexp_contents",
"word_list",
"word",
"string_content",
"symbol_list",
"qword_list",
"qsym_list",
"string_dvar",
"@34",
"ssym",
"dsym",
"@35",
"args_tail",
"@36",
"f_kwarg",
"opt_args_tail",
"f_optarg",
"f_arg_asgn",
"f_arg_item",
"f_label",
"f_kw",
"f_block_kw",
"f_opt",
"f_block_opt",
"restarg_mark",
"blkarg_mark",
"assoc" ]
Racc_debug_parser =
false

Instance Attribute Summary

Attributes inherited from Base

#builder, #context, #current_arg_stack, #diagnostics, #lexer, #max_numparam_stack, #pattern_hash_keys, #pattern_variables, #source_buffer, #static_env

Instance Method Summary collapse

Methods inherited from Base

default_parser, #initialize, parse, #parse, parse_file, parse_file_with_comments, parse_with_comments, #parse_with_comments, #reset, #tokenize

Constructor Details

This class inherits a constructor from Parser::Base

Instance Method Details

#_reduce_1(val, _values, result) ⇒ Object

reduce 0 omitted



7906
7907
7908
7909
7910
7911
# File 'lib/parser/ruby27.rb', line 7906

def _reduce_1(val, _values, result)
                      @current_arg_stack.push(nil)
                      @max_numparam_stack.push(static: false)

    result
end

#_reduce_10(val, _values, result) ⇒ Object



7960
7961
7962
7963
7964
# File 'lib/parser/ruby27.rb', line 7960

def _reduce_10(val, _values, result)
                      result = val

    result
end

#_reduce_100(val, _values, result) ⇒ Object



8536
8537
8538
8539
8540
8541
8542
8543
8544
# File 'lib/parser/ruby27.rb', line 8536

def _reduce_100(val, _values, result)
                      if (val[1][0] == :anddot)
                        diagnostic :error, :csend_in_lhs_of_masgn, nil, val[1]
                      end

                      result = @builder.attr_asgn(val[0], val[1], val[2])

    result
end

#_reduce_101(val, _values, result) ⇒ Object



8546
8547
8548
8549
8550
# File 'lib/parser/ruby27.rb', line 8546

def _reduce_101(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])

    result
end

#_reduce_102(val, _values, result) ⇒ Object



8552
8553
8554
8555
8556
8557
8558
8559
8560
# File 'lib/parser/ruby27.rb', line 8552

def _reduce_102(val, _values, result)
                      if (val[1][0] == :anddot)
                        diagnostic :error, :csend_in_lhs_of_masgn, nil, val[1]
                      end

                      result = @builder.attr_asgn(val[0], val[1], val[2])

    result
end

#_reduce_103(val, _values, result) ⇒ Object



8562
8563
8564
8565
8566
8567
# File 'lib/parser/ruby27.rb', line 8562

def _reduce_103(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))

    result
end

#_reduce_104(val, _values, result) ⇒ Object



8569
8570
8571
8572
8573
8574
# File 'lib/parser/ruby27.rb', line 8569

def _reduce_104(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_global(val[0], val[1]))

    result
end

#_reduce_105(val, _values, result) ⇒ Object



8576
8577
8578
8579
8580
# File 'lib/parser/ruby27.rb', line 8576

def _reduce_105(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_106(val, _values, result) ⇒ Object



8582
8583
8584
8585
8586
# File 'lib/parser/ruby27.rb', line 8582

def _reduce_106(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_107(val, _values, result) ⇒ Object



8588
8589
8590
8591
8592
# File 'lib/parser/ruby27.rb', line 8588

def _reduce_107(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_108(val, _values, result) ⇒ Object



8594
8595
8596
8597
8598
# File 'lib/parser/ruby27.rb', line 8594

def _reduce_108(val, _values, result)
                      result = @builder.index_asgn(val[0], val[1], val[2], val[3])

    result
end

#_reduce_109(val, _values, result) ⇒ Object



8600
8601
8602
8603
8604
# File 'lib/parser/ruby27.rb', line 8600

def _reduce_109(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])

    result
end

#_reduce_11(val, _values, result) ⇒ Object



7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
# File 'lib/parser/ruby27.rb', line 7966

def _reduce_11(val, _values, result)
                      rescue_bodies     = val[1]
                      else_t,   else_   = val[2]
                      ensure_t, ensure_ = val[3]

                      if rescue_bodies.empty? && !else_t.nil?
                        diagnostic :error, :useless_else, nil, else_t
                      end

                      result = @builder.begin_body(val[0],
                                  rescue_bodies,
                                  else_t,   else_,
                                  ensure_t, ensure_)

    result
end

#_reduce_110(val, _values, result) ⇒ Object



8606
8607
8608
8609
8610
# File 'lib/parser/ruby27.rb', line 8606

def _reduce_110(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])

    result
end

#_reduce_111(val, _values, result) ⇒ Object



8612
8613
8614
8615
8616
# File 'lib/parser/ruby27.rb', line 8612

def _reduce_111(val, _values, result)
                      result = @builder.attr_asgn(val[0], val[1], val[2])

    result
end

#_reduce_112(val, _values, result) ⇒ Object



8618
8619
8620
8621
8622
8623
# File 'lib/parser/ruby27.rb', line 8618

def _reduce_112(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))

    result
end

#_reduce_113(val, _values, result) ⇒ Object



8625
8626
8627
8628
8629
8630
# File 'lib/parser/ruby27.rb', line 8625

def _reduce_113(val, _values, result)
                      result = @builder.assignable(
                                  @builder.const_global(val[0], val[1]))

    result
end

#_reduce_114(val, _values, result) ⇒ Object



8632
8633
8634
8635
8636
# File 'lib/parser/ruby27.rb', line 8632

def _reduce_114(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_115(val, _values, result) ⇒ Object



8638
8639
8640
8641
8642
# File 'lib/parser/ruby27.rb', line 8638

def _reduce_115(val, _values, result)
                      diagnostic :error, :module_name_const, nil, val[0]

    result
end

#_reduce_117(val, _values, result) ⇒ Object

reduce 116 omitted



8646
8647
8648
8649
8650
# File 'lib/parser/ruby27.rb', line 8646

def _reduce_117(val, _values, result)
                      result = @builder.const_global(val[0], val[1])

    result
end

#_reduce_118(val, _values, result) ⇒ Object



8652
8653
8654
8655
8656
# File 'lib/parser/ruby27.rb', line 8652

def _reduce_118(val, _values, result)
                      result = @builder.const(val[0])

    result
end

#_reduce_119(val, _values, result) ⇒ Object



8658
8659
8660
8661
8662
# File 'lib/parser/ruby27.rb', line 8658

def _reduce_119(val, _values, result)
                      result = @builder.const_fetch(val[0], val[1], val[2])

    result
end

#_reduce_12(val, _values, result) ⇒ Object



7983
7984
7985
7986
7987
# File 'lib/parser/ruby27.rb', line 7983

def _reduce_12(val, _values, result)
                      result = @builder.compstmt(val[0])

    result
end

#_reduce_125(val, _values, result) ⇒ Object

reduce 124 omitted



8674
8675
8676
8677
8678
# File 'lib/parser/ruby27.rb', line 8674

def _reduce_125(val, _values, result)
                      result = @builder.symbol_internal(val[0])

    result
end

#_reduce_127(val, _values, result) ⇒ Object

reduce 126 omitted



8682
8683
8684
8685
8686
# File 'lib/parser/ruby27.rb', line 8682

def _reduce_127(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_128(val, _values, result) ⇒ Object



8688
8689
8690
8691
8692
# File 'lib/parser/ruby27.rb', line 8688

def _reduce_128(val, _values, result)
                      @lexer.state = :expr_fname

    result
end

#_reduce_129(val, _values, result) ⇒ Object



8694
8695
8696
8697
8698
# File 'lib/parser/ruby27.rb', line 8694

def _reduce_129(val, _values, result)
                      result = val[0] << val[3]

    result
end

#_reduce_13(val, _values, result) ⇒ Object



7989
7990
7991
7992
7993
# File 'lib/parser/ruby27.rb', line 7989

def _reduce_13(val, _values, result)
                      result = []

    result
end

#_reduce_14(val, _values, result) ⇒ Object



7995
7996
7997
7998
7999
# File 'lib/parser/ruby27.rb', line 7995

def _reduce_14(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_15(val, _values, result) ⇒ Object



8001
8002
8003
8004
8005
# File 'lib/parser/ruby27.rb', line 8001

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

    result
end

#_reduce_16(val, _values, result) ⇒ Object



8007
8008
8009
8010
8011
# File 'lib/parser/ruby27.rb', line 8007

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

    result
end

#_reduce_18(val, _values, result) ⇒ Object

reduce 17 omitted



8015
8016
8017
8018
8019
# File 'lib/parser/ruby27.rb', line 8015

def _reduce_18(val, _values, result)
                      diagnostic :error, :begin_in_method, nil, val[0]

    result
end

#_reduce_19(val, _values, result) ⇒ Object



8021
8022
8023
8024
8025
# File 'lib/parser/ruby27.rb', line 8021

def _reduce_19(val, _values, result)
                      @lexer.state = :expr_fname

    result
end

#_reduce_2(val, _values, result) ⇒ Object



7913
7914
7915
7916
7917
7918
7919
7920
# File 'lib/parser/ruby27.rb', line 7913

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

                      @current_arg_stack.pop
                      @max_numparam_stack.pop

    result
end

#_reduce_20(val, _values, result) ⇒ Object



8027
8028
8029
8030
8031
# File 'lib/parser/ruby27.rb', line 8027

def _reduce_20(val, _values, result)
                      result = @builder.alias(val[0], val[1], val[3])

    result
end

#_reduce_201(val, _values, result) ⇒ Object

reduce 200 omitted



8842
8843
8844
8845
8846
# File 'lib/parser/ruby27.rb', line 8842

def _reduce_201(val, _values, result)
                      result = @builder.assign(val[0], val[1], val[2])

    result
end

#_reduce_202(val, _values, result) ⇒ Object



8848
8849
8850
8851
8852
# File 'lib/parser/ruby27.rb', line 8848

def _reduce_202(val, _values, result)
                      result = @builder.op_assign(val[0], val[1], val[2])

    result
end

#_reduce_203(val, _values, result) ⇒ Object



8854
8855
8856
8857
8858
8859
8860
8861
# File 'lib/parser/ruby27.rb', line 8854

def _reduce_203(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.index(
                                    val[0], val[1], val[2], val[3]),
                                  val[4], val[5])

    result
end

#_reduce_204(val, _values, result) ⇒ Object



8863
8864
8865
8866
8867
8868
8869
8870
# File 'lib/parser/ruby27.rb', line 8863

def _reduce_204(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])

    result
end

#_reduce_205(val, _values, result) ⇒ Object



8872
8873
8874
8875
8876
8877
8878
8879
# File 'lib/parser/ruby27.rb', line 8872

def _reduce_205(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])

    result
end

#_reduce_206(val, _values, result) ⇒ Object



8881
8882
8883
8884
8885
8886
8887
8888
# File 'lib/parser/ruby27.rb', line 8881

def _reduce_206(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])

    result
end

#_reduce_207(val, _values, result) ⇒ Object



8890
8891
8892
8893
8894
8895
8896
# File 'lib/parser/ruby27.rb', line 8890

def _reduce_207(val, _values, result)
                      const  = @builder.const_op_assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))
                      result = @builder.op_assign(const, val[3], val[4])

    result
end

#_reduce_208(val, _values, result) ⇒ Object



8898
8899
8900
8901
8902
8903
8904
# File 'lib/parser/ruby27.rb', line 8898

def _reduce_208(val, _values, result)
                      const  = @builder.const_op_assignable(
                                  @builder.const_global(val[0], val[1]))
                      result = @builder.op_assign(const, val[2], val[3])

    result
end

#_reduce_209(val, _values, result) ⇒ Object



8906
8907
8908
8909
8910
# File 'lib/parser/ruby27.rb', line 8906

def _reduce_209(val, _values, result)
                      result = @builder.op_assign(val[0], val[1], val[2])

    result
end

#_reduce_21(val, _values, result) ⇒ Object



8033
8034
8035
8036
8037
8038
8039
# File 'lib/parser/ruby27.rb', line 8033

def _reduce_21(val, _values, result)
                      result = @builder.alias(val[0],
                                  @builder.gvar(val[1]),
                                  @builder.gvar(val[2]))

    result
end

#_reduce_210(val, _values, result) ⇒ Object



8912
8913
8914
8915
8916
# File 'lib/parser/ruby27.rb', line 8912

def _reduce_210(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], val[2])

    result
end

#_reduce_211(val, _values, result) ⇒ Object



8918
8919
8920
8921
8922
# File 'lib/parser/ruby27.rb', line 8918

def _reduce_211(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], val[2])

    result
end

#_reduce_212(val, _values, result) ⇒ Object



8924
8925
8926
8927
8928
# File 'lib/parser/ruby27.rb', line 8924

def _reduce_212(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], nil)

    result
end

#_reduce_213(val, _values, result) ⇒ Object



8930
8931
8932
8933
8934
# File 'lib/parser/ruby27.rb', line 8930

def _reduce_213(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], nil)

    result
end

#_reduce_214(val, _values, result) ⇒ Object



8936
8937
8938
8939
8940
# File 'lib/parser/ruby27.rb', line 8936

def _reduce_214(val, _values, result)
                      result = @builder.range_inclusive(nil, val[0], val[1])

    result
end

#_reduce_215(val, _values, result) ⇒ Object



8942
8943
8944
8945
8946
# File 'lib/parser/ruby27.rb', line 8942

def _reduce_215(val, _values, result)
                      result = @builder.range_exclusive(nil, val[0], val[1])

    result
end

#_reduce_216(val, _values, result) ⇒ Object



8948
8949
8950
8951
8952
# File 'lib/parser/ruby27.rb', line 8948

def _reduce_216(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_217(val, _values, result) ⇒ Object



8954
8955
8956
8957
8958
# File 'lib/parser/ruby27.rb', line 8954

def _reduce_217(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_218(val, _values, result) ⇒ Object



8960
8961
8962
8963
8964
# File 'lib/parser/ruby27.rb', line 8960

def _reduce_218(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_219(val, _values, result) ⇒ Object



8966
8967
8968
8969
8970
# File 'lib/parser/ruby27.rb', line 8966

def _reduce_219(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_22(val, _values, result) ⇒ Object



8041
8042
8043
8044
8045
8046
8047
# File 'lib/parser/ruby27.rb', line 8041

def _reduce_22(val, _values, result)
                      result = @builder.alias(val[0],
                                  @builder.gvar(val[1]),
                                  @builder.back_ref(val[2]))

    result
end

#_reduce_220(val, _values, result) ⇒ Object



8972
8973
8974
8975
8976
# File 'lib/parser/ruby27.rb', line 8972

def _reduce_220(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_221(val, _values, result) ⇒ Object



8978
8979
8980
8981
8982
# File 'lib/parser/ruby27.rb', line 8978

def _reduce_221(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_222(val, _values, result) ⇒ Object



8984
8985
8986
8987
8988
8989
8990
# File 'lib/parser/ruby27.rb', line 8984

def _reduce_222(val, _values, result)
                      result = @builder.unary_op(val[0],
                                  @builder.binary_op(
                                    val[1], val[2], val[3]))

    result
end

#_reduce_223(val, _values, result) ⇒ Object



8992
8993
8994
8995
8996
# File 'lib/parser/ruby27.rb', line 8992

def _reduce_223(val, _values, result)
                      result = @builder.unary_op(val[0], val[1])

    result
end

#_reduce_224(val, _values, result) ⇒ Object



8998
8999
9000
9001
9002
# File 'lib/parser/ruby27.rb', line 8998

def _reduce_224(val, _values, result)
                      result = @builder.unary_op(val[0], val[1])

    result
end

#_reduce_225(val, _values, result) ⇒ Object



9004
9005
9006
9007
9008
# File 'lib/parser/ruby27.rb', line 9004

def _reduce_225(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_226(val, _values, result) ⇒ Object



9010
9011
9012
9013
9014
# File 'lib/parser/ruby27.rb', line 9010

def _reduce_226(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_227(val, _values, result) ⇒ Object



9016
9017
9018
9019
9020
# File 'lib/parser/ruby27.rb', line 9016

def _reduce_227(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_228(val, _values, result) ⇒ Object



9022
9023
9024
9025
9026
# File 'lib/parser/ruby27.rb', line 9022

def _reduce_228(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_23(val, _values, result) ⇒ Object



8049
8050
8051
8052
8053
# File 'lib/parser/ruby27.rb', line 8049

def _reduce_23(val, _values, result)
                      diagnostic :error, :nth_ref_alias, nil, val[2]

    result
end

#_reduce_230(val, _values, result) ⇒ Object

reduce 229 omitted



9030
9031
9032
9033
9034
# File 'lib/parser/ruby27.rb', line 9030

def _reduce_230(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_231(val, _values, result) ⇒ Object



9036
9037
9038
9039
9040
# File 'lib/parser/ruby27.rb', line 9036

def _reduce_231(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_232(val, _values, result) ⇒ Object



9042
9043
9044
9045
9046
# File 'lib/parser/ruby27.rb', line 9042

def _reduce_232(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_233(val, _values, result) ⇒ Object



9048
9049
9050
9051
9052
# File 'lib/parser/ruby27.rb', line 9048

def _reduce_233(val, _values, result)
                      result = @builder.match_op(val[0], val[1], val[2])

    result
end

#_reduce_234(val, _values, result) ⇒ Object



9054
9055
9056
9057
9058
# File 'lib/parser/ruby27.rb', line 9054

def _reduce_234(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_235(val, _values, result) ⇒ Object



9060
9061
9062
9063
9064
# File 'lib/parser/ruby27.rb', line 9060

def _reduce_235(val, _values, result)
                      result = @builder.not_op(val[0], nil, val[1], nil)

    result
end

#_reduce_236(val, _values, result) ⇒ Object



9066
9067
9068
9069
9070
# File 'lib/parser/ruby27.rb', line 9066

def _reduce_236(val, _values, result)
                      result = @builder.unary_op(val[0], val[1])

    result
end

#_reduce_237(val, _values, result) ⇒ Object



9072
9073
9074
9075
9076
# File 'lib/parser/ruby27.rb', line 9072

def _reduce_237(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_238(val, _values, result) ⇒ Object



9078
9079
9080
9081
9082
# File 'lib/parser/ruby27.rb', line 9078

def _reduce_238(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_239(val, _values, result) ⇒ Object



9084
9085
9086
9087
9088
# File 'lib/parser/ruby27.rb', line 9084

def _reduce_239(val, _values, result)
                      result = @builder.logical_op(:and, val[0], val[1], val[2])

    result
end

#_reduce_24(val, _values, result) ⇒ Object



8055
8056
8057
8058
8059
# File 'lib/parser/ruby27.rb', line 8055

def _reduce_24(val, _values, result)
                      result = @builder.undef_method(val[0], val[1])

    result
end

#_reduce_240(val, _values, result) ⇒ Object



9090
9091
9092
9093
9094
# File 'lib/parser/ruby27.rb', line 9090

def _reduce_240(val, _values, result)
                      result = @builder.logical_op(:or, val[0], val[1], val[2])

    result
end

#_reduce_241(val, _values, result) ⇒ Object



9096
9097
9098
9099
9100
# File 'lib/parser/ruby27.rb', line 9096

def _reduce_241(val, _values, result)
                      result = @builder.keyword_cmd(:defined?, val[0], nil, [ val[2] ], nil)

    result
end

#_reduce_242(val, _values, result) ⇒ Object



9102
9103
9104
9105
9106
9107
# File 'lib/parser/ruby27.rb', line 9102

def _reduce_242(val, _values, result)
                      result = @builder.ternary(val[0], val[1],
                                                val[2], val[4], val[5])

    result
end

#_reduce_248(val, _values, result) ⇒ Object

reduce 247 omitted



9119
9120
9121
9122
9123
# File 'lib/parser/ruby27.rb', line 9119

def _reduce_248(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_249(val, _values, result) ⇒ Object



9125
9126
9127
9128
9129
# File 'lib/parser/ruby27.rb', line 9125

def _reduce_249(val, _values, result)
                      result = @builder.binary_op(val[0], val[1], val[2])

    result
end

#_reduce_25(val, _values, result) ⇒ Object



8061
8062
8063
8064
8065
8066
# File 'lib/parser/ruby27.rb', line 8061

def _reduce_25(val, _values, result)
                      result = @builder.condition_mod(val[0], nil,
                                                      val[1], val[2])

    result
end

#_reduce_253(val, _values, result) ⇒ Object

reduce 252 omitted



9137
9138
9139
9140
9141
# File 'lib/parser/ruby27.rb', line 9137

def _reduce_253(val, _values, result)
                      result = val[0] << @builder.associate(nil, val[2], nil)

    result
end

#_reduce_254(val, _values, result) ⇒ Object



9143
9144
9145
9146
9147
# File 'lib/parser/ruby27.rb', line 9143

def _reduce_254(val, _values, result)
                      result = [ @builder.associate(nil, val[0], nil) ]

    result
end

#_reduce_256(val, _values, result) ⇒ Object

reduce 255 omitted



9151
9152
9153
9154
9155
9156
9157
9158
9159
# File 'lib/parser/ruby27.rb', line 9151

def _reduce_256(val, _values, result)
                      rescue_body = @builder.rescue_body(val[1],
                                        nil, nil, nil,
                                        nil, val[2])

                      result = @builder.begin_body(val[0], [ rescue_body ])

    result
end

#_reduce_257(val, _values, result) ⇒ Object



9161
9162
9163
9164
9165
# File 'lib/parser/ruby27.rb', line 9161

def _reduce_257(val, _values, result)
                      result = val

    result
end

#_reduce_258(val, _values, result) ⇒ Object



9167
9168
9169
9170
9171
9172
9173
9174
9175
# File 'lib/parser/ruby27.rb', line 9167

def _reduce_258(val, _values, result)
                      unless @static_env.declared_forward_args?
                        diagnostic :error, :unexpected_token, { :token => 'tBDOT3' } , val[3]
                      end

                      result = [val[0], [*val[1], @builder.forwarded_args(val[3])], val[4]]

    result
end

#_reduce_259(val, _values, result) ⇒ Object



9177
9178
9179
9180
9181
9182
9183
9184
9185
# File 'lib/parser/ruby27.rb', line 9177

def _reduce_259(val, _values, result)
                      unless @static_env.declared_forward_args?
                        diagnostic :error, :unexpected_token, { :token => 'tBDOT3' } , val[1]
                      end

                      result = [val[0], [@builder.forwarded_args(val[1])], val[2]]

    result
end

#_reduce_26(val, _values, result) ⇒ Object



8068
8069
8070
8071
8072
8073
# File 'lib/parser/ruby27.rb', line 8068

def _reduce_26(val, _values, result)
                      result = @builder.condition_mod(nil, val[0],
                                                      val[1], val[2])

    result
end

#_reduce_260(val, _values, result) ⇒ Object



9187
9188
9189
9190
9191
# File 'lib/parser/ruby27.rb', line 9187

def _reduce_260(val, _values, result)
                      result = [ nil, [], nil ]

    result
end

#_reduce_262(val, _values, result) ⇒ Object

reduce 261 omitted



9195
9196
9197
9198
9199
# File 'lib/parser/ruby27.rb', line 9195

def _reduce_262(val, _values, result)
                      result = []

    result
end

#_reduce_265(val, _values, result) ⇒ Object

reduce 264 omitted



9205
9206
9207
9208
9209
# File 'lib/parser/ruby27.rb', line 9205

def _reduce_265(val, _values, result)
                      result = val[0] << @builder.associate(nil, val[2], nil)

    result
end

#_reduce_266(val, _values, result) ⇒ Object



9211
9212
9213
9214
9215
# File 'lib/parser/ruby27.rb', line 9211

def _reduce_266(val, _values, result)
                      result = [ @builder.associate(nil, val[0], nil) ]

    result
end

#_reduce_267(val, _values, result) ⇒ Object



9217
9218
9219
9220
9221
# File 'lib/parser/ruby27.rb', line 9217

def _reduce_267(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_268(val, _values, result) ⇒ Object



9223
9224
9225
9226
9227
# File 'lib/parser/ruby27.rb', line 9223

def _reduce_268(val, _values, result)
                      result = val[0].concat(val[1])

    result
end

#_reduce_269(val, _values, result) ⇒ Object



9229
9230
9231
9232
9233
9234
# File 'lib/parser/ruby27.rb', line 9229

def _reduce_269(val, _values, result)
                      result = [ @builder.associate(nil, val[0], nil) ]
                      result.concat(val[1])

    result
end

#_reduce_27(val, _values, result) ⇒ Object



8075
8076
8077
8078
8079
# File 'lib/parser/ruby27.rb', line 8075

def _reduce_27(val, _values, result)
                      result = @builder.loop_mod(:while, val[0], val[1], val[2])

    result
end

#_reduce_270(val, _values, result) ⇒ Object



9236
9237
9238
9239
9240
9241
9242
# File 'lib/parser/ruby27.rb', line 9236

def _reduce_270(val, _values, result)
                      assocs = @builder.associate(nil, val[2], nil)
                      result = val[0] << assocs
                      result.concat(val[3])

    result
end

#_reduce_271(val, _values, result) ⇒ Object



9244
9245
9246
9247
9248
# File 'lib/parser/ruby27.rb', line 9244

def _reduce_271(val, _values, result)
                      result =  [ val[0] ]

    result
end

#_reduce_272(val, _values, result) ⇒ Object



9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
# File 'lib/parser/ruby27.rb', line 9250

def _reduce_272(val, _values, result)
                      # When branch gets invoked by RACC's lookahead
                      # and command args start with '[' or '('
                      # we need to put `true` to the cmdarg stack
                      # **before** `false` pushed by lexer
                      #   m [], n
                      #     ^
                      # Right here we have cmdarg [...0] because
                      # lexer pushed it on '['
                      # We need to modify cmdarg stack to [...10]
                      #
                      # For all other cases (like `m n` or `m n, []`) we simply put 1 to the stack
                      # and later lexer pushes corresponding bits on top of it.
                      last_token = @last_token[0]
                      lookahead = last_token == :tLBRACK || last_token == :tLPAREN_ARG

                      if lookahead
                        top = @lexer.cmdarg.pop
                        @lexer.cmdarg.push(true)
                        @lexer.cmdarg.push(top)
                      else
                        @lexer.cmdarg.push(true)
                      end

    result
end

#_reduce_273(val, _values, result) ⇒ Object



9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
# File 'lib/parser/ruby27.rb', line 9277

def _reduce_273(val, _values, result)
                      # 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.
                      last_token = @last_token[0]
                      lookahead = last_token == :tLBRACE_ARG
                      if lookahead
                        top = @lexer.cmdarg.pop
                        @lexer.cmdarg.pop
                        @lexer.cmdarg.push(top)
                      else
                        @lexer.cmdarg.pop
                      end

                      result = val[1]

    result
end

#_reduce_274(val, _values, result) ⇒ Object



9298
9299
9300
9301
9302
# File 'lib/parser/ruby27.rb', line 9298

def _reduce_274(val, _values, result)
                      result = @builder.block_pass(val[0], val[1])

    result
end

#_reduce_275(val, _values, result) ⇒ Object



9304
9305
9306
9307
9308
# File 'lib/parser/ruby27.rb', line 9304

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

    result
end

#_reduce_276(val, _values, result) ⇒ Object



9310
9311
9312
9313
9314
# File 'lib/parser/ruby27.rb', line 9310

def _reduce_276(val, _values, result)
                      result = []

    result
end

#_reduce_277(val, _values, result) ⇒ Object



9316
9317
9318
9319
9320
# File 'lib/parser/ruby27.rb', line 9316

def _reduce_277(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_278(val, _values, result) ⇒ Object



9322
9323
9324
9325
9326
# File 'lib/parser/ruby27.rb', line 9322

def _reduce_278(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]) ]

    result
end

#_reduce_279(val, _values, result) ⇒ Object



9328
9329
9330
9331
9332
# File 'lib/parser/ruby27.rb', line 9328

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

    result
end

#_reduce_28(val, _values, result) ⇒ Object



8081
8082
8083
8084
8085
# File 'lib/parser/ruby27.rb', line 8081

def _reduce_28(val, _values, result)
                      result = @builder.loop_mod(:until, val[0], val[1], val[2])

    result
end

#_reduce_280(val, _values, result) ⇒ Object



9334
9335
9336
9337
9338
# File 'lib/parser/ruby27.rb', line 9334

def _reduce_280(val, _values, result)
                      result = val[0] << @builder.splat(val[2], val[3])

    result
end

#_reduce_281(val, _values, result) ⇒ Object



9340
9341
9342
9343
9344
# File 'lib/parser/ruby27.rb', line 9340

def _reduce_281(val, _values, result)
                      result = @builder.array(nil, val[0], nil)

    result
end

#_reduce_283(val, _values, result) ⇒ Object

reduce 282 omitted



9348
9349
9350
9351
9352
# File 'lib/parser/ruby27.rb', line 9348

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

    result
end

#_reduce_284(val, _values, result) ⇒ Object



9354
9355
9356
9357
9358
# File 'lib/parser/ruby27.rb', line 9354

def _reduce_284(val, _values, result)
                      result = val[0] << @builder.splat(val[2], val[3])

    result
end

#_reduce_285(val, _values, result) ⇒ Object



9360
9361
9362
9363
9364
# File 'lib/parser/ruby27.rb', line 9360

def _reduce_285(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]) ]

    result
end

#_reduce_29(val, _values, result) ⇒ Object



8087
8088
8089
8090
8091
8092
8093
8094
8095
# File 'lib/parser/ruby27.rb', line 8087

def _reduce_29(val, _values, result)
                      rescue_body = @builder.rescue_body(val[1],
                                        nil, nil, nil,
                                        nil, val[2])

                      result = @builder.begin_body(val[0], [ rescue_body ])

    result
end

#_reduce_296(val, _values, result) ⇒ Object

reduce 295 omitted



9386
9387
9388
9389
9390
# File 'lib/parser/ruby27.rb', line 9386

def _reduce_296(val, _values, result)
                      result = @builder.call_method(nil, nil, val[0])

    result
end

#_reduce_297(val, _values, result) ⇒ Object



9392
9393
9394
9395
9396
# File 'lib/parser/ruby27.rb', line 9392

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

    result
end

#_reduce_298(val, _values, result) ⇒ Object



9398
9399
9400
9401
9402
9403
9404
# File 'lib/parser/ruby27.rb', line 9398

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

                      result = @builder.begin_keyword(val[0], val[2], val[3])

    result
end

#_reduce_299(val, _values, result) ⇒ Object



9406
9407
9408
9409
9410
# File 'lib/parser/ruby27.rb', line 9406

def _reduce_299(val, _values, result)
                      @lexer.state = :expr_endarg

    result
end

#_reduce_3(val, _values, result) ⇒ Object



7922
7923
7924
7925
7926
# File 'lib/parser/ruby27.rb', line 7922

def _reduce_3(val, _values, result)
                      result = @builder.compstmt(val[0])

    result
end

#_reduce_30(val, _values, result) ⇒ Object



8097
8098
8099
8100
8101
# File 'lib/parser/ruby27.rb', line 8097

def _reduce_30(val, _values, result)
                      result = @builder.postexe(val[0], val[1], val[2], val[3])

    result
end

#_reduce_300(val, _values, result) ⇒ Object



9412
9413
9414
9415
9416
# File 'lib/parser/ruby27.rb', line 9412

def _reduce_300(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[3])

    result
end

#_reduce_301(val, _values, result) ⇒ Object



9418
9419
9420
9421
9422
# File 'lib/parser/ruby27.rb', line 9418

def _reduce_301(val, _values, result)
                      @lexer.state = :expr_endarg

    result
end

#_reduce_302(val, _values, result) ⇒ Object



9424
9425
9426
9427
9428
# File 'lib/parser/ruby27.rb', line 9424

def _reduce_302(val, _values, result)
                      result = @builder.begin(val[0], nil, val[3])

    result
end

#_reduce_303(val, _values, result) ⇒ Object



9430
9431
9432
9433
9434
# File 'lib/parser/ruby27.rb', line 9430

def _reduce_303(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[2])

    result
end

#_reduce_304(val, _values, result) ⇒ Object



9436
9437
9438
9439
9440
# File 'lib/parser/ruby27.rb', line 9436

def _reduce_304(val, _values, result)
                      result = @builder.const_fetch(val[0], val[1], val[2])

    result
end

#_reduce_305(val, _values, result) ⇒ Object



9442
9443
9444
9445
9446
# File 'lib/parser/ruby27.rb', line 9442

def _reduce_305(val, _values, result)
                      result = @builder.const_global(val[0], val[1])

    result
end

#_reduce_306(val, _values, result) ⇒ Object



9448
9449
9450
9451
9452
# File 'lib/parser/ruby27.rb', line 9448

def _reduce_306(val, _values, result)
                      result = @builder.array(val[0], val[1], val[2])

    result
end

#_reduce_307(val, _values, result) ⇒ Object



9454
9455
9456
9457
9458
# File 'lib/parser/ruby27.rb', line 9454

def _reduce_307(val, _values, result)
                      result = @builder.associate(val[0], val[1], val[2])

    result
end

#_reduce_308(val, _values, result) ⇒ Object



9460
9461
9462
9463
9464
# File 'lib/parser/ruby27.rb', line 9460

def _reduce_308(val, _values, result)
                      result = @builder.keyword_cmd(:return, val[0])

    result
end

#_reduce_309(val, _values, result) ⇒ Object



9466
9467
9468
9469
9470
# File 'lib/parser/ruby27.rb', line 9466

def _reduce_309(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0], val[1], val[2], val[3])

    result
end

#_reduce_310(val, _values, result) ⇒ Object



9472
9473
9474
9475
9476
# File 'lib/parser/ruby27.rb', line 9472

def _reduce_310(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0], val[1], [], val[2])

    result
end

#_reduce_311(val, _values, result) ⇒ Object



9478
9479
9480
9481
9482
# File 'lib/parser/ruby27.rb', line 9478

def _reduce_311(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0])

    result
end

#_reduce_312(val, _values, result) ⇒ Object



9484
9485
9486
9487
9488
9489
# File 'lib/parser/ruby27.rb', line 9484

def _reduce_312(val, _values, result)
                      result = @builder.keyword_cmd(:defined?, val[0],
                                                    val[2], [ val[3] ], val[4])

    result
end

#_reduce_313(val, _values, result) ⇒ Object



9491
9492
9493
9494
9495
# File 'lib/parser/ruby27.rb', line 9491

def _reduce_313(val, _values, result)
                      result = @builder.not_op(val[0], val[1], val[2], val[3])

    result
end

#_reduce_314(val, _values, result) ⇒ Object



9497
9498
9499
9500
9501
# File 'lib/parser/ruby27.rb', line 9497

def _reduce_314(val, _values, result)
                      result = @builder.not_op(val[0], val[1], nil, val[2])

    result
end

#_reduce_315(val, _values, result) ⇒ Object



9503
9504
9505
9506
9507
9508
9509
9510
9511
# File 'lib/parser/ruby27.rb', line 9503

def _reduce_315(val, _values, result)
                      method_call = @builder.call_method(nil, nil, val[0])

                      begin_t, args, body, end_t = val[1]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)

    result
end

#_reduce_317(val, _values, result) ⇒ Object

reduce 316 omitted



9515
9516
9517
9518
9519
9520
9521
# File 'lib/parser/ruby27.rb', line 9515

def _reduce_317(val, _values, result)
                      begin_t, args, body, end_t = val[1]
                      result      = @builder.block(val[0],
                                      begin_t, args, body, end_t)

    result
end

#_reduce_318(val, _values, result) ⇒ Object



9523
9524
9525
9526
9527
9528
# File 'lib/parser/ruby27.rb', line 9523

def _reduce_318(val, _values, result)
                      result = @context.dup
                      @context.in_lambda = true

    result
end

#_reduce_319(val, _values, result) ⇒ Object



9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
# File 'lib/parser/ruby27.rb', line 9530

def _reduce_319(val, _values, result)
                      lambda_call = @builder.call_lambda(val[0])

                      args, (begin_t, body, end_t) = val[2]
                      result      = @builder.block(lambda_call,
                                      begin_t, args, body, end_t)

                      @context.in_lambda = val[1].in_lambda

    result
end

#_reduce_32(val, _values, result) ⇒ Object

reduce 31 omitted



8105
8106
8107
8108
8109
# File 'lib/parser/ruby27.rb', line 8105

def _reduce_32(val, _values, result)
                      result = @builder.multi_assign(val[0], val[1], val[2])

    result
end

#_reduce_320(val, _values, result) ⇒ Object



9542
9543
9544
9545
9546
9547
9548
9549
# File 'lib/parser/ruby27.rb', line 9542

def _reduce_320(val, _values, result)
                      else_t, else_ = val[4]
                      result = @builder.condition(val[0], val[1], val[2],
                                                  val[3], else_t,
                                                  else_,  val[5])

    result
end

#_reduce_321(val, _values, result) ⇒ Object



9551
9552
9553
9554
9555
9556
9557
9558
# File 'lib/parser/ruby27.rb', line 9551

def _reduce_321(val, _values, result)
                      else_t, else_ = val[4]
                      result = @builder.condition(val[0], val[1], val[2],
                                                  else_,  else_t,
                                                  val[3], val[5])

    result
end

#_reduce_322(val, _values, result) ⇒ Object



9560
9561
9562
9563
9564
# File 'lib/parser/ruby27.rb', line 9560

def _reduce_322(val, _values, result)
                      result = @builder.loop(:while, val[0], *val[1], val[2], val[3])

    result
end

#_reduce_323(val, _values, result) ⇒ Object



9566
9567
9568
9569
9570
# File 'lib/parser/ruby27.rb', line 9566

def _reduce_323(val, _values, result)
                      result = @builder.loop(:until, val[0], *val[1], val[2], val[3])

    result
end

#_reduce_324(val, _values, result) ⇒ Object



9572
9573
9574
9575
9576
9577
9578
9579
9580
# File 'lib/parser/ruby27.rb', line 9572

def _reduce_324(val, _values, result)
                      *when_bodies, (else_t, else_body) = *val[3]

                      result = @builder.case(val[0], val[1],
                                             when_bodies, else_t, else_body,
                                             val[4])

    result
end

#_reduce_325(val, _values, result) ⇒ Object



9582
9583
9584
9585
9586
9587
9588
9589
9590
# File 'lib/parser/ruby27.rb', line 9582

def _reduce_325(val, _values, result)
                      *when_bodies, (else_t, else_body) = *val[2]

                      result = @builder.case(val[0], nil,
                                             when_bodies, else_t, else_body,
                                             val[3])

    result
end

#_reduce_326(val, _values, result) ⇒ Object



9592
9593
9594
9595
9596
9597
9598
9599
9600
# File 'lib/parser/ruby27.rb', line 9592

def _reduce_326(val, _values, result)
                      *in_bodies, (else_t, else_body) = *val[3]

                      result = @builder.case_match(val[0], val[1],
                                             in_bodies, else_t, else_body,
                                             val[4])

    result
end

#_reduce_327(val, _values, result) ⇒ Object



9602
9603
9604
9605
9606
# File 'lib/parser/ruby27.rb', line 9602

def _reduce_327(val, _values, result)
                      result = @builder.for(val[0], val[1], val[2], *val[3], val[4], val[5])

    result
end

#_reduce_328(val, _values, result) ⇒ Object



9608
9609
9610
9611
9612
9613
# File 'lib/parser/ruby27.rb', line 9608

def _reduce_328(val, _values, result)
                      local_push
                      @context.in_class = true

    result
end

#_reduce_329(val, _values, result) ⇒ Object



9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
# File 'lib/parser/ruby27.rb', line 9615

def _reduce_329(val, _values, result)
                      k_class, ctx = val[0]
                      if @context.in_def
                        diagnostic :error, :class_in_def, nil, k_class
                      end

                      lt_t, superclass = val[2]
                      result = @builder.def_class(k_class, val[1],
                                                  lt_t, superclass,
                                                  val[4], val[5])

                      local_pop
                      @context.in_class = ctx.in_class

    result
end

#_reduce_33(val, _values, result) ⇒ Object



8111
8112
8113
8114
8115
8116
# File 'lib/parser/ruby27.rb', line 8111

def _reduce_33(val, _values, result)
                      result = @builder.assign(val[0], val[1],
                                  @builder.array(nil, val[2], nil))

    result
end

#_reduce_330(val, _values, result) ⇒ Object



9632
9633
9634
9635
9636
9637
9638
# File 'lib/parser/ruby27.rb', line 9632

def _reduce_330(val, _values, result)
                      @context.in_def = false
                      @context.in_class = false
                      local_push

    result
end

#_reduce_331(val, _values, result) ⇒ Object



9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
# File 'lib/parser/ruby27.rb', line 9640

def _reduce_331(val, _values, result)
                      k_class, ctx = val[0]
                      result = @builder.def_sclass(k_class, val[1], val[2],
                                                   val[5], val[6])

                      local_pop
                      @context.in_def = ctx.in_def
                      @context.in_class = ctx.in_class

    result
end

#_reduce_332(val, _values, result) ⇒ Object



9652
9653
9654
9655
9656
9657
# File 'lib/parser/ruby27.rb', line 9652

def _reduce_332(val, _values, result)
                      @context.in_class = true
                      local_push

    result
end

#_reduce_333(val, _values, result) ⇒ Object



9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
# File 'lib/parser/ruby27.rb', line 9659

def _reduce_333(val, _values, result)
                      k_mod, ctx = val[0]
                      if @context.in_def
                        diagnostic :error, :module_in_def, nil, k_mod
                      end

                      result = @builder.def_module(k_mod, val[1],
                                                   val[3], val[4])

                      local_pop
                      @context.in_class = ctx.in_class

    result
end

#_reduce_334(val, _values, result) ⇒ Object



9674
9675
9676
9677
9678
9679
9680
9681
# File 'lib/parser/ruby27.rb', line 9674

def _reduce_334(val, _values, result)
                      local_push
                      result = context.dup
                      @context.in_def = true
                      @current_arg_stack.push(nil)

    result
end

#_reduce_335(val, _values, result) ⇒ Object



9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
# File 'lib/parser/ruby27.rb', line 9683

def _reduce_335(val, _values, result)
                      result = @builder.def_method(val[0], val[1],
                                  val[3], val[4], val[5])

                      local_pop
                      @context.in_def = val[2].in_def
                      @current_arg_stack.pop

    result
end

#_reduce_336(val, _values, result) ⇒ Object



9694
9695
9696
9697
9698
# File 'lib/parser/ruby27.rb', line 9694

def _reduce_336(val, _values, result)
                      @lexer.state = :expr_fname

    result
end

#_reduce_337(val, _values, result) ⇒ Object



9700
9701
9702
9703
9704
9705
9706
9707
# File 'lib/parser/ruby27.rb', line 9700

def _reduce_337(val, _values, result)
                      local_push
                      result = context.dup
                      @context.in_def = true
                      @current_arg_stack.push(nil)

    result
end

#_reduce_338(val, _values, result) ⇒ Object



9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
# File 'lib/parser/ruby27.rb', line 9709

def _reduce_338(val, _values, result)
                      result = @builder.def_singleton(val[0], val[1], val[2],
                                  val[4], val[6], val[7], val[8])

                      local_pop
                      @context.in_def = val[5].in_def
                      @current_arg_stack.pop

    result
end

#_reduce_339(val, _values, result) ⇒ Object



9720
9721
9722
9723
9724
# File 'lib/parser/ruby27.rb', line 9720

def _reduce_339(val, _values, result)
                      result = @builder.keyword_cmd(:break, val[0])

    result
end

#_reduce_34(val, _values, result) ⇒ Object



8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
# File 'lib/parser/ruby27.rb', line 8118

def _reduce_34(val, _values, result)
                      rescue_body = @builder.rescue_body(val[3],
                                                         nil, nil, nil,
                                                         nil, val[4])
                      begin_body = @builder.begin_body(val[2], [ rescue_body ])

                      result = @builder.multi_assign(val[0], val[1], begin_body)

    result
end

#_reduce_340(val, _values, result) ⇒ Object



9726
9727
9728
9729
9730
# File 'lib/parser/ruby27.rb', line 9726

def _reduce_340(val, _values, result)
                      result = @builder.keyword_cmd(:next, val[0])

    result
end

#_reduce_341(val, _values, result) ⇒ Object



9732
9733
9734
9735
9736
# File 'lib/parser/ruby27.rb', line 9732

def _reduce_341(val, _values, result)
                      result = @builder.keyword_cmd(:redo, val[0])

    result
end

#_reduce_342(val, _values, result) ⇒ Object



9738
9739
9740
9741
9742
# File 'lib/parser/ruby27.rb', line 9738

def _reduce_342(val, _values, result)
                      result = @builder.keyword_cmd(:retry, val[0])

    result
end

#_reduce_344(val, _values, result) ⇒ Object

reduce 343 omitted



9746
9747
9748
9749
9750
# File 'lib/parser/ruby27.rb', line 9746

def _reduce_344(val, _values, result)
                      result = [ val[0], @context.dup ]

    result
end

#_reduce_345(val, _values, result) ⇒ Object



9752
9753
9754
9755
9756
# File 'lib/parser/ruby27.rb', line 9752

def _reduce_345(val, _values, result)
                      result = [ val[0], @context.dup ]

    result
end

#_reduce_346(val, _values, result) ⇒ Object



9758
9759
9760
9761
9762
# File 'lib/parser/ruby27.rb', line 9758

def _reduce_346(val, _values, result)
                      result = val[0]

    result
end

#_reduce_347(val, _values, result) ⇒ Object



9764
9765
9766
9767
9768
9769
9770
# File 'lib/parser/ruby27.rb', line 9764

def _reduce_347(val, _values, result)
                      if @context.in_class && !@context.in_def && !(context.in_block || context.in_lambda)
                        diagnostic :error, :invalid_return, nil, val[0]
                      end

    result
end

#_reduce_35(val, _values, result) ⇒ Object



8129
8130
8131
8132
8133
# File 'lib/parser/ruby27.rb', line 8129

def _reduce_35(val, _values, result)
                      result = @builder.multi_assign(val[0], val[1], val[2])

    result
end

#_reduce_350(val, _values, result) ⇒ Object

reduce 349 omitted



9776
9777
9778
9779
9780
# File 'lib/parser/ruby27.rb', line 9776

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

    result
end

#_reduce_354(val, _values, result) ⇒ Object

reduce 353 omitted



9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
# File 'lib/parser/ruby27.rb', line 9788

def _reduce_354(val, _values, result)
                      else_t, else_ = val[4]
                      result = [ val[0],
                                 @builder.condition(val[0], val[1], val[2],
                                                    val[3], else_t,
                                                    else_,  nil),
                               ]

    result
end

#_reduce_356(val, _values, result) ⇒ Object

reduce 355 omitted



9801
9802
9803
9804
9805
# File 'lib/parser/ruby27.rb', line 9801

def _reduce_356(val, _values, result)
                      result = val

    result
end

#_reduce_359(val, _values, result) ⇒ Object

reduce 358 omitted



9811
9812
9813
9814
9815
# File 'lib/parser/ruby27.rb', line 9811

def _reduce_359(val, _values, result)
                      result = @builder.arg(val[0])

    result
end

#_reduce_360(val, _values, result) ⇒ Object



9817
9818
9819
9820
9821
# File 'lib/parser/ruby27.rb', line 9817

def _reduce_360(val, _values, result)
                      result = @builder.multi_lhs(val[0], val[1], val[2])

    result
end

#_reduce_361(val, _values, result) ⇒ Object



9823
9824
9825
9826
9827
# File 'lib/parser/ruby27.rb', line 9823

def _reduce_361(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_362(val, _values, result) ⇒ Object



9829
9830
9831
9832
9833
# File 'lib/parser/ruby27.rb', line 9829

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

    result
end

#_reduce_364(val, _values, result) ⇒ Object

reduce 363 omitted



9837
9838
9839
9840
9841
9842
# File 'lib/parser/ruby27.rb', line 9837

def _reduce_364(val, _values, result)
                      result = val[0].
                                  push(val[2])

    result
end

#_reduce_365(val, _values, result) ⇒ Object



9844
9845
9846
9847
9848
9849
9850
# File 'lib/parser/ruby27.rb', line 9844

def _reduce_365(val, _values, result)
                      result = val[0].
                                  push(val[2]).
                                  concat(val[4])

    result
end

#_reduce_366(val, _values, result) ⇒ Object



9852
9853
9854
9855
9856
# File 'lib/parser/ruby27.rb', line 9852

def _reduce_366(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_367(val, _values, result) ⇒ Object



9858
9859
9860
9861
9862
# File 'lib/parser/ruby27.rb', line 9858

def _reduce_367(val, _values, result)
                      result = [ val[0], *val[2] ]

    result
end

#_reduce_368(val, _values, result) ⇒ Object



9864
9865
9866
9867
9868
# File 'lib/parser/ruby27.rb', line 9864

def _reduce_368(val, _values, result)
                      result = @builder.restarg(val[0], val[1])

    result
end

#_reduce_369(val, _values, result) ⇒ Object



9870
9871
9872
9873
9874
# File 'lib/parser/ruby27.rb', line 9870

def _reduce_369(val, _values, result)
                      result = @builder.restarg(val[0])

    result
end

#_reduce_37(val, _values, result) ⇒ Object

reduce 36 omitted



8137
8138
8139
8140
8141
# File 'lib/parser/ruby27.rb', line 8137

def _reduce_37(val, _values, result)
                      result = @builder.assign(val[0], val[1], val[2])

    result
end

#_reduce_370(val, _values, result) ⇒ Object



9876
9877
9878
9879
9880
# File 'lib/parser/ruby27.rb', line 9876

def _reduce_370(val, _values, result)
                      result = val[0].concat(val[2]).concat(val[3])

    result
end

#_reduce_371(val, _values, result) ⇒ Object



9882
9883
9884
9885
9886
# File 'lib/parser/ruby27.rb', line 9882

def _reduce_371(val, _values, result)
                      result = val[0].concat(val[1])

    result
end

#_reduce_372(val, _values, result) ⇒ Object



9888
9889
9890
9891
9892
# File 'lib/parser/ruby27.rb', line 9888

def _reduce_372(val, _values, result)
                      result = val[0].concat(val[1])

    result
end

#_reduce_373(val, _values, result) ⇒ Object



9894
9895
9896
9897
9898
# File 'lib/parser/ruby27.rb', line 9894

def _reduce_373(val, _values, result)
                      result = val[0].concat(val[1])

    result
end

#_reduce_374(val, _values, result) ⇒ Object



9900
9901
9902
9903
9904
# File 'lib/parser/ruby27.rb', line 9900

def _reduce_374(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_375(val, _values, result) ⇒ Object



9906
9907
9908
9909
9910
# File 'lib/parser/ruby27.rb', line 9906

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

    result
end

#_reduce_376(val, _values, result) ⇒ Object



9912
9913
9914
9915
9916
# File 'lib/parser/ruby27.rb', line 9912

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

    result
end

#_reduce_377(val, _values, result) ⇒ Object



9918
9919
9920
9921
9922
9923
9924
9925
# File 'lib/parser/ruby27.rb', line 9918

def _reduce_377(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_378(val, _values, result) ⇒ Object



9927
9928
9929
9930
9931
9932
9933
9934
9935
# File 'lib/parser/ruby27.rb', line 9927

def _reduce_378(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[6]).
                                  concat(val[7])

    result
end

#_reduce_379(val, _values, result) ⇒ Object



9937
9938
9939
9940
9941
9942
9943
# File 'lib/parser/ruby27.rb', line 9937

def _reduce_379(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_38(val, _values, result) ⇒ Object



8143
8144
8145
8146
8147
# File 'lib/parser/ruby27.rb', line 8143

def _reduce_38(val, _values, result)
                      result = @builder.op_assign(val[0], val[1], val[2])

    result
end

#_reduce_380(val, _values, result) ⇒ Object



9945
9946
9947
9948
9949
9950
9951
9952
# File 'lib/parser/ruby27.rb', line 9945

def _reduce_380(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_381(val, _values, result) ⇒ Object



9954
9955
9956
9957
9958
9959
9960
# File 'lib/parser/ruby27.rb', line 9954

def _reduce_381(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_383(val, _values, result) ⇒ Object

reduce 382 omitted



9964
9965
9966
9967
9968
9969
9970
9971
# File 'lib/parser/ruby27.rb', line 9964

def _reduce_383(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_384(val, _values, result) ⇒ Object



9973
9974
9975
9976
9977
9978
9979
9980
9981
# File 'lib/parser/ruby27.rb', line 9973

def _reduce_384(val, _values, result)
                      if val[1].empty? && val[0].size == 1
                        result = [@builder.procarg0(val[0][0])]
                      else
                        result = val[0].concat(val[1])
                      end

    result
end

#_reduce_385(val, _values, result) ⇒ Object



9983
9984
9985
9986
9987
9988
9989
# File 'lib/parser/ruby27.rb', line 9983

def _reduce_385(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_386(val, _values, result) ⇒ Object



9991
9992
9993
9994
9995
9996
9997
9998
# File 'lib/parser/ruby27.rb', line 9991

def _reduce_386(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_387(val, _values, result) ⇒ Object



10000
10001
10002
10003
10004
10005
# File 'lib/parser/ruby27.rb', line 10000

def _reduce_387(val, _values, result)
                      result = val[0].
                                  concat(val[1])

    result
end

#_reduce_388(val, _values, result) ⇒ Object



10007
10008
10009
10010
10011
10012
10013
# File 'lib/parser/ruby27.rb', line 10007

def _reduce_388(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_389(val, _values, result) ⇒ Object



10015
10016
10017
10018
10019
10020
# File 'lib/parser/ruby27.rb', line 10015

def _reduce_389(val, _values, result)
                      result = val[0].
                                  concat(val[1])

    result
end

#_reduce_39(val, _values, result) ⇒ Object



8149
8150
8151
8152
8153
8154
8155
8156
# File 'lib/parser/ruby27.rb', line 8149

def _reduce_39(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.index(
                                    val[0], val[1], val[2], val[3]),
                                  val[4], val[5])

    result
end

#_reduce_390(val, _values, result) ⇒ Object



10022
10023
10024
10025
10026
10027
10028
# File 'lib/parser/ruby27.rb', line 10022

def _reduce_390(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_392(val, _values, result) ⇒ Object

reduce 391 omitted



10032
10033
10034
10035
10036
# File 'lib/parser/ruby27.rb', line 10032

def _reduce_392(val, _values, result)
                      result = @builder.args(nil, [], nil)

    result
end

#_reduce_393(val, _values, result) ⇒ Object



10038
10039
10040
10041
10042
# File 'lib/parser/ruby27.rb', line 10038

def _reduce_393(val, _values, result)
                      @lexer.state = :expr_value

    result
end

#_reduce_394(val, _values, result) ⇒ Object



10044
10045
10046
10047
10048
10049
10050
# File 'lib/parser/ruby27.rb', line 10044

def _reduce_394(val, _values, result)
                      @max_numparam_stack.has_ordinary_params!
                      @current_arg_stack.set(nil)
                      result = @builder.args(val[0], val[1], val[2])

    result
end

#_reduce_395(val, _values, result) ⇒ Object



10052
10053
10054
10055
10056
10057
10058
# File 'lib/parser/ruby27.rb', line 10052

def _reduce_395(val, _values, result)
                      @max_numparam_stack.has_ordinary_params!
                      @current_arg_stack.set(nil)
                      result = @builder.args(val[0], val[1].concat(val[2]), val[3])

    result
end

#_reduce_396(val, _values, result) ⇒ Object



10060
10061
10062
10063
10064
# File 'lib/parser/ruby27.rb', line 10060

def _reduce_396(val, _values, result)
                      result = []

    result
end

#_reduce_397(val, _values, result) ⇒ Object



10066
10067
10068
10069
10070
# File 'lib/parser/ruby27.rb', line 10066

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

    result
end

#_reduce_398(val, _values, result) ⇒ Object



10072
10073
10074
10075
10076
# File 'lib/parser/ruby27.rb', line 10072

def _reduce_398(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_399(val, _values, result) ⇒ Object



10078
10079
10080
10081
10082
# File 'lib/parser/ruby27.rb', line 10078

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

    result
end

#_reduce_4(val, _values, result) ⇒ Object



7928
7929
7930
7931
7932
# File 'lib/parser/ruby27.rb', line 7928

def _reduce_4(val, _values, result)
                      result = []

    result
end

#_reduce_40(val, _values, result) ⇒ Object



8158
8159
8160
8161
8162
8163
8164
8165
# File 'lib/parser/ruby27.rb', line 8158

def _reduce_40(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])

    result
end

#_reduce_400(val, _values, result) ⇒ Object



10084
10085
10086
10087
10088
10089
# File 'lib/parser/ruby27.rb', line 10084

def _reduce_400(val, _values, result)
                      @static_env.declare val[0][0]
                      result = @builder.shadowarg(val[0])

    result
end

#_reduce_402(val, _values, result) ⇒ Object

reduce 401 omitted



10093
10094
10095
10096
10097
10098
# File 'lib/parser/ruby27.rb', line 10093

def _reduce_402(val, _values, result)
                      @static_env.extend_dynamic
                      @max_numparam_stack.push(static: false)

    result
end

#_reduce_403(val, _values, result) ⇒ Object



10100
10101
10102
10103
10104
# File 'lib/parser/ruby27.rb', line 10100

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

    result
end

#_reduce_404(val, _values, result) ⇒ Object



10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
# File 'lib/parser/ruby27.rb', line 10106

def _reduce_404(val, _values, result)
                      args = @max_numparam_stack.has_numparams? ? @builder.numargs(@max_numparam_stack.top) : val[1]
                      result = [ args, val[3] ]

                      @max_numparam_stack.pop
                      @static_env.unextend
                      @lexer.cmdarg.pop

    result
end

#_reduce_405(val, _values, result) ⇒ Object



10117
10118
10119
10120
10121
10122
# File 'lib/parser/ruby27.rb', line 10117

def _reduce_405(val, _values, result)
                      @max_numparam_stack.has_ordinary_params!
                      result = @builder.args(val[0], val[1].concat(val[2]), val[3])

    result
end

#_reduce_406(val, _values, result) ⇒ Object



10124
10125
10126
10127
10128
10129
10130
10131
# File 'lib/parser/ruby27.rb', line 10124

def _reduce_406(val, _values, result)
                      if val[0].any?
                        @max_numparam_stack.has_ordinary_params!
                      end
                      result = @builder.args(nil, val[0], nil)

    result
end

#_reduce_407(val, _values, result) ⇒ Object



10133
10134
10135
10136
10137
10138
# File 'lib/parser/ruby27.rb', line 10133

def _reduce_407(val, _values, result)
                      result = @context.dup
                      @context.in_lambda = true

    result
end

#_reduce_408(val, _values, result) ⇒ Object



10140
10141
10142
10143
10144
10145
# File 'lib/parser/ruby27.rb', line 10140

def _reduce_408(val, _values, result)
                      result = [ val[0], val[2], val[3] ]
                      @context.in_lambda = val[1].in_lambda

    result
end

#_reduce_409(val, _values, result) ⇒ Object



10147
10148
10149
10150
10151
10152
# File 'lib/parser/ruby27.rb', line 10147

def _reduce_409(val, _values, result)
                      result = @context.dup
                      @context.in_lambda = true

    result
end

#_reduce_41(val, _values, result) ⇒ Object



8167
8168
8169
8170
8171
8172
8173
8174
# File 'lib/parser/ruby27.rb', line 8167

def _reduce_41(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])

    result
end

#_reduce_410(val, _values, result) ⇒ Object



10154
10155
10156
10157
10158
10159
# File 'lib/parser/ruby27.rb', line 10154

def _reduce_410(val, _values, result)
                      result = [ val[0], val[2], val[3] ]
                      @context.in_lambda = val[1].in_lambda

    result
end

#_reduce_411(val, _values, result) ⇒ Object



10161
10162
10163
10164
10165
10166
# File 'lib/parser/ruby27.rb', line 10161

def _reduce_411(val, _values, result)
                      result = @context.dup
                      @context.in_block = true

    result
end

#_reduce_412(val, _values, result) ⇒ Object



10168
10169
10170
10171
10172
10173
# File 'lib/parser/ruby27.rb', line 10168

def _reduce_412(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.in_block = val[1].in_block

    result
end

#_reduce_413(val, _values, result) ⇒ Object



10175
10176
10177
10178
10179
10180
10181
# File 'lib/parser/ruby27.rb', line 10175

def _reduce_413(val, _values, result)
                      begin_t, block_args, body, end_t = val[1]
                      result      = @builder.block(val[0],
                                      begin_t, block_args, body, end_t)

    result
end

#_reduce_414(val, _values, result) ⇒ Object



10183
10184
10185
10186
10187
10188
10189
# File 'lib/parser/ruby27.rb', line 10183

def _reduce_414(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      result = @builder.call_method(val[0], val[1], val[2],
                                  lparen_t, args, rparen_t)

    result
end

#_reduce_415(val, _values, result) ⇒ Object



10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
# File 'lib/parser/ruby27.rb', line 10191

def _reduce_415(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                      lparen_t, args, rparen_t)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)

    result
end

#_reduce_416(val, _values, result) ⇒ Object



10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
# File 'lib/parser/ruby27.rb', line 10203

def _reduce_416(val, _values, result)
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                      nil, val[3], nil)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)

    result
end

#_reduce_417(val, _values, result) ⇒ Object



10214
10215
10216
10217
10218
10219
10220
# File 'lib/parser/ruby27.rb', line 10214

def _reduce_417(val, _values, result)
                      lparen_t, args, rparen_t = val[1]
                      result = @builder.call_method(nil, nil, val[0],
                                  lparen_t, args, rparen_t)

    result
end

#_reduce_418(val, _values, result) ⇒ Object



10222
10223
10224
10225
10226
10227
10228
# File 'lib/parser/ruby27.rb', line 10222

def _reduce_418(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      result = @builder.call_method(val[0], val[1], val[2],
                                  lparen_t, args, rparen_t)

    result
end

#_reduce_419(val, _values, result) ⇒ Object



10230
10231
10232
10233
10234
10235
10236
# File 'lib/parser/ruby27.rb', line 10230

def _reduce_419(val, _values, result)
                      lparen_t, args, rparen_t = val[3]
                      result = @builder.call_method(val[0], val[1], val[2],
                                  lparen_t, args, rparen_t)

    result
end

#_reduce_42(val, _values, result) ⇒ Object



8176
8177
8178
8179
8180
8181
8182
# File 'lib/parser/ruby27.rb', line 8176

def _reduce_42(val, _values, result)
                      const  = @builder.const_op_assignable(
                                  @builder.const_fetch(val[0], val[1], val[2]))
                      result = @builder.op_assign(const, val[3], val[4])

    result
end

#_reduce_420(val, _values, result) ⇒ Object



10238
10239
10240
10241
10242
# File 'lib/parser/ruby27.rb', line 10238

def _reduce_420(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2])

    result
end

#_reduce_421(val, _values, result) ⇒ Object



10244
10245
10246
10247
10248
10249
10250
# File 'lib/parser/ruby27.rb', line 10244

def _reduce_421(val, _values, result)
                      lparen_t, args, rparen_t = val[2]
                      result = @builder.call_method(val[0], val[1], nil,
                                  lparen_t, args, rparen_t)

    result
end

#_reduce_422(val, _values, result) ⇒ Object



10252
10253
10254
10255
10256
10257
10258
# File 'lib/parser/ruby27.rb', line 10252

def _reduce_422(val, _values, result)
                      lparen_t, args, rparen_t = val[2]
                      result = @builder.call_method(val[0], val[1], nil,
                                  lparen_t, args, rparen_t)

    result
end

#_reduce_423(val, _values, result) ⇒ Object



10260
10261
10262
10263
10264
10265
10266
# File 'lib/parser/ruby27.rb', line 10260

def _reduce_423(val, _values, result)
                      lparen_t, args, rparen_t = val[1]
                      result = @builder.keyword_cmd(:super, val[0],
                                  lparen_t, args, rparen_t)

    result
end

#_reduce_424(val, _values, result) ⇒ Object



10268
10269
10270
10271
10272
# File 'lib/parser/ruby27.rb', line 10268

def _reduce_424(val, _values, result)
                      result = @builder.keyword_cmd(:zsuper, val[0])

    result
end

#_reduce_425(val, _values, result) ⇒ Object



10274
10275
10276
10277
10278
# File 'lib/parser/ruby27.rb', line 10274

def _reduce_425(val, _values, result)
                      result = @builder.index(val[0], val[1], val[2], val[3])

    result
end

#_reduce_426(val, _values, result) ⇒ Object



10280
10281
10282
10283
10284
10285
# File 'lib/parser/ruby27.rb', line 10280

def _reduce_426(val, _values, result)
                      result = @context.dup
                      @context.in_block = true

    result
end

#_reduce_427(val, _values, result) ⇒ Object



10287
10288
10289
10290
10291
10292
# File 'lib/parser/ruby27.rb', line 10287

def _reduce_427(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.in_block = val[1].in_block

    result
end

#_reduce_428(val, _values, result) ⇒ Object



10294
10295
10296
10297
10298
10299
# File 'lib/parser/ruby27.rb', line 10294

def _reduce_428(val, _values, result)
                      result = @context.dup
                      @context.in_block = true

    result
end

#_reduce_429(val, _values, result) ⇒ Object



10301
10302
10303
10304
10305
10306
# File 'lib/parser/ruby27.rb', line 10301

def _reduce_429(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.in_block = val[1].in_block

    result
end

#_reduce_43(val, _values, result) ⇒ Object



8184
8185
8186
8187
8188
8189
8190
8191
# File 'lib/parser/ruby27.rb', line 8184

def _reduce_43(val, _values, result)
                      result = @builder.op_assign(
                                  @builder.call_method(
                                    val[0], val[1], val[2]),
                                  val[3], val[4])

    result
end

#_reduce_430(val, _values, result) ⇒ Object



10308
10309
10310
10311
10312
10313
# File 'lib/parser/ruby27.rb', line 10308

def _reduce_430(val, _values, result)
                      @static_env.extend_dynamic
                      @max_numparam_stack.push(static: false)

    result
end

#_reduce_431(val, _values, result) ⇒ Object



10315
10316
10317
10318
10319
10320
10321
10322
10323
# File 'lib/parser/ruby27.rb', line 10315

def _reduce_431(val, _values, result)
                      args = @max_numparam_stack.has_numparams? ? @builder.numargs(@max_numparam_stack.top) : val[1]
                      result = [ args, val[2] ]

                      @max_numparam_stack.pop
                      @static_env.unextend

    result
end

#_reduce_432(val, _values, result) ⇒ Object



10325
10326
10327
10328
10329
10330
# File 'lib/parser/ruby27.rb', line 10325

def _reduce_432(val, _values, result)
                      @static_env.extend_dynamic
                      @max_numparam_stack.push(static: false)

    result
end

#_reduce_433(val, _values, result) ⇒ Object



10332
10333
10334
10335
10336
# File 'lib/parser/ruby27.rb', line 10332

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

    result
end

#_reduce_434(val, _values, result) ⇒ Object



10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
# File 'lib/parser/ruby27.rb', line 10338

def _reduce_434(val, _values, result)
                      args = @max_numparam_stack.has_numparams? ? @builder.numargs(@max_numparam_stack.top) : val[2]
                      result = [ args, val[3] ]

                      @max_numparam_stack.pop
                      @static_env.unextend
                      @lexer.cmdarg.pop

    result
end

#_reduce_435(val, _values, result) ⇒ Object



10349
10350
10351
10352
10353
10354
# File 'lib/parser/ruby27.rb', line 10349

def _reduce_435(val, _values, result)
                      result = [ @builder.when(val[0], val[1], val[2], val[3]),
                                 *val[4] ]

    result
end

#_reduce_436(val, _values, result) ⇒ Object



10356
10357
10358
10359
10360
# File 'lib/parser/ruby27.rb', line 10356

def _reduce_436(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_438(val, _values, result) ⇒ Object

reduce 437 omitted



10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
# File 'lib/parser/ruby27.rb', line 10364

def _reduce_438(val, _values, result)
                      @lexer.state = :expr_beg
                      @lexer.command_start = false
                      @pattern_variables.push
                      @pattern_hash_keys.push

                      result = @context.in_kwarg
                      @context.in_kwarg = true

    result
end

#_reduce_439(val, _values, result) ⇒ Object



10376
10377
10378
10379
10380
10381
10382
# File 'lib/parser/ruby27.rb', line 10376

def _reduce_439(val, _values, result)
                      @pattern_hash_keys.pop
                      @pattern_variables.pop
                      @context.in_kwarg = val[1]

    result
end

#_reduce_44(val, _values, result) ⇒ Object



8193
8194
8195
8196
8197
# File 'lib/parser/ruby27.rb', line 8193

def _reduce_44(val, _values, result)
                      @builder.op_assign(val[0], val[1], val[2])

    result
end

#_reduce_440(val, _values, result) ⇒ Object



10384
10385
10386
10387
10388
10389
# File 'lib/parser/ruby27.rb', line 10384

def _reduce_440(val, _values, result)
                      result = [ @builder.in_pattern(val[0], *val[2], val[3], val[5]),
                                 *val[6] ]

    result
end

#_reduce_441(val, _values, result) ⇒ Object



10391
10392
10393
10394
10395
# File 'lib/parser/ruby27.rb', line 10391

def _reduce_441(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_443(val, _values, result) ⇒ Object

reduce 442 omitted



10399
10400
10401
10402
10403
# File 'lib/parser/ruby27.rb', line 10399

def _reduce_443(val, _values, result)
                      result = [ val[0], nil ]

    result
end

#_reduce_444(val, _values, result) ⇒ Object



10405
10406
10407
10408
10409
# File 'lib/parser/ruby27.rb', line 10405

def _reduce_444(val, _values, result)
                      result = [ val[0], @builder.if_guard(val[1], val[2]) ]

    result
end

#_reduce_445(val, _values, result) ⇒ Object



10411
10412
10413
10414
10415
# File 'lib/parser/ruby27.rb', line 10411

def _reduce_445(val, _values, result)
                      result = [ val[0], @builder.unless_guard(val[1], val[2]) ]

    result
end

#_reduce_447(val, _values, result) ⇒ Object

reduce 446 omitted



10419
10420
10421
10422
10423
10424
10425
10426
10427
# File 'lib/parser/ruby27.rb', line 10419

def _reduce_447(val, _values, result)
                      # array patterns that end with comma
                      # like 1, 2,
                      # must be emitted as `array_pattern_with_tail`
                      item = @builder.match_with_trailing_comma(val[0], val[1])
                      result = @builder.array_pattern(nil, [ item ], nil)

    result
end

#_reduce_448(val, _values, result) ⇒ Object



10429
10430
10431
10432
10433
# File 'lib/parser/ruby27.rb', line 10429

def _reduce_448(val, _values, result)
                      result = @builder.array_pattern(nil, [val[0]].concat(val[2]), nil)

    result
end

#_reduce_449(val, _values, result) ⇒ Object



10435
10436
10437
10438
10439
# File 'lib/parser/ruby27.rb', line 10435

def _reduce_449(val, _values, result)
                      result = @builder.array_pattern(nil, val[0], nil)

    result
end

#_reduce_450(val, _values, result) ⇒ Object



10441
10442
10443
10444
10445
# File 'lib/parser/ruby27.rb', line 10441

def _reduce_450(val, _values, result)
                      result = @builder.hash_pattern(nil, val[0], nil)

    result
end

#_reduce_452(val, _values, result) ⇒ Object

reduce 451 omitted



10449
10450
10451
10452
10453
# File 'lib/parser/ruby27.rb', line 10449

def _reduce_452(val, _values, result)
                      result = @builder.match_as(val[0], val[1], val[2])

    result
end

#_reduce_454(val, _values, result) ⇒ Object

reduce 453 omitted



10457
10458
10459
10460
10461
# File 'lib/parser/ruby27.rb', line 10457

def _reduce_454(val, _values, result)
                      result = @builder.match_alt(val[0], val[1], val[2])

    result
end

#_reduce_456(val, _values, result) ⇒ Object

reduce 455 omitted



10465
10466
10467
10468
10469
10470
# File 'lib/parser/ruby27.rb', line 10465

def _reduce_456(val, _values, result)
                      result = val[0]
                      @pattern_hash_keys.push

    result
end

#_reduce_457(val, _values, result) ⇒ Object



10472
10473
10474
10475
10476
10477
# File 'lib/parser/ruby27.rb', line 10472

def _reduce_457(val, _values, result)
                      result = val[0]
                      @pattern_hash_keys.push

    result
end

#_reduce_459(val, _values, result) ⇒ Object

reduce 458 omitted



10481
10482
10483
10484
10485
10486
10487
# File 'lib/parser/ruby27.rb', line 10481

def _reduce_459(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.array_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])

    result
end

#_reduce_46(val, _values, result) ⇒ Object

reduce 45 omitted



8201
8202
8203
8204
8205
8206
8207
8208
8209
# File 'lib/parser/ruby27.rb', line 8201

def _reduce_46(val, _values, result)
                      rescue_body = @builder.rescue_body(val[1],
                                        nil, nil, nil,
                                        nil, val[2])

                      result = @builder.begin_body(val[0], [ rescue_body ])

    result
end

#_reduce_460(val, _values, result) ⇒ Object



10489
10490
10491
10492
10493
10494
10495
# File 'lib/parser/ruby27.rb', line 10489

def _reduce_460(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.hash_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])

    result
end

#_reduce_461(val, _values, result) ⇒ Object



10497
10498
10499
10500
10501
10502
# File 'lib/parser/ruby27.rb', line 10497

def _reduce_461(val, _values, result)
                      pattern = @builder.array_pattern(val[1], nil, val[2])
                      result = @builder.const_pattern(val[0], val[1], pattern, val[2])

    result
end

#_reduce_462(val, _values, result) ⇒ Object



10504
10505
10506
10507
10508
10509
10510
# File 'lib/parser/ruby27.rb', line 10504

def _reduce_462(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.array_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])

    result
end

#_reduce_463(val, _values, result) ⇒ Object



10512
10513
10514
10515
10516
10517
10518
# File 'lib/parser/ruby27.rb', line 10512

def _reduce_463(val, _values, result)
                      @pattern_hash_keys.pop
                      pattern = @builder.hash_pattern(nil, val[2], nil)
                      result = @builder.const_pattern(val[0], val[1], pattern, val[3])

    result
end

#_reduce_464(val, _values, result) ⇒ Object



10520
10521
10522
10523
10524
10525
# File 'lib/parser/ruby27.rb', line 10520

def _reduce_464(val, _values, result)
                      pattern = @builder.array_pattern(val[1], nil, val[2])
                      result = @builder.const_pattern(val[0], val[1], pattern, val[2])

    result
end

#_reduce_465(val, _values, result) ⇒ Object



10527
10528
10529
10530
10531
# File 'lib/parser/ruby27.rb', line 10527

def _reduce_465(val, _values, result)
                      @pattern_hash_keys.push

    result
end

#_reduce_466(val, _values, result) ⇒ Object



10533
10534
10535
10536
10537
10538
# File 'lib/parser/ruby27.rb', line 10533

def _reduce_466(val, _values, result)
                      @pattern_hash_keys.pop
                      result = @builder.array_pattern(val[0], val[2], val[3])

    result
end

#_reduce_467(val, _values, result) ⇒ Object



10540
10541
10542
10543
10544
# File 'lib/parser/ruby27.rb', line 10540

def _reduce_467(val, _values, result)
                      result = @builder.array_pattern(val[0], [], val[1])

    result
end

#_reduce_468(val, _values, result) ⇒ Object



10546
10547
10548
10549
10550
10551
10552
# File 'lib/parser/ruby27.rb', line 10546

def _reduce_468(val, _values, result)
                      @pattern_hash_keys.push
                      result = @context.in_kwarg
                      @context.in_kwarg = false

    result
end

#_reduce_469(val, _values, result) ⇒ Object



10554
10555
10556
10557
10558
10559
10560
# File 'lib/parser/ruby27.rb', line 10554

def _reduce_469(val, _values, result)
                      @pattern_hash_keys.pop
                      @context.in_kwarg = val[1]
                      result = @builder.hash_pattern(val[0], val[2], val[3])

    result
end

#_reduce_470(val, _values, result) ⇒ Object



10562
10563
10564
10565
10566
# File 'lib/parser/ruby27.rb', line 10562

def _reduce_470(val, _values, result)
                      result = @builder.hash_pattern(val[0], [], val[1])

    result
end

#_reduce_471(val, _values, result) ⇒ Object



10568
10569
10570
10571
10572
# File 'lib/parser/ruby27.rb', line 10568

def _reduce_471(val, _values, result)
                      @pattern_hash_keys.push

    result
end

#_reduce_472(val, _values, result) ⇒ Object



10574
10575
10576
10577
10578
10579
# File 'lib/parser/ruby27.rb', line 10574

def _reduce_472(val, _values, result)
                      @pattern_hash_keys.pop
                      result = @builder.begin(val[0], val[2], val[3])

    result
end

#_reduce_473(val, _values, result) ⇒ Object



10581
10582
10583
10584
10585
# File 'lib/parser/ruby27.rb', line 10581

def _reduce_473(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_474(val, _values, result) ⇒ Object



10587
10588
10589
10590
10591
# File 'lib/parser/ruby27.rb', line 10587

def _reduce_474(val, _values, result)
                      result = val[0]

    result
end

#_reduce_475(val, _values, result) ⇒ Object



10593
10594
10595
10596
10597
# File 'lib/parser/ruby27.rb', line 10593

def _reduce_475(val, _values, result)
                      result = [ *val[0], val[1] ]

    result
end

#_reduce_476(val, _values, result) ⇒ Object



10599
10600
10601
10602
10603
10604
# File 'lib/parser/ruby27.rb', line 10599

def _reduce_476(val, _values, result)
                      match_rest = @builder.match_rest(val[1], val[2])
                      result = [ *val[0], match_rest ]

    result
end

#_reduce_477(val, _values, result) ⇒ Object



10606
10607
10608
10609
10610
10611
# File 'lib/parser/ruby27.rb', line 10606

def _reduce_477(val, _values, result)
                      match_rest = @builder.match_rest(val[1], val[2])
                      result = [ *val[0], match_rest, *val[4] ]

    result
end

#_reduce_478(val, _values, result) ⇒ Object



10613
10614
10615
10616
10617
# File 'lib/parser/ruby27.rb', line 10613

def _reduce_478(val, _values, result)
                      result = [ *val[0], @builder.match_rest(val[1]) ]

    result
end

#_reduce_479(val, _values, result) ⇒ Object



10619
10620
10621
10622
10623
# File 'lib/parser/ruby27.rb', line 10619

def _reduce_479(val, _values, result)
                      result = [ *val[0], @builder.match_rest(val[1]), *val[3] ]

    result
end

#_reduce_481(val, _values, result) ⇒ Object

reduce 480 omitted



10627
10628
10629
10630
10631
10632
10633
10634
10635
# File 'lib/parser/ruby27.rb', line 10627

def _reduce_481(val, _values, result)
                      # array patterns that end with comma
                      # like [1, 2,]
                      # must be emitted as `array_pattern_with_tail`
                      item = @builder.match_with_trailing_comma(val[0], val[1])
                      result = [ item ]

    result
end

#_reduce_482(val, _values, result) ⇒ Object



10637
10638
10639
10640
10641
10642
10643
10644
10645
# File 'lib/parser/ruby27.rb', line 10637

def _reduce_482(val, _values, result)
                      # array patterns that end with comma
                      # like [1, 2,]
                      # must be emitted as `array_pattern_with_tail`
                      last_item = @builder.match_with_trailing_comma(val[1], val[2])
                      result = [ *val[0], last_item ]

    result
end

#_reduce_483(val, _values, result) ⇒ Object



10647
10648
10649
10650
10651
10652
# File 'lib/parser/ruby27.rb', line 10647

def _reduce_483(val, _values, result)
                      match_rest = @builder.match_rest(val[0], val[1])
                      result = [ match_rest ]

    result
end

#_reduce_484(val, _values, result) ⇒ Object



10654
10655
10656
10657
10658
10659
# File 'lib/parser/ruby27.rb', line 10654

def _reduce_484(val, _values, result)
                      match_rest = @builder.match_rest(val[0], val[1])
                      result = [ match_rest, *val[3] ]

    result
end

#_reduce_485(val, _values, result) ⇒ Object



10661
10662
10663
10664
10665
10666
# File 'lib/parser/ruby27.rb', line 10661

def _reduce_485(val, _values, result)
                      match_rest = @builder.match_rest(val[0])
                      result = [ match_rest ]

    result
end

#_reduce_486(val, _values, result) ⇒ Object



10668
10669
10670
10671
10672
10673
# File 'lib/parser/ruby27.rb', line 10668

def _reduce_486(val, _values, result)
                      match_rest = @builder.match_rest(val[0])
                      result = [ match_rest, *val[2] ]

    result
end

#_reduce_487(val, _values, result) ⇒ Object



10675
10676
10677
10678
10679
# File 'lib/parser/ruby27.rb', line 10675

def _reduce_487(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_488(val, _values, result) ⇒ Object



10681
10682
10683
10684
10685
# File 'lib/parser/ruby27.rb', line 10681

def _reduce_488(val, _values, result)
                      result = [ *val[0], val[2] ]

    result
end

#_reduce_49(val, _values, result) ⇒ Object

reduce 48 omitted



8215
8216
8217
8218
8219
# File 'lib/parser/ruby27.rb', line 8215

def _reduce_49(val, _values, result)
                      result = @builder.logical_op(:and, val[0], val[1], val[2])

    result
end

#_reduce_490(val, _values, result) ⇒ Object

reduce 489 omitted



10689
10690
10691
10692
10693
# File 'lib/parser/ruby27.rb', line 10689

def _reduce_490(val, _values, result)
                      result = [ *val[0], *val[2] ]

    result
end

#_reduce_491(val, _values, result) ⇒ Object



10695
10696
10697
10698
10699
# File 'lib/parser/ruby27.rb', line 10695

def _reduce_491(val, _values, result)
                      result = val[0]

    result
end

#_reduce_492(val, _values, result) ⇒ Object



10701
10702
10703
10704
10705
# File 'lib/parser/ruby27.rb', line 10701

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

    result
end

#_reduce_493(val, _values, result) ⇒ Object



10707
10708
10709
10710
10711
# File 'lib/parser/ruby27.rb', line 10707

def _reduce_493(val, _values, result)
                      result = val[0]

    result
end

#_reduce_494(val, _values, result) ⇒ Object



10713
10714
10715
10716
10717
# File 'lib/parser/ruby27.rb', line 10713

def _reduce_494(val, _values, result)
                      result = [ *val[0], *val[2] ]

    result
end

#_reduce_495(val, _values, result) ⇒ Object



10719
10720
10721
10722
10723
# File 'lib/parser/ruby27.rb', line 10719

def _reduce_495(val, _values, result)
                      result = [ *val[0], *val[2] ]

    result
end

#_reduce_496(val, _values, result) ⇒ Object



10725
10726
10727
10728
10729
# File 'lib/parser/ruby27.rb', line 10725

def _reduce_496(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_497(val, _values, result) ⇒ Object



10731
10732
10733
10734
10735
# File 'lib/parser/ruby27.rb', line 10731

def _reduce_497(val, _values, result)
                      result = [ *val[0], val[2] ]

    result
end

#_reduce_498(val, _values, result) ⇒ Object



10737
10738
10739
10740
10741
# File 'lib/parser/ruby27.rb', line 10737

def _reduce_498(val, _values, result)
                      result = @builder.match_pair(*val[0], val[1])

    result
end

#_reduce_499(val, _values, result) ⇒ Object



10743
10744
10745
10746
10747
# File 'lib/parser/ruby27.rb', line 10743

def _reduce_499(val, _values, result)
                      result = @builder.match_label(*val[0])

    result
end

#_reduce_5(val, _values, result) ⇒ Object



7934
7935
7936
7937
7938
# File 'lib/parser/ruby27.rb', line 7934

def _reduce_5(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_50(val, _values, result) ⇒ Object



8221
8222
8223
8224
8225
# File 'lib/parser/ruby27.rb', line 8221

def _reduce_50(val, _values, result)
                      result = @builder.logical_op(:or, val[0], val[1], val[2])

    result
end

#_reduce_500(val, _values, result) ⇒ Object



10749
10750
10751
10752
10753
# File 'lib/parser/ruby27.rb', line 10749

def _reduce_500(val, _values, result)
                    result = [:label, val[0]]

    result
end

#_reduce_501(val, _values, result) ⇒ Object



10755
10756
10757
10758
10759
# File 'lib/parser/ruby27.rb', line 10755

def _reduce_501(val, _values, result)
                    result = [:quoted, [val[0], val[1], val[2]]]

    result
end

#_reduce_502(val, _values, result) ⇒ Object



10761
10762
10763
10764
10765
# File 'lib/parser/ruby27.rb', line 10761

def _reduce_502(val, _values, result)
                      result = [ @builder.match_rest(val[0], val[1]) ]

    result
end

#_reduce_503(val, _values, result) ⇒ Object



10767
10768
10769
10770
10771
# File 'lib/parser/ruby27.rb', line 10767

def _reduce_503(val, _values, result)
                      result = [ @builder.match_rest(val[0], nil) ]

    result
end

#_reduce_504(val, _values, result) ⇒ Object



10773
10774
10775
10776
10777
# File 'lib/parser/ruby27.rb', line 10773

def _reduce_504(val, _values, result)
                      result = [ @builder.match_nil_pattern(val[0], val[1]) ]

    result
end

#_reduce_506(val, _values, result) ⇒ Object

reduce 505 omitted



10781
10782
10783
10784
10785
# File 'lib/parser/ruby27.rb', line 10781

def _reduce_506(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], val[2])

    result
end

#_reduce_507(val, _values, result) ⇒ Object



10787
10788
10789
10790
10791
# File 'lib/parser/ruby27.rb', line 10787

def _reduce_507(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], val[2])

    result
end

#_reduce_508(val, _values, result) ⇒ Object



10793
10794
10795
10796
10797
# File 'lib/parser/ruby27.rb', line 10793

def _reduce_508(val, _values, result)
                      result = @builder.range_inclusive(val[0], val[1], nil)

    result
end

#_reduce_509(val, _values, result) ⇒ Object



10799
10800
10801
10802
10803
# File 'lib/parser/ruby27.rb', line 10799

def _reduce_509(val, _values, result)
                      result = @builder.range_exclusive(val[0], val[1], nil)

    result
end

#_reduce_51(val, _values, result) ⇒ Object



8227
8228
8229
8230
8231
# File 'lib/parser/ruby27.rb', line 8227

def _reduce_51(val, _values, result)
                      result = @builder.not_op(val[0], nil, val[2], nil)

    result
end

#_reduce_513(val, _values, result) ⇒ Object

reduce 512 omitted



10811
10812
10813
10814
10815
# File 'lib/parser/ruby27.rb', line 10811

def _reduce_513(val, _values, result)
                      result = @builder.range_inclusive(nil, val[0], val[1])

    result
end

#_reduce_514(val, _values, result) ⇒ Object



10817
10818
10819
10820
10821
# File 'lib/parser/ruby27.rb', line 10817

def _reduce_514(val, _values, result)
                      result = @builder.range_exclusive(nil, val[0], val[1])

    result
end

#_reduce_52(val, _values, result) ⇒ Object



8233
8234
8235
8236
8237
# File 'lib/parser/ruby27.rb', line 8233

def _reduce_52(val, _values, result)
                      result = @builder.not_op(val[0], nil, val[1], nil)

    result
end

#_reduce_523(val, _values, result) ⇒ Object

reduce 522 omitted



10839
10840
10841
10842
10843
# File 'lib/parser/ruby27.rb', line 10839

def _reduce_523(val, _values, result)
                      result = @builder.accessible(val[0])

    result
end

#_reduce_524(val, _values, result) ⇒ Object



10845
10846
10847
10848
10849
10850
# File 'lib/parser/ruby27.rb', line 10845

def _reduce_524(val, _values, result)
                      result = @context.dup
                      @context.in_lambda = true

    result
end

#_reduce_525(val, _values, result) ⇒ Object



10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
# File 'lib/parser/ruby27.rb', line 10852

def _reduce_525(val, _values, result)
                      lambda_call = @builder.call_lambda(val[0])

                      args, (begin_t, body, end_t) = val[2]
                      result      = @builder.block(lambda_call,
                                      begin_t, args, body, end_t)

                      @context.in_lambda = val[1].in_lambda

    result
end

#_reduce_526(val, _values, result) ⇒ Object



10864
10865
10866
10867
10868
# File 'lib/parser/ruby27.rb', line 10864

def _reduce_526(val, _values, result)
                      result = @builder.assignable(@builder.match_var(val[0]))

    result
end

#_reduce_527(val, _values, result) ⇒ Object



10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
# File 'lib/parser/ruby27.rb', line 10870

def _reduce_527(val, _values, result)
                      name = val[1][0]
                      unless static_env.declared?(name)
                        diagnostic :error, :undefined_lvar, { :name => name }, val[1]
                      end

                      lvar = @builder.accessible(@builder.ident(val[1]))
                      result = @builder.pin(val[0], lvar)

    result
end

#_reduce_528(val, _values, result) ⇒ Object



10882
10883
10884
10885
10886
# File 'lib/parser/ruby27.rb', line 10882

def _reduce_528(val, _values, result)
                      result = @builder.const_global(val[0], val[1])

    result
end

#_reduce_529(val, _values, result) ⇒ Object



10888
10889
10890
10891
10892
# File 'lib/parser/ruby27.rb', line 10888

def _reduce_529(val, _values, result)
                      result = @builder.const_fetch(val[0], val[1], val[2])

    result
end

#_reduce_53(val, _values, result) ⇒ Object



8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
# File 'lib/parser/ruby27.rb', line 8239

def _reduce_53(val, _values, result)
                      @lexer.state = :expr_beg
                      @lexer.command_start = false
                      @pattern_variables.push

                      result = @context.in_kwarg
                      @context.in_kwarg = true

    result
end

#_reduce_530(val, _values, result) ⇒ Object



10894
10895
10896
10897
10898
# File 'lib/parser/ruby27.rb', line 10894

def _reduce_530(val, _values, result)
                      result = @builder.const(val[0])

    result
end

#_reduce_531(val, _values, result) ⇒ Object



10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
# File 'lib/parser/ruby27.rb', line 10900

def _reduce_531(val, _values, result)
                      assoc_t, exc_var = val[2]

                      if val[1]
                        exc_list = @builder.array(nil, val[1], nil)
                      end

                      result = [ @builder.rescue_body(val[0],
                                      exc_list, assoc_t, exc_var,
                                      val[3], val[4]),
                                 *val[5] ]

    result
end

#_reduce_532(val, _values, result) ⇒ Object



10915
10916
10917
10918
10919
# File 'lib/parser/ruby27.rb', line 10915

def _reduce_532(val, _values, result)
                      result = []

    result
end

#_reduce_533(val, _values, result) ⇒ Object



10921
10922
10923
10924
10925
# File 'lib/parser/ruby27.rb', line 10921

def _reduce_533(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_536(val, _values, result) ⇒ Object

reduce 535 omitted



10931
10932
10933
10934
10935
# File 'lib/parser/ruby27.rb', line 10931

def _reduce_536(val, _values, result)
                      result = [ val[0], val[1] ]

    result
end

#_reduce_538(val, _values, result) ⇒ Object

reduce 537 omitted



10939
10940
10941
10942
10943
# File 'lib/parser/ruby27.rb', line 10939

def _reduce_538(val, _values, result)
                      result = [ val[0], val[1] ]

    result
end

#_reduce_54(val, _values, result) ⇒ Object



8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
# File 'lib/parser/ruby27.rb', line 8250

def _reduce_54(val, _values, result)
                      @pattern_variables.pop
                      @context.in_kwarg = val[2]
                      if @builder.class.emit_match_pattern
                        result = @builder.match_pattern(val[0], val[1], val[3])
                      else
                        result = @builder.in_match(val[0], val[1], val[3])
                      end

    result
end

#_reduce_542(val, _values, result) ⇒ Object

reduce 541 omitted



10951
10952
10953
10954
10955
# File 'lib/parser/ruby27.rb', line 10951

def _reduce_542(val, _values, result)
                      result = @builder.string_compose(nil, val[0], nil)

    result
end

#_reduce_543(val, _values, result) ⇒ Object



10957
10958
10959
10960
10961
# File 'lib/parser/ruby27.rb', line 10957

def _reduce_543(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_544(val, _values, result) ⇒ Object



10963
10964
10965
10966
10967
# File 'lib/parser/ruby27.rb', line 10963

def _reduce_544(val, _values, result)
                      result = val[0] << val[1]

    result
end

#_reduce_545(val, _values, result) ⇒ Object



10969
10970
10971
10972
10973
10974
# File 'lib/parser/ruby27.rb', line 10969

def _reduce_545(val, _values, result)
                      string = @builder.string_compose(val[0], val[1], val[2])
                      result = @builder.dedent_string(string, @lexer.dedent_level)

    result
end

#_reduce_546(val, _values, result) ⇒ Object



10976
10977
10978
10979
10980
10981
# File 'lib/parser/ruby27.rb', line 10976

def _reduce_546(val, _values, result)
                      string = @builder.string(val[0])
                      result = @builder.dedent_string(string, @lexer.dedent_level)

    result
end

#_reduce_547(val, _values, result) ⇒ Object



10983
10984
10985
10986
10987
# File 'lib/parser/ruby27.rb', line 10983

def _reduce_547(val, _values, result)
                      result = @builder.character(val[0])

    result
end

#_reduce_548(val, _values, result) ⇒ Object



10989
10990
10991
10992
10993
10994
# File 'lib/parser/ruby27.rb', line 10989

def _reduce_548(val, _values, result)
                      string = @builder.xstring_compose(val[0], val[1], val[2])
                      result = @builder.dedent_string(string, @lexer.dedent_level)

    result
end

#_reduce_549(val, _values, result) ⇒ Object



10996
10997
10998
10999
11000
11001
# File 'lib/parser/ruby27.rb', line 10996

def _reduce_549(val, _values, result)
                      opts   = @builder.regexp_options(val[3])
                      result = @builder.regexp_compose(val[0], val[1], val[2], opts)

    result
end

#_reduce_550(val, _values, result) ⇒ Object



11003
11004
11005
11006
11007
# File 'lib/parser/ruby27.rb', line 11003

def _reduce_550(val, _values, result)
                      result = @builder.words_compose(val[0], val[1], val[2])

    result
end

#_reduce_551(val, _values, result) ⇒ Object



11009
11010
11011
11012
11013
# File 'lib/parser/ruby27.rb', line 11009

def _reduce_551(val, _values, result)
                      result = []

    result
end

#_reduce_552(val, _values, result) ⇒ Object



11015
11016
11017
11018
11019
# File 'lib/parser/ruby27.rb', line 11015

def _reduce_552(val, _values, result)
                      result = val[0] << @builder.word(val[1])

    result
end

#_reduce_553(val, _values, result) ⇒ Object



11021
11022
11023
11024
11025
# File 'lib/parser/ruby27.rb', line 11021

def _reduce_553(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_554(val, _values, result) ⇒ Object



11027
11028
11029
11030
11031
# File 'lib/parser/ruby27.rb', line 11027

def _reduce_554(val, _values, result)
                      result = val[0] << val[1]

    result
end

#_reduce_555(val, _values, result) ⇒ Object



11033
11034
11035
11036
11037
# File 'lib/parser/ruby27.rb', line 11033

def _reduce_555(val, _values, result)
                      result = @builder.symbols_compose(val[0], val[1], val[2])

    result
end

#_reduce_556(val, _values, result) ⇒ Object



11039
11040
11041
11042
11043
# File 'lib/parser/ruby27.rb', line 11039

def _reduce_556(val, _values, result)
                      result = []

    result
end

#_reduce_557(val, _values, result) ⇒ Object



11045
11046
11047
11048
11049
# File 'lib/parser/ruby27.rb', line 11045

def _reduce_557(val, _values, result)
                      result = val[0] << @builder.word(val[1])

    result
end

#_reduce_558(val, _values, result) ⇒ Object



11051
11052
11053
11054
11055
# File 'lib/parser/ruby27.rb', line 11051

def _reduce_558(val, _values, result)
                      result = @builder.words_compose(val[0], val[1], val[2])

    result
end

#_reduce_559(val, _values, result) ⇒ Object



11057
11058
11059
11060
11061
# File 'lib/parser/ruby27.rb', line 11057

def _reduce_559(val, _values, result)
                      result = @builder.symbols_compose(val[0], val[1], val[2])

    result
end

#_reduce_560(val, _values, result) ⇒ Object



11063
11064
11065
11066
11067
# File 'lib/parser/ruby27.rb', line 11063

def _reduce_560(val, _values, result)
                      result = []

    result
end

#_reduce_561(val, _values, result) ⇒ Object



11069
11070
11071
11072
11073
# File 'lib/parser/ruby27.rb', line 11069

def _reduce_561(val, _values, result)
                      result = val[0] << @builder.string_internal(val[1])

    result
end

#_reduce_562(val, _values, result) ⇒ Object



11075
11076
11077
11078
11079
# File 'lib/parser/ruby27.rb', line 11075

def _reduce_562(val, _values, result)
                      result = []

    result
end

#_reduce_563(val, _values, result) ⇒ Object



11081
11082
11083
11084
11085
# File 'lib/parser/ruby27.rb', line 11081

def _reduce_563(val, _values, result)
                      result = val[0] << @builder.symbol_internal(val[1])

    result
end

#_reduce_564(val, _values, result) ⇒ Object



11087
11088
11089
11090
11091
# File 'lib/parser/ruby27.rb', line 11087

def _reduce_564(val, _values, result)
                      result = []

    result
end

#_reduce_565(val, _values, result) ⇒ Object



11093
11094
11095
11096
11097
# File 'lib/parser/ruby27.rb', line 11093

def _reduce_565(val, _values, result)
                      result = val[0] << val[1]

    result
end

#_reduce_566(val, _values, result) ⇒ Object



11099
11100
11101
11102
11103
# File 'lib/parser/ruby27.rb', line 11099

def _reduce_566(val, _values, result)
                      result = []

    result
end

#_reduce_567(val, _values, result) ⇒ Object



11105
11106
11107
11108
11109
# File 'lib/parser/ruby27.rb', line 11105

def _reduce_567(val, _values, result)
                      result = val[0] << val[1]

    result
end

#_reduce_568(val, _values, result) ⇒ Object



11111
11112
11113
11114
11115
# File 'lib/parser/ruby27.rb', line 11111

def _reduce_568(val, _values, result)
                      result = []

    result
end

#_reduce_569(val, _values, result) ⇒ Object



11117
11118
11119
11120
11121
# File 'lib/parser/ruby27.rb', line 11117

def _reduce_569(val, _values, result)
                      result = val[0] << val[1]

    result
end

#_reduce_57(val, _values, result) ⇒ Object

reduce 56 omitted



8266
8267
8268
8269
8270
# File 'lib/parser/ruby27.rb', line 8266

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

    result
end

#_reduce_570(val, _values, result) ⇒ Object



11123
11124
11125
11126
11127
# File 'lib/parser/ruby27.rb', line 11123

def _reduce_570(val, _values, result)
                      result = @builder.string_internal(val[0])

    result
end

#_reduce_571(val, _values, result) ⇒ Object



11129
11130
11131
11132
11133
# File 'lib/parser/ruby27.rb', line 11129

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

    result
end

#_reduce_572(val, _values, result) ⇒ Object



11135
11136
11137
11138
11139
11140
# File 'lib/parser/ruby27.rb', line 11135

def _reduce_572(val, _values, result)
                      @lexer.cmdarg.push(false)
                      @lexer.cond.push(false)

    result
end

#_reduce_573(val, _values, result) ⇒ Object



11142
11143
11144
11145
11146
11147
11148
11149
# File 'lib/parser/ruby27.rb', line 11142

def _reduce_573(val, _values, result)
                      @lexer.cmdarg.pop
                      @lexer.cond.pop

                      result = @builder.begin(val[0], val[2], val[3])

    result
end

#_reduce_574(val, _values, result) ⇒ Object



11151
11152
11153
11154
11155
# File 'lib/parser/ruby27.rb', line 11151

def _reduce_574(val, _values, result)
                      result = @builder.gvar(val[0])

    result
end

#_reduce_575(val, _values, result) ⇒ Object



11157
11158
11159
11160
11161
# File 'lib/parser/ruby27.rb', line 11157

def _reduce_575(val, _values, result)
                      result = @builder.ivar(val[0])

    result
end

#_reduce_576(val, _values, result) ⇒ Object



11163
11164
11165
11166
11167
# File 'lib/parser/ruby27.rb', line 11163

def _reduce_576(val, _values, result)
                      result = @builder.cvar(val[0])

    result
end

#_reduce_58(val, _values, result) ⇒ Object



8272
8273
8274
8275
8276
8277
# File 'lib/parser/ruby27.rb', line 8272

def _reduce_58(val, _values, result)
                      @lexer.cond.pop
                      result = [ val[1], val[2] ]

    result
end

#_reduce_580(val, _values, result) ⇒ Object

reduce 579 omitted



11175
11176
11177
11178
11179
11180
# File 'lib/parser/ruby27.rb', line 11175

def _reduce_580(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.symbol(val[0])

    result
end

#_reduce_581(val, _values, result) ⇒ Object



11182
11183
11184
11185
11186
11187
# File 'lib/parser/ruby27.rb', line 11182

def _reduce_581(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.symbol_compose(val[0], val[1], val[2])

    result
end

#_reduce_582(val, _values, result) ⇒ Object



11189
11190
11191
11192
11193
# File 'lib/parser/ruby27.rb', line 11189

def _reduce_582(val, _values, result)
                      result = val[0]

    result
end

#_reduce_583(val, _values, result) ⇒ Object



11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
# File 'lib/parser/ruby27.rb', line 11195

def _reduce_583(val, _values, result)
                      if @builder.respond_to? :negate
                        # AST builder interface compatibility
                        result = @builder.negate(val[0], val[1])
                      else
                        result = @builder.unary_num(val[0], val[1])
                      end

    result
end

#_reduce_584(val, _values, result) ⇒ Object



11206
11207
11208
11209
11210
11211
# File 'lib/parser/ruby27.rb', line 11206

def _reduce_584(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.integer(val[0])

    result
end

#_reduce_585(val, _values, result) ⇒ Object



11213
11214
11215
11216
11217
11218
# File 'lib/parser/ruby27.rb', line 11213

def _reduce_585(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.float(val[0])

    result
end

#_reduce_586(val, _values, result) ⇒ Object



11220
11221
11222
11223
11224
11225
# File 'lib/parser/ruby27.rb', line 11220

def _reduce_586(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.rational(val[0])

    result
end

#_reduce_587(val, _values, result) ⇒ Object



11227
11228
11229
11230
11231
11232
# File 'lib/parser/ruby27.rb', line 11227

def _reduce_587(val, _values, result)
                      @lexer.state = :expr_end
                      result = @builder.complex(val[0])

    result
end

#_reduce_588(val, _values, result) ⇒ Object



11234
11235
11236
11237
11238
# File 'lib/parser/ruby27.rb', line 11234

def _reduce_588(val, _values, result)
                      result = @builder.ident(val[0])

    result
end

#_reduce_589(val, _values, result) ⇒ Object



11240
11241
11242
11243
11244
# File 'lib/parser/ruby27.rb', line 11240

def _reduce_589(val, _values, result)
                      result = @builder.ivar(val[0])

    result
end

#_reduce_590(val, _values, result) ⇒ Object



11246
11247
11248
11249
11250
# File 'lib/parser/ruby27.rb', line 11246

def _reduce_590(val, _values, result)
                      result = @builder.gvar(val[0])

    result
end

#_reduce_591(val, _values, result) ⇒ Object



11252
11253
11254
11255
11256
# File 'lib/parser/ruby27.rb', line 11252

def _reduce_591(val, _values, result)
                      result = @builder.const(val[0])

    result
end

#_reduce_592(val, _values, result) ⇒ Object



11258
11259
11260
11261
11262
# File 'lib/parser/ruby27.rb', line 11258

def _reduce_592(val, _values, result)
                      result = @builder.cvar(val[0])

    result
end

#_reduce_593(val, _values, result) ⇒ Object



11264
11265
11266
11267
11268
# File 'lib/parser/ruby27.rb', line 11264

def _reduce_593(val, _values, result)
                      result = @builder.nil(val[0])

    result
end

#_reduce_594(val, _values, result) ⇒ Object



11270
11271
11272
11273
11274
# File 'lib/parser/ruby27.rb', line 11270

def _reduce_594(val, _values, result)
                      result = @builder.self(val[0])

    result
end

#_reduce_595(val, _values, result) ⇒ Object



11276
11277
11278
11279
11280
# File 'lib/parser/ruby27.rb', line 11276

def _reduce_595(val, _values, result)
                      result = @builder.true(val[0])

    result
end

#_reduce_596(val, _values, result) ⇒ Object



11282
11283
11284
11285
11286
# File 'lib/parser/ruby27.rb', line 11282

def _reduce_596(val, _values, result)
                      result = @builder.false(val[0])

    result
end

#_reduce_597(val, _values, result) ⇒ Object



11288
11289
11290
11291
11292
# File 'lib/parser/ruby27.rb', line 11288

def _reduce_597(val, _values, result)
                      result = @builder.__FILE__(val[0])

    result
end

#_reduce_598(val, _values, result) ⇒ Object



11294
11295
11296
11297
11298
# File 'lib/parser/ruby27.rb', line 11294

def _reduce_598(val, _values, result)
                      result = @builder.__LINE__(val[0])

    result
end

#_reduce_599(val, _values, result) ⇒ Object



11300
11301
11302
11303
11304
# File 'lib/parser/ruby27.rb', line 11300

def _reduce_599(val, _values, result)
                      result = @builder.__ENCODING__(val[0])

    result
end

#_reduce_6(val, _values, result) ⇒ Object



7940
7941
7942
7943
7944
# File 'lib/parser/ruby27.rb', line 7940

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

    result
end

#_reduce_600(val, _values, result) ⇒ Object



11306
11307
11308
11309
11310
# File 'lib/parser/ruby27.rb', line 11306

def _reduce_600(val, _values, result)
                      result = @builder.accessible(val[0])

    result
end

#_reduce_601(val, _values, result) ⇒ Object



11312
11313
11314
11315
11316
# File 'lib/parser/ruby27.rb', line 11312

def _reduce_601(val, _values, result)
                      result = @builder.accessible(val[0])

    result
end

#_reduce_602(val, _values, result) ⇒ Object



11318
11319
11320
11321
11322
# File 'lib/parser/ruby27.rb', line 11318

def _reduce_602(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_603(val, _values, result) ⇒ Object



11324
11325
11326
11327
11328
# File 'lib/parser/ruby27.rb', line 11324

def _reduce_603(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_604(val, _values, result) ⇒ Object



11330
11331
11332
11333
11334
# File 'lib/parser/ruby27.rb', line 11330

def _reduce_604(val, _values, result)
                      result = @builder.nth_ref(val[0])

    result
end

#_reduce_605(val, _values, result) ⇒ Object



11336
11337
11338
11339
11340
# File 'lib/parser/ruby27.rb', line 11336

def _reduce_605(val, _values, result)
                      result = @builder.back_ref(val[0])

    result
end

#_reduce_606(val, _values, result) ⇒ Object



11342
11343
11344
11345
11346
# File 'lib/parser/ruby27.rb', line 11342

def _reduce_606(val, _values, result)
                      @lexer.state = :expr_value

    result
end

#_reduce_607(val, _values, result) ⇒ Object



11348
11349
11350
11351
11352
# File 'lib/parser/ruby27.rb', line 11348

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

    result
end

#_reduce_608(val, _values, result) ⇒ Object



11354
11355
11356
11357
11358
# File 'lib/parser/ruby27.rb', line 11354

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

    result
end

#_reduce_609(val, _values, result) ⇒ Object



11360
11361
11362
11363
11364
11365
11366
# File 'lib/parser/ruby27.rb', line 11360

def _reduce_609(val, _values, result)
                      result = @builder.args(val[0], val[1], val[2])

                      @lexer.state = :expr_value

    result
end

#_reduce_610(val, _values, result) ⇒ Object



11368
11369
11370
11371
11372
11373
11374
# File 'lib/parser/ruby27.rb', line 11368

def _reduce_610(val, _values, result)
                      args = [ *val[1], @builder.forward_arg(val[3]) ]
                      result = @builder.args(val[0], args, val[4])
                      @static_env.declare_forward_args

    result
end

#_reduce_611(val, _values, result) ⇒ Object



11376
11377
11378
11379
11380
11381
11382
11383
# File 'lib/parser/ruby27.rb', line 11376

def _reduce_611(val, _values, result)
                      result = @builder.forward_only_args(val[0], val[1], val[2])
                      @static_env.declare_forward_args

                      @lexer.state = :expr_value

    result
end

#_reduce_612(val, _values, result) ⇒ Object



11385
11386
11387
11388
11389
11390
# File 'lib/parser/ruby27.rb', line 11385

def _reduce_612(val, _values, result)
                      result = @context.in_kwarg
                      @context.in_kwarg = true

    result
end

#_reduce_613(val, _values, result) ⇒ Object



11392
11393
11394
11395
11396
11397
# File 'lib/parser/ruby27.rb', line 11392

def _reduce_613(val, _values, result)
                      @context.in_kwarg = val[0]
                      result = @builder.args(nil, val[1], nil)

    result
end

#_reduce_614(val, _values, result) ⇒ Object



11399
11400
11401
11402
11403
# File 'lib/parser/ruby27.rb', line 11399

def _reduce_614(val, _values, result)
                      result = val[0].concat(val[2]).concat(val[3])

    result
end

#_reduce_615(val, _values, result) ⇒ Object



11405
11406
11407
11408
11409
# File 'lib/parser/ruby27.rb', line 11405

def _reduce_615(val, _values, result)
                      result = val[0].concat(val[1])

    result
end

#_reduce_616(val, _values, result) ⇒ Object



11411
11412
11413
11414
11415
# File 'lib/parser/ruby27.rb', line 11411

def _reduce_616(val, _values, result)
                      result = val[0].concat(val[1])

    result
end

#_reduce_617(val, _values, result) ⇒ Object



11417
11418
11419
11420
11421
# File 'lib/parser/ruby27.rb', line 11417

def _reduce_617(val, _values, result)
                      result = val[0].concat(val[1])

    result
end

#_reduce_618(val, _values, result) ⇒ Object



11423
11424
11425
11426
11427
# File 'lib/parser/ruby27.rb', line 11423

def _reduce_618(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_619(val, _values, result) ⇒ Object



11429
11430
11431
11432
11433
# File 'lib/parser/ruby27.rb', line 11429

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

    result
end

#_reduce_62(val, _values, result) ⇒ Object

reduce 61 omitted



8285
8286
8287
8288
8289
8290
# File 'lib/parser/ruby27.rb', line 8285

def _reduce_62(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)

    result
end

#_reduce_620(val, _values, result) ⇒ Object



11435
11436
11437
11438
11439
# File 'lib/parser/ruby27.rb', line 11435

def _reduce_620(val, _values, result)
                      result = []

    result
end

#_reduce_621(val, _values, result) ⇒ Object



11441
11442
11443
11444
11445
11446
11447
11448
# File 'lib/parser/ruby27.rb', line 11441

def _reduce_621(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_622(val, _values, result) ⇒ Object



11450
11451
11452
11453
11454
11455
11456
11457
11458
# File 'lib/parser/ruby27.rb', line 11450

def _reduce_622(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[6]).
                                  concat(val[7])

    result
end

#_reduce_623(val, _values, result) ⇒ Object



11460
11461
11462
11463
11464
11465
11466
# File 'lib/parser/ruby27.rb', line 11460

def _reduce_623(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_624(val, _values, result) ⇒ Object



11468
11469
11470
11471
11472
11473
11474
11475
# File 'lib/parser/ruby27.rb', line 11468

def _reduce_624(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_625(val, _values, result) ⇒ Object



11477
11478
11479
11480
11481
11482
11483
# File 'lib/parser/ruby27.rb', line 11477

def _reduce_625(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_626(val, _values, result) ⇒ Object



11485
11486
11487
11488
11489
11490
11491
11492
# File 'lib/parser/ruby27.rb', line 11485

def _reduce_626(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_627(val, _values, result) ⇒ Object



11494
11495
11496
11497
11498
11499
# File 'lib/parser/ruby27.rb', line 11494

def _reduce_627(val, _values, result)
                      result = val[0].
                                  concat(val[1])

    result
end

#_reduce_628(val, _values, result) ⇒ Object



11501
11502
11503
11504
11505
11506
11507
# File 'lib/parser/ruby27.rb', line 11501

def _reduce_628(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_629(val, _values, result) ⇒ Object



11509
11510
11511
11512
11513
11514
11515
11516
# File 'lib/parser/ruby27.rb', line 11509

def _reduce_629(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[4]).
                                  concat(val[5])

    result
end

#_reduce_63(val, _values, result) ⇒ Object



8292
8293
8294
8295
8296
8297
# File 'lib/parser/ruby27.rb', line 8292

def _reduce_63(val, _values, result)
                      result = @context.dup
                      @context.in_block = true

    result
end

#_reduce_630(val, _values, result) ⇒ Object



11518
11519
11520
11521
11522
11523
# File 'lib/parser/ruby27.rb', line 11518

def _reduce_630(val, _values, result)
                      result = val[0].
                                  concat(val[1])

    result
end

#_reduce_631(val, _values, result) ⇒ Object



11525
11526
11527
11528
11529
11530
11531
# File 'lib/parser/ruby27.rb', line 11525

def _reduce_631(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_632(val, _values, result) ⇒ Object



11533
11534
11535
11536
11537
11538
# File 'lib/parser/ruby27.rb', line 11533

def _reduce_632(val, _values, result)
                      result = val[0].
                                  concat(val[1])

    result
end

#_reduce_633(val, _values, result) ⇒ Object



11540
11541
11542
11543
11544
11545
11546
# File 'lib/parser/ruby27.rb', line 11540

def _reduce_633(val, _values, result)
                      result = val[0].
                                  concat(val[2]).
                                  concat(val[3])

    result
end

#_reduce_634(val, _values, result) ⇒ Object



11548
11549
11550
11551
11552
# File 'lib/parser/ruby27.rb', line 11548

def _reduce_634(val, _values, result)
                      result = val[0]

    result
end

#_reduce_635(val, _values, result) ⇒ Object



11554
11555
11556
11557
11558
# File 'lib/parser/ruby27.rb', line 11554

def _reduce_635(val, _values, result)
                      result = []

    result
end

#_reduce_636(val, _values, result) ⇒ Object



11560
11561
11562
11563
11564
# File 'lib/parser/ruby27.rb', line 11560

def _reduce_636(val, _values, result)
                      result = val[0]

    result
end

#_reduce_637(val, _values, result) ⇒ Object



11566
11567
11568
11569
11570
# File 'lib/parser/ruby27.rb', line 11566

def _reduce_637(val, _values, result)
                      diagnostic :error, :argument_const, nil, val[0]

    result
end

#_reduce_638(val, _values, result) ⇒ Object



11572
11573
11574
11575
11576
# File 'lib/parser/ruby27.rb', line 11572

def _reduce_638(val, _values, result)
                      diagnostic :error, :argument_ivar, nil, val[0]

    result
end

#_reduce_639(val, _values, result) ⇒ Object



11578
11579
11580
11581
11582
# File 'lib/parser/ruby27.rb', line 11578

def _reduce_639(val, _values, result)
                      diagnostic :error, :argument_gvar, nil, val[0]

    result
end

#_reduce_64(val, _values, result) ⇒ Object



8299
8300
8301
8302
8303
8304
# File 'lib/parser/ruby27.rb', line 8299

def _reduce_64(val, _values, result)
                      result = [ val[0], *val[2], val[3] ]
                      @context.in_block = val[1].in_block

    result
end

#_reduce_640(val, _values, result) ⇒ Object



11584
11585
11586
11587
11588
# File 'lib/parser/ruby27.rb', line 11584

def _reduce_640(val, _values, result)
                      diagnostic :error, :argument_cvar, nil, val[0]

    result
end

#_reduce_642(val, _values, result) ⇒ Object

reduce 641 omitted



11592
11593
11594
11595
11596
11597
11598
11599
11600
# File 'lib/parser/ruby27.rb', line 11592

def _reduce_642(val, _values, result)
                      @static_env.declare val[0][0]

                      @max_numparam_stack.has_ordinary_params!

                      result = val[0]

    result
end

#_reduce_643(val, _values, result) ⇒ Object



11602
11603
11604
11605
11606
11607
# File 'lib/parser/ruby27.rb', line 11602

def _reduce_643(val, _values, result)
                      @current_arg_stack.set(val[0][0])
                      result = val[0]

    result
end

#_reduce_644(val, _values, result) ⇒ Object



11609
11610
11611
11612
11613
11614
# File 'lib/parser/ruby27.rb', line 11609

def _reduce_644(val, _values, result)
                      @current_arg_stack.set(0)
                      result = @builder.arg(val[0])

    result
end

#_reduce_645(val, _values, result) ⇒ Object



11616
11617
11618
11619
11620
# File 'lib/parser/ruby27.rb', line 11616

def _reduce_645(val, _values, result)
                      result = @builder.multi_lhs(val[0], val[1], val[2])

    result
end

#_reduce_646(val, _values, result) ⇒ Object



11622
11623
11624
11625
11626
# File 'lib/parser/ruby27.rb', line 11622

def _reduce_646(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_647(val, _values, result) ⇒ Object



11628
11629
11630
11631
11632
# File 'lib/parser/ruby27.rb', line 11628

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

    result
end

#_reduce_648(val, _values, result) ⇒ Object



11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
# File 'lib/parser/ruby27.rb', line 11634

def _reduce_648(val, _values, result)
                      check_kwarg_name(val[0])

                      @static_env.declare val[0][0]

                      @max_numparam_stack.has_ordinary_params!

                      @current_arg_stack.set(val[0][0])

                      result = val[0]

    result
end

#_reduce_649(val, _values, result) ⇒ Object



11648
11649
11650
11651
11652
11653
# File 'lib/parser/ruby27.rb', line 11648

def _reduce_649(val, _values, result)
                      @current_arg_stack.set(nil)
                      result = @builder.kwoptarg(val[0], val[1])

    result
end

#_reduce_650(val, _values, result) ⇒ Object



11655
11656
11657
11658
11659
11660
# File 'lib/parser/ruby27.rb', line 11655

def _reduce_650(val, _values, result)
                      @current_arg_stack.set(nil)
                      result = @builder.kwarg(val[0])

    result
end

#_reduce_651(val, _values, result) ⇒ Object



11662
11663
11664
11665
11666
# File 'lib/parser/ruby27.rb', line 11662

def _reduce_651(val, _values, result)
                      result = @builder.kwoptarg(val[0], val[1])

    result
end

#_reduce_652(val, _values, result) ⇒ Object



11668
11669
11670
11671
11672
# File 'lib/parser/ruby27.rb', line 11668

def _reduce_652(val, _values, result)
                      result = @builder.kwarg(val[0])

    result
end

#_reduce_653(val, _values, result) ⇒ Object



11674
11675
11676
11677
11678
# File 'lib/parser/ruby27.rb', line 11674

def _reduce_653(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_654(val, _values, result) ⇒ Object



11680
11681
11682
11683
11684
# File 'lib/parser/ruby27.rb', line 11680

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

    result
end

#_reduce_655(val, _values, result) ⇒ Object



11686
11687
11688
11689
11690
# File 'lib/parser/ruby27.rb', line 11686

def _reduce_655(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_656(val, _values, result) ⇒ Object



11692
11693
11694
11695
11696
# File 'lib/parser/ruby27.rb', line 11692

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

    result
end

#_reduce_659(val, _values, result) ⇒ Object

reduce 658 omitted



11702
11703
11704
11705
11706
# File 'lib/parser/ruby27.rb', line 11702

def _reduce_659(val, _values, result)
                      result = [ @builder.kwnilarg(val[0], val[1]) ]

    result
end

#_reduce_66(val, _values, result) ⇒ Object

reduce 65 omitted



8308
8309
8310
8311
8312
8313
# File 'lib/parser/ruby27.rb', line 8308

def _reduce_66(val, _values, result)
                      result = @builder.call_method(nil, nil, val[0],
                                  nil, val[1], nil)

    result
end

#_reduce_660(val, _values, result) ⇒ Object



11708
11709
11710
11711
11712
11713
11714
# File 'lib/parser/ruby27.rb', line 11708

def _reduce_660(val, _values, result)
                      @static_env.declare val[1][0]

                      result = [ @builder.kwrestarg(val[0], val[1]) ]

    result
end

#_reduce_661(val, _values, result) ⇒ Object



11716
11717
11718
11719
11720
# File 'lib/parser/ruby27.rb', line 11716

def _reduce_661(val, _values, result)
                      result = [ @builder.kwrestarg(val[0]) ]

    result
end

#_reduce_662(val, _values, result) ⇒ Object



11722
11723
11724
11725
11726
11727
# File 'lib/parser/ruby27.rb', line 11722

def _reduce_662(val, _values, result)
                      @current_arg_stack.set(0)
                      result = @builder.optarg(val[0], val[1], val[2])

    result
end

#_reduce_663(val, _values, result) ⇒ Object



11729
11730
11731
11732
11733
11734
# File 'lib/parser/ruby27.rb', line 11729

def _reduce_663(val, _values, result)
                      @current_arg_stack.set(0)
                      result = @builder.optarg(val[0], val[1], val[2])

    result
end

#_reduce_664(val, _values, result) ⇒ Object



11736
11737
11738
11739
11740
# File 'lib/parser/ruby27.rb', line 11736

def _reduce_664(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_665(val, _values, result) ⇒ Object



11742
11743
11744
11745
11746
# File 'lib/parser/ruby27.rb', line 11742

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

    result
end

#_reduce_666(val, _values, result) ⇒ Object



11748
11749
11750
11751
11752
# File 'lib/parser/ruby27.rb', line 11748

def _reduce_666(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_667(val, _values, result) ⇒ Object



11754
11755
11756
11757
11758
# File 'lib/parser/ruby27.rb', line 11754

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

    result
end

#_reduce_67(val, _values, result) ⇒ Object



8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
# File 'lib/parser/ruby27.rb', line 8315

def _reduce_67(val, _values, result)
                      method_call = @builder.call_method(nil, nil, val[0],
                                        nil, val[1], nil)

                      begin_t, args, body, end_t = val[2]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)

    result
end

#_reduce_670(val, _values, result) ⇒ Object

reduce 669 omitted



11764
11765
11766
11767
11768
11769
11770
# File 'lib/parser/ruby27.rb', line 11764

def _reduce_670(val, _values, result)
                      @static_env.declare val[1][0]

                      result = [ @builder.restarg(val[0], val[1]) ]

    result
end

#_reduce_671(val, _values, result) ⇒ Object



11772
11773
11774
11775
11776
# File 'lib/parser/ruby27.rb', line 11772

def _reduce_671(val, _values, result)
                      result = [ @builder.restarg(val[0]) ]

    result
end

#_reduce_674(val, _values, result) ⇒ Object

reduce 673 omitted



11782
11783
11784
11785
11786
11787
11788
# File 'lib/parser/ruby27.rb', line 11782

def _reduce_674(val, _values, result)
                      @static_env.declare val[1][0]

                      result = @builder.blockarg(val[0], val[1])

    result
end

#_reduce_675(val, _values, result) ⇒ Object



11790
11791
11792
11793
11794
# File 'lib/parser/ruby27.rb', line 11790

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

    result
end

#_reduce_676(val, _values, result) ⇒ Object



11796
11797
11798
11799
11800
# File 'lib/parser/ruby27.rb', line 11796

def _reduce_676(val, _values, result)
                      result = []

    result
end

#_reduce_678(val, _values, result) ⇒ Object

reduce 677 omitted



11804
11805
11806
11807
11808
# File 'lib/parser/ruby27.rb', line 11804

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

    result
end

#_reduce_679(val, _values, result) ⇒ Object



11810
11811
11812
11813
11814
# File 'lib/parser/ruby27.rb', line 11810

def _reduce_679(val, _values, result)
                      result = []

    result
end

#_reduce_68(val, _values, result) ⇒ Object



8326
8327
8328
8329
8330
8331
# File 'lib/parser/ruby27.rb', line 8326

def _reduce_68(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)

    result
end

#_reduce_681(val, _values, result) ⇒ Object

reduce 680 omitted



11818
11819
11820
11821
11822
# File 'lib/parser/ruby27.rb', line 11818

def _reduce_681(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_682(val, _values, result) ⇒ Object



11824
11825
11826
11827
11828
# File 'lib/parser/ruby27.rb', line 11824

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

    result
end

#_reduce_683(val, _values, result) ⇒ Object



11830
11831
11832
11833
11834
# File 'lib/parser/ruby27.rb', line 11830

def _reduce_683(val, _values, result)
                      result = @builder.pair(val[0], val[1], val[2])

    result
end

#_reduce_684(val, _values, result) ⇒ Object



11836
11837
11838
11839
11840
# File 'lib/parser/ruby27.rb', line 11836

def _reduce_684(val, _values, result)
                      result = @builder.pair_keyword(val[0], val[1])

    result
end

#_reduce_685(val, _values, result) ⇒ Object



11842
11843
11844
11845
11846
# File 'lib/parser/ruby27.rb', line 11842

def _reduce_685(val, _values, result)
                      result = @builder.pair_quoted(val[0], val[1], val[2], val[3])

    result
end

#_reduce_686(val, _values, result) ⇒ Object



11848
11849
11850
11851
11852
# File 'lib/parser/ruby27.rb', line 11848

def _reduce_686(val, _values, result)
                      result = @builder.kwsplat(val[0], val[1])

    result
end

#_reduce_69(val, _values, result) ⇒ Object



8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
# File 'lib/parser/ruby27.rb', line 8333

def _reduce_69(val, _values, result)
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                        nil, val[3], nil)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)

    result
end

#_reduce_699(val, _values, result) ⇒ Object

reduce 698 omitted



11878
11879
11880
11881
11882
# File 'lib/parser/ruby27.rb', line 11878

def _reduce_699(val, _values, result)
                      result = [:dot, val[0][1]]

    result
end

#_reduce_7(val, _values, result) ⇒ Object



7946
7947
7948
7949
7950
# File 'lib/parser/ruby27.rb', line 7946

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

    result
end

#_reduce_70(val, _values, result) ⇒ Object



8344
8345
8346
8347
8348
8349
# File 'lib/parser/ruby27.rb', line 8344

def _reduce_70(val, _values, result)
                      result = @builder.call_method(val[0], val[1], val[2],
                                  nil, val[3], nil)

    result
end

#_reduce_700(val, _values, result) ⇒ Object



11884
11885
11886
11887
11888
# File 'lib/parser/ruby27.rb', line 11884

def _reduce_700(val, _values, result)
                      result = [:anddot, val[0][1]]

    result
end

#_reduce_705(val, _values, result) ⇒ Object

reduce 704 omitted



11898
11899
11900
11901
11902
# File 'lib/parser/ruby27.rb', line 11898

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

    result
end

#_reduce_706(val, _values, result) ⇒ Object



11904
11905
11906
11907
11908
# File 'lib/parser/ruby27.rb', line 11904

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

    result
end

#_reduce_707(val, _values, result) ⇒ Object



11910
11911
11912
11913
11914
# File 'lib/parser/ruby27.rb', line 11910

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

    result
end

#_reduce_71(val, _values, result) ⇒ Object



8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
# File 'lib/parser/ruby27.rb', line 8351

def _reduce_71(val, _values, result)
                      method_call = @builder.call_method(val[0], val[1], val[2],
                                        nil, val[3], nil)

                      begin_t, args, body, end_t = val[4]
                      result      = @builder.block(method_call,
                                      begin_t, args, body, end_t)

    result
end

#_reduce_711(val, _values, result) ⇒ Object

reduce 710 omitted



11922
11923
11924
11925
11926
# File 'lib/parser/ruby27.rb', line 11922

def _reduce_711(val, _values, result)
                    yyerrok

    result
end

#_reduce_715(val, _values, result) ⇒ Object

reduce 714 omitted



11934
11935
11936
11937
11938
# File 'lib/parser/ruby27.rb', line 11934

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

    result
end

#_reduce_72(val, _values, result) ⇒ Object



8362
8363
8364
8365
8366
8367
# File 'lib/parser/ruby27.rb', line 8362

def _reduce_72(val, _values, result)
                      result = @builder.keyword_cmd(:super, val[0],
                                  nil, val[1], nil)

    result
end

#_reduce_73(val, _values, result) ⇒ Object



8369
8370
8371
8372
8373
8374
# File 'lib/parser/ruby27.rb', line 8369

def _reduce_73(val, _values, result)
                      result = @builder.keyword_cmd(:yield, val[0],
                                  nil, val[1], nil)

    result
end

#_reduce_74(val, _values, result) ⇒ Object



8376
8377
8378
8379
8380
8381
# File 'lib/parser/ruby27.rb', line 8376

def _reduce_74(val, _values, result)
                      result = @builder.keyword_cmd(:return, val[0],
                                  nil, val[1], nil)

    result
end

#_reduce_75(val, _values, result) ⇒ Object



8383
8384
8385
8386
8387
8388
# File 'lib/parser/ruby27.rb', line 8383

def _reduce_75(val, _values, result)
                      result = @builder.keyword_cmd(:break, val[0],
                                  nil, val[1], nil)

    result
end

#_reduce_76(val, _values, result) ⇒ Object



8390
8391
8392
8393
8394
8395
# File 'lib/parser/ruby27.rb', line 8390

def _reduce_76(val, _values, result)
                      result = @builder.keyword_cmd(:next, val[0],
                                  nil, val[1], nil)

    result
end

#_reduce_77(val, _values, result) ⇒ Object



8397
8398
8399
8400
8401
# File 'lib/parser/ruby27.rb', line 8397

def _reduce_77(val, _values, result)
                      result = @builder.multi_lhs(nil, val[0], nil)

    result
end

#_reduce_78(val, _values, result) ⇒ Object



8403
8404
8405
8406
8407
# File 'lib/parser/ruby27.rb', line 8403

def _reduce_78(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[2])

    result
end

#_reduce_79(val, _values, result) ⇒ Object



8409
8410
8411
8412
8413
# File 'lib/parser/ruby27.rb', line 8409

def _reduce_79(val, _values, result)
                      result = @builder.multi_lhs(nil, val[0], nil)

    result
end

#_reduce_80(val, _values, result) ⇒ Object



8415
8416
8417
8418
8419
# File 'lib/parser/ruby27.rb', line 8415

def _reduce_80(val, _values, result)
                      result = @builder.multi_lhs(val[0], val[1], val[2])

    result
end

#_reduce_82(val, _values, result) ⇒ Object

reduce 81 omitted



8423
8424
8425
8426
8427
8428
# File 'lib/parser/ruby27.rb', line 8423

def _reduce_82(val, _values, result)
                      result = val[0].
                                  push(val[1])

    result
end

#_reduce_83(val, _values, result) ⇒ Object



8430
8431
8432
8433
8434
8435
# File 'lib/parser/ruby27.rb', line 8430

def _reduce_83(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1], val[2]))

    result
end

#_reduce_84(val, _values, result) ⇒ Object



8437
8438
8439
8440
8441
8442
8443
# File 'lib/parser/ruby27.rb', line 8437

def _reduce_84(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1], val[2])).
                                  concat(val[4])

    result
end

#_reduce_85(val, _values, result) ⇒ Object



8445
8446
8447
8448
8449
8450
# File 'lib/parser/ruby27.rb', line 8445

def _reduce_85(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1]))

    result
end

#_reduce_86(val, _values, result) ⇒ Object



8452
8453
8454
8455
8456
8457
8458
# File 'lib/parser/ruby27.rb', line 8452

def _reduce_86(val, _values, result)
                      result = val[0].
                                  push(@builder.splat(val[1])).
                                  concat(val[3])

    result
end

#_reduce_87(val, _values, result) ⇒ Object



8460
8461
8462
8463
8464
# File 'lib/parser/ruby27.rb', line 8460

def _reduce_87(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]) ]

    result
end

#_reduce_88(val, _values, result) ⇒ Object



8466
8467
8468
8469
8470
8471
# File 'lib/parser/ruby27.rb', line 8466

def _reduce_88(val, _values, result)
                      result = [ @builder.splat(val[0], val[1]),
                                 *val[3] ]

    result
end

#_reduce_89(val, _values, result) ⇒ Object



8473
8474
8475
8476
8477
# File 'lib/parser/ruby27.rb', line 8473

def _reduce_89(val, _values, result)
                      result = [ @builder.splat(val[0]) ]

    result
end

#_reduce_9(val, _values, result) ⇒ Object

reduce 8 omitted



7954
7955
7956
7957
7958
# File 'lib/parser/ruby27.rb', line 7954

def _reduce_9(val, _values, result)
                      result = @builder.preexe(val[0], *val[1])

    result
end

#_reduce_90(val, _values, result) ⇒ Object



8479
8480
8481
8482
8483
8484
# File 'lib/parser/ruby27.rb', line 8479

def _reduce_90(val, _values, result)
                      result = [ @builder.splat(val[0]),
                                 *val[2] ]

    result
end

#_reduce_92(val, _values, result) ⇒ Object

reduce 91 omitted



8488
8489
8490
8491
8492
# File 'lib/parser/ruby27.rb', line 8488

def _reduce_92(val, _values, result)
                      result = @builder.begin(val[0], val[1], val[2])

    result
end

#_reduce_93(val, _values, result) ⇒ Object



8494
8495
8496
8497
8498
# File 'lib/parser/ruby27.rb', line 8494

def _reduce_93(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_94(val, _values, result) ⇒ Object



8500
8501
8502
8503
8504
# File 'lib/parser/ruby27.rb', line 8500

def _reduce_94(val, _values, result)
                      result = val[0] << val[1]

    result
end

#_reduce_95(val, _values, result) ⇒ Object



8506
8507
8508
8509
8510
# File 'lib/parser/ruby27.rb', line 8506

def _reduce_95(val, _values, result)
                      result = [ val[0] ]

    result
end

#_reduce_96(val, _values, result) ⇒ Object



8512
8513
8514
8515
8516
# File 'lib/parser/ruby27.rb', line 8512

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

    result
end

#_reduce_97(val, _values, result) ⇒ Object



8518
8519
8520
8521
8522
# File 'lib/parser/ruby27.rb', line 8518

def _reduce_97(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_98(val, _values, result) ⇒ Object



8524
8525
8526
8527
8528
# File 'lib/parser/ruby27.rb', line 8524

def _reduce_98(val, _values, result)
                      result = @builder.assignable(val[0])

    result
end

#_reduce_99(val, _values, result) ⇒ Object



8530
8531
8532
8533
8534
# File 'lib/parser/ruby27.rb', line 8530

def _reduce_99(val, _values, result)
                      result = @builder.index_asgn(val[0], val[1], val[2], val[3])

    result
end

#_reduce_none(val, _values, result) ⇒ Object



11940
11941
11942
# File 'lib/parser/ruby27.rb', line 11940

def _reduce_none(val, _values, result)
  val[0]
end

#default_encodingObject



21
22
23
# File 'lib/parser/ruby27.rb', line 21

def default_encoding
  Encoding::UTF_8
end

#local_popObject



32
33
34
35
36
37
# File 'lib/parser/ruby27.rb', line 32

def local_pop
  @static_env.unextend
  @lexer.cmdarg.pop
  @lexer.cond.pop
  @max_numparam_stack.pop
end

#local_pushObject



25
26
27
28
29
30
# File 'lib/parser/ruby27.rb', line 25

def local_push
  @static_env.extend_static
  @lexer.cmdarg.push(false)
  @lexer.cond.push(false)
  @max_numparam_stack.push(static: true)
end

#try_declare_numparam(node) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/parser/ruby27.rb', line 39

def try_declare_numparam(node)
  name = node.children[0]

  if name =~ /\A_[1-9]\z/ && !static_env.declared?(name) && context.in_dynamic_block?
    # definitely an implicit param
    location = node.loc.expression

    if max_numparam_stack.has_ordinary_params?
      diagnostic :error, :ordinary_param_defined, nil, [nil, location]
    end

    raw_max_numparam_stack = max_numparam_stack.stack.dup

    # ignore current block scope
    raw_max_numparam_stack.pop

    raw_max_numparam_stack.reverse_each do |outer_scope|
      if outer_scope[:static]
        # found an outer scope that can't have numparams
        # like def/class/etc
        break
      else
        outer_scope_has_numparams = outer_scope[:value] > 0

        if outer_scope_has_numparams
          diagnostic :error, :numparam_used_in_outer_scope, nil, [nil, location]
        else
          # for now it's ok, but an outer scope can also be a block
          # with numparams, so we need to continue
        end
      end
    end

    static_env.declare(name)
    max_numparam_stack.register(name[1].to_i)

    true
  else
    false
  end
end

#versionObject



17
18
19
# File 'lib/parser/ruby27.rb', line 17

def version
  27
end