ruby-internal 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/bin/ruby-internal-node-dump +1 -1
- data/bin/ruby-internal-obfuscate +1 -1
- data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +45 -45
- data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +259 -258
- data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +43 -43
- data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +261 -260
- data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +45 -45
- data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +261 -260
- data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +37 -37
- data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +219 -218
- data/ext/cached/ruby-1.9.1/internal/node/global_entry.h +4 -0
- data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +41 -41
- data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +231 -230
- data/ext/cached/ruby-1.9.2/internal/node/global_entry.h +4 -0
- data/ext/cached/ruby-1.9.2/internal/node/node_type_descrip.c +37 -37
- data/ext/cached/ruby-1.9.2/internal/node/nodeinfo.c +206 -205
- data/ext/cached/ruby-1.9.3/internal/node/global_entry.h +4 -0
- data/ext/cached/ruby-1.9.3/internal/node/node_type_descrip.c +41 -41
- data/ext/cached/ruby-1.9.3/internal/node/nodeinfo.c +230 -229
- data/ext/internal/binding/block.h +0 -20
- data/ext/internal/method/internal_method.h +5 -5
- data/ext/internal/module/classpath.c +13 -18
- data/ext/internal/module/classpath.h +3 -3
- data/ext/internal/module/getcfp.h +12 -0
- data/ext/internal/node/block.h +0 -20
- data/ext/internal/node/global_entry.h +31 -42
- data/ext/internal/node/global_entry.h.rpp +1 -1
- data/ext/internal/node/node_type_descrip.c +38 -47
- data/ext/internal/node/nodeinfo.c +311 -626
- data/ext/internal/node/nodeinfo.h +4 -1
- data/ext/internal/proc/block.h +0 -20
- data/ext/internal/tag/tag.h +0 -10
- data/ext/internal/vm/instruction/insns_info.c +5974 -3
- data/ext/internal/vm/instruction/insns_info.h +878 -0
- metadata +37 -51
    
        data/Rakefile
    CHANGED
    
    
    
        data/bin/ruby-internal-node-dump
    CHANGED
    
    
    
        data/bin/ruby-internal-obfuscate
    CHANGED
    
    
| @@ -2,46 +2,46 @@ | |
| 2 2 | 
             
            #include "version.h"
         | 
| 3 3 |  | 
| 4 4 | 
             
            Node_Type_Descrip node_type_descrips_unsorted[] = {
         | 
| 5 | 
            -
              { NODE_ALIAS,  | 
| 5 | 
            +
              { NODE_ALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "ALIAS" },
         | 
| 6 6 | 
             
            #ifdef HAVE_NODE_ALLOCA
         | 
| 7 | 
            -
              { NODE_ALLOCA,  | 
| 7 | 
            +
              { NODE_ALLOCA, NEN_CFNC, NEN_VALUE, NEN_CNT, "ALLOCA" },
         | 
| 8 8 | 
             
            #endif
         | 
| 9 9 | 
             
              { NODE_AND, NEN_2ND, NEN_1ST, NEN_NONE, "AND" },
         | 
| 10 | 
            -
              { NODE_ARGS,  | 
| 11 | 
            -
              { NODE_ARGSCAT,  | 
| 12 | 
            -
              { NODE_ARGSPUSH,  | 
| 13 | 
            -
              { NODE_ARRAY, NEN_ALEN,  | 
| 14 | 
            -
              { NODE_ATTRASGN, NEN_RECV,  | 
| 10 | 
            +
              { NODE_ARGS, NEN_REST, NEN_OPT, NEN_CNT, "ARGS" },
         | 
| 11 | 
            +
              { NODE_ARGSCAT, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSCAT" },
         | 
| 12 | 
            +
              { NODE_ARGSPUSH, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSPUSH" },
         | 
| 13 | 
            +
              { NODE_ARRAY, NEN_ALEN, NEN_HEAD, NEN_NEXT, "ARRAY" },
         | 
| 14 | 
            +
              { NODE_ATTRASGN, NEN_RECV, NEN_ARGS, NEN_MID, "ATTRASGN" },
         | 
| 15 15 | 
             
              { NODE_ATTRSET, NEN_VID, NEN_NONE, NEN_NONE, "ATTRSET" },
         | 
| 16 | 
            -
              { NODE_BACK_REF,  | 
| 16 | 
            +
              { NODE_BACK_REF, NEN_NTH, NEN_CNT, NEN_NONE, "BACK_REF" },
         | 
| 17 17 | 
             
              { NODE_BEGIN, NEN_BODY, NEN_NONE, NEN_NONE, "BEGIN" },
         | 
| 18 | 
            -
              { NODE_BLOCK,  | 
| 18 | 
            +
              { NODE_BLOCK, NEN_HEAD, NEN_NEXT, NEN_NONE, "BLOCK" },
         | 
| 19 19 | 
             
              { NODE_BLOCK_ARG, NEN_CNT, NEN_NONE, NEN_NONE, "BLOCK_ARG" },
         | 
| 20 20 | 
             
              { NODE_BLOCK_PASS, NEN_BODY, NEN_ITER, NEN_NONE, "BLOCK_PASS" },
         | 
| 21 21 | 
             
              { NODE_BMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "BMETHOD" },
         | 
| 22 22 | 
             
              { NODE_BREAK, NEN_STTS, NEN_NONE, NEN_NONE, "BREAK" },
         | 
| 23 | 
            -
              { NODE_CALL,  | 
| 24 | 
            -
              { NODE_CASE, NEN_BODY, NEN_NEXT,  | 
| 23 | 
            +
              { NODE_CALL, NEN_ARGS, NEN_MID, NEN_RECV, "CALL" },
         | 
| 24 | 
            +
              { NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
         | 
| 25 25 | 
             
              { NODE_CDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CDECL" },
         | 
| 26 26 | 
             
              { NODE_CFUNC, NEN_CFNC, NEN_ARGC, NEN_NONE, "CFUNC" },
         | 
| 27 | 
            -
              { NODE_CLASS,  | 
| 28 | 
            -
              { NODE_COLON2,  | 
| 27 | 
            +
              { NODE_CLASS, NEN_SUPER, NEN_CPATH, NEN_BODY, "CLASS" },
         | 
| 28 | 
            +
              { NODE_COLON2, NEN_HEAD, NEN_MID, NEN_NONE, "COLON2" },
         | 
| 29 29 | 
             
              { NODE_COLON3, NEN_MID, NEN_NONE, NEN_NONE, "COLON3" },
         | 
| 30 30 | 
             
              { NODE_CONST, NEN_VID, NEN_NONE, NEN_NONE, "CONST" },
         | 
| 31 | 
            -
              { NODE_CREF,  | 
| 31 | 
            +
              { NODE_CREF, NEN_CLSS, NEN_BODY, NEN_NEXT, "CREF" },
         | 
| 32 32 | 
             
              { NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
         | 
| 33 33 | 
             
              { NODE_CVASGN, NEN_VALUE, NEN_VID, NEN_NONE, "CVASGN" },
         | 
| 34 34 | 
             
              { NODE_CVDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CVDECL" },
         | 
| 35 35 | 
             
              { NODE_DASGN, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN" },
         | 
| 36 36 | 
             
              { NODE_DASGN_CURR, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN_CURR" },
         | 
| 37 37 | 
             
              { NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
         | 
| 38 | 
            -
              { NODE_DEFN,  | 
| 39 | 
            -
              { NODE_DEFS, NEN_RECV, NEN_MID,  | 
| 38 | 
            +
              { NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
         | 
| 39 | 
            +
              { NODE_DEFS, NEN_DEFN, NEN_RECV, NEN_MID, "DEFS" },
         | 
| 40 40 | 
             
              { NODE_DMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "DMETHOD" },
         | 
| 41 | 
            -
              { NODE_DOT2,  | 
| 42 | 
            -
              { NODE_DOT3,  | 
| 43 | 
            -
              { NODE_DREGX, NEN_LIT,  | 
| 44 | 
            -
              { NODE_DREGX_ONCE, NEN_LIT,  | 
| 41 | 
            +
              { NODE_DOT2, NEN_BEG, NEN_END, NEN_STATE, "DOT2" },
         | 
| 42 | 
            +
              { NODE_DOT3, NEN_BEG, NEN_END, NEN_STATE, "DOT3" },
         | 
| 43 | 
            +
              { NODE_DREGX, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX" },
         | 
| 44 | 
            +
              { NODE_DREGX_ONCE, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX_ONCE" },
         | 
| 45 45 | 
             
              { NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
         | 
| 46 46 | 
             
              { NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
         | 
| 47 47 | 
             
              { NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
         | 
| @@ -49,45 +49,45 @@ Node_Type_Descrip node_type_descrips_unsorted[] = { | |
| 49 49 | 
             
              { NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
         | 
| 50 50 | 
             
              { NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
         | 
| 51 51 | 
             
              { NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
         | 
| 52 | 
            -
              { NODE_FBODY,  | 
| 53 | 
            -
              { NODE_FCALL,  | 
| 54 | 
            -
              { NODE_FLIP2, NEN_CNT,  | 
| 55 | 
            -
              { NODE_FLIP3, NEN_CNT,  | 
| 52 | 
            +
              { NODE_FBODY, NEN_ORIG, NEN_MID, NEN_HEAD, "FBODY" },
         | 
| 53 | 
            +
              { NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
         | 
| 54 | 
            +
              { NODE_FLIP2, NEN_CNT, NEN_BEG, NEN_END, "FLIP2" },
         | 
| 55 | 
            +
              { NODE_FLIP3, NEN_CNT, NEN_BEG, NEN_END, "FLIP3" },
         | 
| 56 56 | 
             
              { NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
         | 
| 57 57 | 
             
              { NODE_GASGN, NEN_VALUE, NEN_VID, NEN_ENTRY, "GASGN" },
         | 
| 58 58 | 
             
              { NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
         | 
| 59 59 | 
             
              { NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
         | 
| 60 60 | 
             
              { NODE_IASGN, NEN_VALUE, NEN_VID, NEN_NONE, "IASGN" },
         | 
| 61 | 
            -
              { NODE_IF,  | 
| 62 | 
            -
              { NODE_IFUNC, NEN_CFNC,  | 
| 61 | 
            +
              { NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
         | 
| 62 | 
            +
              { NODE_IFUNC, NEN_CFNC, NEN_TVAL, NEN_STATE, "IFUNC" },
         | 
| 63 63 | 
             
              { NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
         | 
| 64 64 | 
             
              { NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
         | 
| 65 | 
            -
              { NODE_LASGN, NEN_VALUE,  | 
| 65 | 
            +
              { NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
         | 
| 66 66 | 
             
              { NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
         | 
| 67 | 
            -
              { NODE_LVAR,  | 
| 68 | 
            -
              { NODE_MASGN,  | 
| 69 | 
            -
              { NODE_MATCH,  | 
| 70 | 
            -
              { NODE_MATCH2,  | 
| 71 | 
            -
              { NODE_MATCH3,  | 
| 67 | 
            +
              { NODE_LVAR, NEN_VID, NEN_CNT, NEN_NONE, "LVAR" },
         | 
| 68 | 
            +
              { NODE_MASGN, NEN_ARGS, NEN_HEAD, NEN_VALUE, "MASGN" },
         | 
| 69 | 
            +
              { NODE_MATCH, NEN_LIT, NEN_VALUE, NEN_NONE, "MATCH" },
         | 
| 70 | 
            +
              { NODE_MATCH2, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH2" },
         | 
| 71 | 
            +
              { NODE_MATCH3, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH3" },
         | 
| 72 72 | 
             
              { NODE_MEMO, NEN_NONE, NEN_NONE, NEN_NONE, "MEMO" },
         | 
| 73 | 
            -
              { NODE_METHOD,  | 
| 74 | 
            -
              { NODE_MODULE,  | 
| 73 | 
            +
              { NODE_METHOD, NEN_NOEX, NEN_BODY, NEN_NONE, "METHOD" },
         | 
| 74 | 
            +
              { NODE_MODULE, NEN_CPATH, NEN_BODY, NEN_NONE, "MODULE" },
         | 
| 75 75 | 
             
              { NODE_NEWLINE, NEN_NEXT, NEN_NONE, NEN_NONE, "NEWLINE" },
         | 
| 76 76 | 
             
              { NODE_NEXT, NEN_STTS, NEN_NONE, NEN_NONE, "NEXT" },
         | 
| 77 77 | 
             
              { NODE_NIL, NEN_NONE, NEN_NONE, NEN_NONE, "NIL" },
         | 
| 78 78 | 
             
              { NODE_NOT, NEN_BODY, NEN_NONE, NEN_NONE, "NOT" },
         | 
| 79 | 
            -
              { NODE_NTH_REF,  | 
| 79 | 
            +
              { NODE_NTH_REF, NEN_NTH, NEN_CNT, NEN_NONE, "NTH_REF" },
         | 
| 80 80 | 
             
              { NODE_OPT_N, NEN_BODY, NEN_NONE, NEN_NONE, "OPT_N" },
         | 
| 81 | 
            -
              { NODE_OP_ASGN1,  | 
| 82 | 
            -
              { NODE_OP_ASGN2,  | 
| 83 | 
            -
              { NODE_OP_ASGN2_ARG,  | 
| 84 | 
            -
              { NODE_OP_ASGN_AND,  | 
| 85 | 
            -
              { NODE_OP_ASGN_OR, NEN_VALUE, NEN_RECV,  | 
| 81 | 
            +
              { NODE_OP_ASGN1, NEN_ARGS, NEN_MID, NEN_RECV, "OP_ASGN1" },
         | 
| 82 | 
            +
              { NODE_OP_ASGN2, NEN_RECV, NEN_NEXT, NEN_VALUE, "OP_ASGN2" },
         | 
| 83 | 
            +
              { NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID, NEN_MID, "OP_ASGN2_ARG" },
         | 
| 84 | 
            +
              { NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
         | 
| 85 | 
            +
              { NODE_OP_ASGN_OR, NEN_AID, NEN_VALUE, NEN_RECV, "OP_ASGN_OR" },
         | 
| 86 86 | 
             
              { NODE_OR, NEN_2ND, NEN_1ST, NEN_NONE, "OR" },
         | 
| 87 87 | 
             
              { NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
         | 
| 88 88 | 
             
              { NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
         | 
| 89 | 
            -
              { NODE_RESBODY, NEN_BODY, NEN_ARGS,  | 
| 90 | 
            -
              { NODE_RESCUE, NEN_RESQ, NEN_ELSE,  | 
| 89 | 
            +
              { NODE_RESBODY, NEN_HEAD, NEN_BODY, NEN_ARGS, "RESBODY" },
         | 
| 90 | 
            +
              { NODE_RESCUE, NEN_HEAD, NEN_RESQ, NEN_ELSE, "RESCUE" },
         | 
| 91 91 | 
             
              { NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
         | 
| 92 92 | 
             
              { NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
         | 
| 93 93 | 
             
              { NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
         | 
| @@ -101,12 +101,12 @@ Node_Type_Descrip node_type_descrips_unsorted[] = { | |
| 101 101 | 
             
              { NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
         | 
| 102 102 | 
             
              { NODE_UNDEF, NEN_MID, NEN_NONE, NEN_NONE, "UNDEF" },
         | 
| 103 103 | 
             
              { NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
         | 
| 104 | 
            -
              { NODE_VALIAS,  | 
| 104 | 
            +
              { NODE_VALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "VALIAS" },
         | 
| 105 105 | 
             
              { NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
         | 
| 106 | 
            -
              { NODE_WHEN, NEN_BODY, NEN_NEXT,  | 
| 106 | 
            +
              { NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
         | 
| 107 107 | 
             
              { NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
         | 
| 108 108 | 
             
              { NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
         | 
| 109 | 
            -
              { NODE_YIELD,  | 
| 109 | 
            +
              { NODE_YIELD, NEN_HEAD, NEN_STATE, NEN_NONE, "YIELD" },
         | 
| 110 110 | 
             
              { NODE_ZARRAY, NEN_NONE, NEN_NONE, NEN_NONE, "ZARRAY" },
         | 
| 111 111 | 
             
              { NODE_ZSUPER, NEN_NONE, NEN_NONE, NEN_NONE, "ZSUPER" },
         | 
| 112 112 | 
             
              { NODE_LAST, NEN_NONE, NEN_NONE, NEN_NONE, "LAST" },
         | 
| @@ -2926,10 +2926,10 @@ void define_node_subclass_methods() | |
| 2926 2926 | 
             
                rb_iv_set(rb_cALIAS, "__member__", members);
         | 
| 2927 2927 | 
             
                rb_iv_set(rb_cALIAS, "__type__", INT2NUM(NODE_ALIAS));
         | 
| 2928 2928 | 
             
                rb_define_singleton_method(rb_cALIAS, "members", node_s_members, 0);
         | 
| 2929 | 
            -
                rb_define_method(rb_cALIAS, "second", node_2nd, 0);
         | 
| 2930 | 
            -
                rb_ary_push(members, rb_str_new2("second"));
         | 
| 2931 2929 | 
             
                rb_define_method(rb_cALIAS, "first", node_1st, 0);
         | 
| 2932 2930 | 
             
                rb_ary_push(members, rb_str_new2("first"));
         | 
| 2931 | 
            +
                rb_define_method(rb_cALIAS, "second", node_2nd, 0);
         | 
| 2932 | 
            +
                rb_ary_push(members, rb_str_new2("second"));
         | 
| 2933 2933 | 
             
              }
         | 
| 2934 2934 |  | 
| 2935 2935 | 
             
              /* Document-class: Node::ALLOCA
         | 
| @@ -2947,18 +2947,18 @@ void define_node_subclass_methods() | |
| 2947 2947 | 
             
                rb_iv_set(rb_cALLOCA, "__type__", INT2NUM(NODE_ALLOCA));
         | 
| 2948 2948 | 
             
                rb_define_singleton_method(rb_cALLOCA, "members", node_s_members, 0);
         | 
| 2949 2949 |  | 
| 2950 | 
            -
                /* Document-method: value
         | 
| 2951 | 
            -
                 * a pointer to the previously allocated temporary node
         | 
| 2952 | 
            -
                 */
         | 
| 2953 | 
            -
                rb_define_method(rb_cALLOCA, "value", node_value, 0);
         | 
| 2954 | 
            -
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 2955 | 
            -
             | 
| 2956 2950 | 
             
                /* Document-method: cfnc
         | 
| 2957 2951 | 
             
                 * a pointer to the allocated memory
         | 
| 2958 2952 | 
             
                 */
         | 
| 2959 2953 | 
             
                rb_define_method(rb_cALLOCA, "cfnc", node_cfnc, 0);
         | 
| 2960 2954 | 
             
                rb_ary_push(members, rb_str_new2("cfnc"));
         | 
| 2961 2955 |  | 
| 2956 | 
            +
                /* Document-method: value
         | 
| 2957 | 
            +
                 * a pointer to the previously allocated temporary node
         | 
| 2958 | 
            +
                 */
         | 
| 2959 | 
            +
                rb_define_method(rb_cALLOCA, "value", node_value, 0);
         | 
| 2960 | 
            +
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 2961 | 
            +
             | 
| 2962 2962 | 
             
                /* Document-method: cnt
         | 
| 2963 2963 | 
             
                 * the number of bytes allocated
         | 
| 2964 2964 | 
             
                 */
         | 
| @@ -3006,12 +3006,6 @@ void define_node_subclass_methods() | |
| 3006 3006 | 
             
                rb_iv_set(rb_cARGS, "__type__", INT2NUM(NODE_ARGS));
         | 
| 3007 3007 | 
             
                rb_define_singleton_method(rb_cARGS, "members", node_s_members, 0);
         | 
| 3008 3008 |  | 
| 3009 | 
            -
                /* Document-method: cnt
         | 
| 3010 | 
            -
                 * the number of required arguments
         | 
| 3011 | 
            -
                 */
         | 
| 3012 | 
            -
                rb_define_method(rb_cARGS, "cnt", node_cnt, 0);
         | 
| 3013 | 
            -
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 3014 | 
            -
             | 
| 3015 3009 | 
             
                /* Document-method: rest
         | 
| 3016 3010 | 
             
                 * an assignment node to assign the rest arg, if it is present
         | 
| 3017 3011 | 
             
                 */
         | 
| @@ -3024,6 +3018,12 @@ void define_node_subclass_methods() | |
| 3024 3018 | 
             
                 */
         | 
| 3025 3019 | 
             
                rb_define_method(rb_cARGS, "opt", node_opt, 0);
         | 
| 3026 3020 | 
             
                rb_ary_push(members, rb_str_new2("opt"));
         | 
| 3021 | 
            +
             | 
| 3022 | 
            +
                /* Document-method: cnt
         | 
| 3023 | 
            +
                 * the number of required arguments
         | 
| 3024 | 
            +
                 */
         | 
| 3025 | 
            +
                rb_define_method(rb_cARGS, "cnt", node_cnt, 0);
         | 
| 3026 | 
            +
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 3027 3027 | 
             
              }
         | 
| 3028 3028 |  | 
| 3029 3029 | 
             
              /* Document-class: Node::ARGSCAT
         | 
| @@ -3043,18 +3043,18 @@ void define_node_subclass_methods() | |
| 3043 3043 | 
             
                rb_iv_set(rb_cARGSCAT, "__type__", INT2NUM(NODE_ARGSCAT));
         | 
| 3044 3044 | 
             
                rb_define_singleton_method(rb_cARGSCAT, "members", node_s_members, 0);
         | 
| 3045 3045 |  | 
| 3046 | 
            +
                /* Document-method: head
         | 
| 3047 | 
            +
                 * a list of fixed arguments
         | 
| 3048 | 
            +
                 */
         | 
| 3049 | 
            +
                rb_define_method(rb_cARGSCAT, "head", node_head, 0);
         | 
| 3050 | 
            +
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3051 | 
            +
             | 
| 3046 3052 | 
             
                /* Document-method: body
         | 
| 3047 3053 | 
             
                 * the last argument, which will be splatted onto the end of the
         | 
| 3048 3054 | 
             
                 * fixed arguments
         | 
| 3049 3055 | 
             
                 */
         | 
| 3050 3056 | 
             
                rb_define_method(rb_cARGSCAT, "body", node_body, 0);
         | 
| 3051 3057 | 
             
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3052 | 
            -
             | 
| 3053 | 
            -
                /* Document-method: head
         | 
| 3054 | 
            -
                 * a list of fixed arguments
         | 
| 3055 | 
            -
                 */
         | 
| 3056 | 
            -
                rb_define_method(rb_cARGSCAT, "head", node_head, 0);
         | 
| 3057 | 
            -
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3058 3058 | 
             
              }
         | 
| 3059 3059 |  | 
| 3060 3060 | 
             
              /* Document-class: Node::ARGSPUSH
         | 
| @@ -3071,10 +3071,10 @@ void define_node_subclass_methods() | |
| 3071 3071 | 
             
                rb_iv_set(rb_cARGSPUSH, "__member__", members);
         | 
| 3072 3072 | 
             
                rb_iv_set(rb_cARGSPUSH, "__type__", INT2NUM(NODE_ARGSPUSH));
         | 
| 3073 3073 | 
             
                rb_define_singleton_method(rb_cARGSPUSH, "members", node_s_members, 0);
         | 
| 3074 | 
            -
                rb_define_method(rb_cARGSPUSH, "body", node_body, 0);
         | 
| 3075 | 
            -
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3076 3074 | 
             
                rb_define_method(rb_cARGSPUSH, "head", node_head, 0);
         | 
| 3077 3075 | 
             
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3076 | 
            +
                rb_define_method(rb_cARGSPUSH, "body", node_body, 0);
         | 
| 3077 | 
            +
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3078 3078 | 
             
              }
         | 
| 3079 3079 |  | 
| 3080 3080 | 
             
              /* Document-class: Node::ARRAY
         | 
| @@ -3092,17 +3092,17 @@ void define_node_subclass_methods() | |
| 3092 3092 | 
             
                rb_define_method(rb_cARRAY, "alen", node_alen, 0);
         | 
| 3093 3093 | 
             
                rb_ary_push(members, rb_str_new2("alen"));
         | 
| 3094 3094 |  | 
| 3095 | 
            -
                /* Document-method: next
         | 
| 3096 | 
            -
                 * the tail of the array
         | 
| 3097 | 
            -
                 */
         | 
| 3098 | 
            -
                rb_define_method(rb_cARRAY, "next", node_next, 0);
         | 
| 3099 | 
            -
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3100 | 
            -
             | 
| 3101 3095 | 
             
                /* Document-method: head
         | 
| 3102 3096 | 
             
                 * the first element of the array
         | 
| 3103 3097 | 
             
                 */
         | 
| 3104 3098 | 
             
                rb_define_method(rb_cARRAY, "head", node_head, 0);
         | 
| 3105 3099 | 
             
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3100 | 
            +
             | 
| 3101 | 
            +
                /* Document-method: next
         | 
| 3102 | 
            +
                 * the tail of the array
         | 
| 3103 | 
            +
                 */
         | 
| 3104 | 
            +
                rb_define_method(rb_cARRAY, "next", node_next, 0);
         | 
| 3105 | 
            +
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3106 3106 | 
             
              }
         | 
| 3107 3107 |  | 
| 3108 3108 | 
             
              /* Document-class: Node::ATTRASGN
         | 
| @@ -3125,17 +3125,17 @@ void define_node_subclass_methods() | |
| 3125 3125 | 
             
                rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
         | 
| 3126 3126 | 
             
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 3127 3127 |  | 
| 3128 | 
            -
                /* Document-method: mid
         | 
| 3129 | 
            -
                 * the id of the attribute, with a trailing '=' sign
         | 
| 3130 | 
            -
                 */
         | 
| 3131 | 
            -
                rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
         | 
| 3132 | 
            -
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 3133 | 
            -
             | 
| 3134 3128 | 
             
                /* Document-method: args
         | 
| 3135 3129 | 
             
                 * the arguments to the method
         | 
| 3136 3130 | 
             
                 */
         | 
| 3137 3131 | 
             
                rb_define_method(rb_cATTRASGN, "args", node_args, 0);
         | 
| 3138 3132 | 
             
                rb_ary_push(members, rb_str_new2("args"));
         | 
| 3133 | 
            +
             | 
| 3134 | 
            +
                /* Document-method: mid
         | 
| 3135 | 
            +
                 * the id of the attribute, with a trailing '=' sign
         | 
| 3136 | 
            +
                 */
         | 
| 3137 | 
            +
                rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
         | 
| 3138 | 
            +
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 3139 3139 | 
             
              }
         | 
| 3140 3140 |  | 
| 3141 3141 | 
             
              /* Document-class: Node::ATTRSET
         | 
| @@ -3174,19 +3174,19 @@ void define_node_subclass_methods() | |
| 3174 3174 | 
             
                rb_iv_set(rb_cBACK_REF, "__type__", INT2NUM(NODE_BACK_REF));
         | 
| 3175 3175 | 
             
                rb_define_singleton_method(rb_cBACK_REF, "members", node_s_members, 0);
         | 
| 3176 3176 |  | 
| 3177 | 
            -
                /* Document-method: cnt
         | 
| 3178 | 
            -
                 * the index into the local variable table where the match data is
         | 
| 3179 | 
            -
                 * stored
         | 
| 3180 | 
            -
                 */
         | 
| 3181 | 
            -
                rb_define_method(rb_cBACK_REF, "cnt", node_cnt, 0);
         | 
| 3182 | 
            -
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 3183 | 
            -
             | 
| 3184 3177 | 
             
                /* Document-method: nth
         | 
| 3185 3178 | 
             
                 * the integer representation of the character of the variable to
         | 
| 3186 3179 | 
             
                 * reference, one of '&', '`', '\'', or '+'
         | 
| 3187 3180 | 
             
                 */
         | 
| 3188 3181 | 
             
                rb_define_method(rb_cBACK_REF, "nth", node_nth, 0);
         | 
| 3189 3182 | 
             
                rb_ary_push(members, rb_str_new2("nth"));
         | 
| 3183 | 
            +
             | 
| 3184 | 
            +
                /* Document-method: cnt
         | 
| 3185 | 
            +
                 * the index into the local variable table where the match data is
         | 
| 3186 | 
            +
                 * stored
         | 
| 3187 | 
            +
                 */
         | 
| 3188 | 
            +
                rb_define_method(rb_cBACK_REF, "cnt", node_cnt, 0);
         | 
| 3189 | 
            +
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 3190 3190 | 
             
              }
         | 
| 3191 3191 |  | 
| 3192 3192 | 
             
              /* Document-class: Node::BEGIN
         | 
| @@ -3223,17 +3223,17 @@ void define_node_subclass_methods() | |
| 3223 3223 | 
             
                rb_iv_set(rb_cBLOCK, "__type__", INT2NUM(NODE_BLOCK));
         | 
| 3224 3224 | 
             
                rb_define_singleton_method(rb_cBLOCK, "members", node_s_members, 0);
         | 
| 3225 3225 |  | 
| 3226 | 
            -
                /* Document-method: next
         | 
| 3227 | 
            -
                 * the second expression in the block of code
         | 
| 3228 | 
            -
                 */
         | 
| 3229 | 
            -
                rb_define_method(rb_cBLOCK, "next", node_next, 0);
         | 
| 3230 | 
            -
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3231 | 
            -
             | 
| 3232 3226 | 
             
                /* Document-method: head
         | 
| 3233 3227 | 
             
                 * the first expression in the block of code
         | 
| 3234 3228 | 
             
                 */
         | 
| 3235 3229 | 
             
                rb_define_method(rb_cBLOCK, "head", node_head, 0);
         | 
| 3236 3230 | 
             
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3231 | 
            +
             | 
| 3232 | 
            +
                /* Document-method: next
         | 
| 3233 | 
            +
                 * the second expression in the block of code
         | 
| 3234 | 
            +
                 */
         | 
| 3235 | 
            +
                rb_define_method(rb_cBLOCK, "next", node_next, 0);
         | 
| 3236 | 
            +
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3237 3237 | 
             
              }
         | 
| 3238 3238 |  | 
| 3239 3239 | 
             
              /* Document-class: Node::BLOCK_ARG
         | 
| @@ -3341,11 +3341,11 @@ void define_node_subclass_methods() | |
| 3341 3341 | 
             
                rb_iv_set(rb_cCALL, "__type__", INT2NUM(NODE_CALL));
         | 
| 3342 3342 | 
             
                rb_define_singleton_method(rb_cCALL, "members", node_s_members, 0);
         | 
| 3343 3343 |  | 
| 3344 | 
            -
                /* Document-method:  | 
| 3345 | 
            -
                 * the  | 
| 3344 | 
            +
                /* Document-method: args
         | 
| 3345 | 
            +
                 * the arguments to the method
         | 
| 3346 3346 | 
             
                 */
         | 
| 3347 | 
            -
                rb_define_method(rb_cCALL, " | 
| 3348 | 
            -
                rb_ary_push(members, rb_str_new2(" | 
| 3347 | 
            +
                rb_define_method(rb_cCALL, "args", node_args, 0);
         | 
| 3348 | 
            +
                rb_ary_push(members, rb_str_new2("args"));
         | 
| 3349 3349 |  | 
| 3350 3350 | 
             
                /* Document-method: mid
         | 
| 3351 3351 | 
             
                 * the method id
         | 
| @@ -3353,11 +3353,11 @@ void define_node_subclass_methods() | |
| 3353 3353 | 
             
                rb_define_method(rb_cCALL, "mid", node_mid, 0);
         | 
| 3354 3354 | 
             
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 3355 3355 |  | 
| 3356 | 
            -
                /* Document-method:  | 
| 3357 | 
            -
                 * the  | 
| 3356 | 
            +
                /* Document-method: recv
         | 
| 3357 | 
            +
                 * the receiver of the method
         | 
| 3358 3358 | 
             
                 */
         | 
| 3359 | 
            -
                rb_define_method(rb_cCALL, " | 
| 3360 | 
            -
                rb_ary_push(members, rb_str_new2(" | 
| 3359 | 
            +
                rb_define_method(rb_cCALL, "recv", node_recv, 0);
         | 
| 3360 | 
            +
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 3361 3361 | 
             
              }
         | 
| 3362 3362 |  | 
| 3363 3363 | 
             
              /* Document-class: Node::CASE
         | 
| @@ -3375,6 +3375,12 @@ void define_node_subclass_methods() | |
| 3375 3375 | 
             
                rb_iv_set(rb_cCASE, "__type__", INT2NUM(NODE_CASE));
         | 
| 3376 3376 | 
             
                rb_define_singleton_method(rb_cCASE, "members", node_s_members, 0);
         | 
| 3377 3377 |  | 
| 3378 | 
            +
                /* Document-method: head
         | 
| 3379 | 
            +
                 * the value to select on
         | 
| 3380 | 
            +
                 */
         | 
| 3381 | 
            +
                rb_define_method(rb_cCASE, "head", node_head, 0);
         | 
| 3382 | 
            +
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3383 | 
            +
             | 
| 3378 3384 | 
             
                /* Document-method: body
         | 
| 3379 3385 | 
             
                 * a linked list of nodes, each node representing a when
         | 
| 3380 3386 | 
             
                 * conditional
         | 
| @@ -3383,12 +3389,6 @@ void define_node_subclass_methods() | |
| 3383 3389 | 
             
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3384 3390 | 
             
                rb_define_method(rb_cCASE, "next", node_next, 0);
         | 
| 3385 3391 | 
             
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3386 | 
            -
             | 
| 3387 | 
            -
                /* Document-method: head
         | 
| 3388 | 
            -
                 * the value to select on
         | 
| 3389 | 
            -
                 */
         | 
| 3390 | 
            -
                rb_define_method(rb_cCASE, "head", node_head, 0);
         | 
| 3391 | 
            -
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3392 3392 | 
             
              }
         | 
| 3393 3393 |  | 
| 3394 3394 | 
             
              /* Document-class: Node::CDECL
         | 
| @@ -3456,12 +3456,6 @@ void define_node_subclass_methods() | |
| 3456 3456 | 
             
                rb_iv_set(rb_cCLASS, "__type__", INT2NUM(NODE_CLASS));
         | 
| 3457 3457 | 
             
                rb_define_singleton_method(rb_cCLASS, "members", node_s_members, 0);
         | 
| 3458 3458 |  | 
| 3459 | 
            -
                /* Document-method: body
         | 
| 3460 | 
            -
                 * the body of the class definition
         | 
| 3461 | 
            -
                 */
         | 
| 3462 | 
            -
                rb_define_method(rb_cCLASS, "body", node_body, 0);
         | 
| 3463 | 
            -
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3464 | 
            -
             | 
| 3465 3459 | 
             
                /* Document-method: super
         | 
| 3466 3460 | 
             
                 * an expression returning the base class, or false if there is no
         | 
| 3467 3461 | 
             
                 * base class specified
         | 
| @@ -3474,6 +3468,12 @@ void define_node_subclass_methods() | |
| 3474 3468 | 
             
                 */
         | 
| 3475 3469 | 
             
                rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
         | 
| 3476 3470 | 
             
                rb_ary_push(members, rb_str_new2("cpath"));
         | 
| 3471 | 
            +
             | 
| 3472 | 
            +
                /* Document-method: body
         | 
| 3473 | 
            +
                 * the body of the class definition
         | 
| 3474 | 
            +
                 */
         | 
| 3475 | 
            +
                rb_define_method(rb_cCLASS, "body", node_body, 0);
         | 
| 3476 | 
            +
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3477 3477 | 
             
              }
         | 
| 3478 3478 |  | 
| 3479 3479 | 
             
              /* Document-class: Node::COLON2
         | 
| @@ -3492,17 +3492,17 @@ void define_node_subclass_methods() | |
| 3492 3492 | 
             
                rb_iv_set(rb_cCOLON2, "__type__", INT2NUM(NODE_COLON2));
         | 
| 3493 3493 | 
             
                rb_define_singleton_method(rb_cCOLON2, "members", node_s_members, 0);
         | 
| 3494 3494 |  | 
| 3495 | 
            -
                /* Document-method: mid
         | 
| 3496 | 
            -
                 * the name of the method or constant to call/look up
         | 
| 3497 | 
            -
                 */
         | 
| 3498 | 
            -
                rb_define_method(rb_cCOLON2, "mid", node_mid, 0);
         | 
| 3499 | 
            -
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 3500 | 
            -
             | 
| 3501 3495 | 
             
                /* Document-method: head
         | 
| 3502 3496 | 
             
                 * an expression specifying the class in which to do the lookup
         | 
| 3503 3497 | 
             
                 */
         | 
| 3504 3498 | 
             
                rb_define_method(rb_cCOLON2, "head", node_head, 0);
         | 
| 3505 3499 | 
             
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 3500 | 
            +
             | 
| 3501 | 
            +
                /* Document-method: mid
         | 
| 3502 | 
            +
                 * the name of the method or constant to call/look up
         | 
| 3503 | 
            +
                 */
         | 
| 3504 | 
            +
                rb_define_method(rb_cCOLON2, "mid", node_mid, 0);
         | 
| 3505 | 
            +
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 3506 3506 | 
             
              }
         | 
| 3507 3507 |  | 
| 3508 3508 | 
             
              /* Document-class: Node::COLON3
         | 
| @@ -3561,18 +3561,18 @@ void define_node_subclass_methods() | |
| 3561 3561 | 
             
                rb_iv_set(rb_cCREF, "__type__", INT2NUM(NODE_CREF));
         | 
| 3562 3562 | 
             
                rb_define_singleton_method(rb_cCREF, "members", node_s_members, 0);
         | 
| 3563 3563 |  | 
| 3564 | 
            -
                /* Document-method: body
         | 
| 3565 | 
            -
                 * always 0 (false)
         | 
| 3566 | 
            -
                 */
         | 
| 3567 | 
            -
                rb_define_method(rb_cCREF, "body", node_body, 0);
         | 
| 3568 | 
            -
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3569 | 
            -
             | 
| 3570 3564 | 
             
                /* Document-method: clss
         | 
| 3571 3565 | 
             
                 * the new class to use for the cbase.
         | 
| 3572 3566 | 
             
                 */
         | 
| 3573 3567 | 
             
                rb_define_method(rb_cCREF, "clss", node_clss, 0);
         | 
| 3574 3568 | 
             
                rb_ary_push(members, rb_str_new2("clss"));
         | 
| 3575 3569 |  | 
| 3570 | 
            +
                /* Document-method: body
         | 
| 3571 | 
            +
                 * always 0 (false)
         | 
| 3572 | 
            +
                 */
         | 
| 3573 | 
            +
                rb_define_method(rb_cCREF, "body", node_body, 0);
         | 
| 3574 | 
            +
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 3575 | 
            +
             | 
| 3576 3576 | 
             
                /* Document-method: next
         | 
| 3577 3577 | 
             
                 * the previous value of ruby_cref or ruby_top_cref
         | 
| 3578 3578 | 
             
                 */
         | 
| @@ -3742,11 +3742,11 @@ void define_node_subclass_methods() | |
| 3742 3742 | 
             
                rb_iv_set(rb_cDEFN, "__type__", INT2NUM(NODE_DEFN));
         | 
| 3743 3743 | 
             
                rb_define_singleton_method(rb_cDEFN, "members", node_s_members, 0);
         | 
| 3744 3744 |  | 
| 3745 | 
            -
                /* Document-method:  | 
| 3746 | 
            -
                 * the  | 
| 3745 | 
            +
                /* Document-method: defn
         | 
| 3746 | 
            +
                 * the body of the method definition
         | 
| 3747 3747 | 
             
                 */
         | 
| 3748 | 
            -
                rb_define_method(rb_cDEFN, " | 
| 3749 | 
            -
                rb_ary_push(members, rb_str_new2(" | 
| 3748 | 
            +
                rb_define_method(rb_cDEFN, "defn", node_defn, 0);
         | 
| 3749 | 
            +
                rb_ary_push(members, rb_str_new2("defn"));
         | 
| 3750 3750 |  | 
| 3751 3751 | 
             
                /* Document-method: mid
         | 
| 3752 3752 | 
             
                 * the name of the method* defn the body of the method
         | 
| @@ -3754,11 +3754,11 @@ void define_node_subclass_methods() | |
| 3754 3754 | 
             
                rb_define_method(rb_cDEFN, "mid", node_mid, 0);
         | 
| 3755 3755 | 
             
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 3756 3756 |  | 
| 3757 | 
            -
                /* Document-method:  | 
| 3758 | 
            -
                 * the  | 
| 3757 | 
            +
                /* Document-method: noex
         | 
| 3758 | 
            +
                 * the flags which should be used to define the method
         | 
| 3759 3759 | 
             
                 */
         | 
| 3760 | 
            -
                rb_define_method(rb_cDEFN, " | 
| 3761 | 
            -
                rb_ary_push(members, rb_str_new2(" | 
| 3760 | 
            +
                rb_define_method(rb_cDEFN, "noex", node_noex, 0);
         | 
| 3761 | 
            +
                rb_ary_push(members, rb_str_new2("noex"));
         | 
| 3762 3762 | 
             
              }
         | 
| 3763 3763 |  | 
| 3764 3764 | 
             
              /* Document-class: Node::DEFS
         | 
| @@ -3774,6 +3774,8 @@ void define_node_subclass_methods() | |
| 3774 3774 | 
             
                rb_iv_set(rb_cDEFS, "__member__", members);
         | 
| 3775 3775 | 
             
                rb_iv_set(rb_cDEFS, "__type__", INT2NUM(NODE_DEFS));
         | 
| 3776 3776 | 
             
                rb_define_singleton_method(rb_cDEFS, "members", node_s_members, 0);
         | 
| 3777 | 
            +
                rb_define_method(rb_cDEFS, "defn", node_defn, 0);
         | 
| 3778 | 
            +
                rb_ary_push(members, rb_str_new2("defn"));
         | 
| 3777 3779 |  | 
| 3778 3780 | 
             
                /* Document-method: recv
         | 
| 3779 3781 | 
             
                 * the object to whose singleton class the new method is to be  added
         | 
| @@ -3786,8 +3788,6 @@ void define_node_subclass_methods() | |
| 3786 3788 | 
             
                 */
         | 
| 3787 3789 | 
             
                rb_define_method(rb_cDEFS, "mid", node_mid, 0);
         | 
| 3788 3790 | 
             
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 3789 | 
            -
                rb_define_method(rb_cDEFS, "defn", node_defn, 0);
         | 
| 3790 | 
            -
                rb_ary_push(members, rb_str_new2("defn"));
         | 
| 3791 3791 | 
             
              }
         | 
| 3792 3792 |  | 
| 3793 3793 | 
             
              /* Document-class: Node::DMETHOD
         | 
| @@ -3826,17 +3826,17 @@ void define_node_subclass_methods() | |
| 3826 3826 | 
             
                rb_iv_set(rb_cDOT2, "__type__", INT2NUM(NODE_DOT2));
         | 
| 3827 3827 | 
             
                rb_define_singleton_method(rb_cDOT2, "members", node_s_members, 0);
         | 
| 3828 3828 |  | 
| 3829 | 
            -
                /* Document-method: end
         | 
| 3830 | 
            -
                 * the end of the range
         | 
| 3831 | 
            -
                 */
         | 
| 3832 | 
            -
                rb_define_method(rb_cDOT2, "end", node_end, 0);
         | 
| 3833 | 
            -
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 3834 | 
            -
             | 
| 3835 3829 | 
             
                /* Document-method: beg
         | 
| 3836 3830 | 
             
                 * the beginning of the range
         | 
| 3837 3831 | 
             
                 */
         | 
| 3838 3832 | 
             
                rb_define_method(rb_cDOT2, "beg", node_beg, 0);
         | 
| 3839 3833 | 
             
                rb_ary_push(members, rb_str_new2("beg"));
         | 
| 3834 | 
            +
             | 
| 3835 | 
            +
                /* Document-method: end
         | 
| 3836 | 
            +
                 * the end of the range
         | 
| 3837 | 
            +
                 */
         | 
| 3838 | 
            +
                rb_define_method(rb_cDOT2, "end", node_end, 0);
         | 
| 3839 | 
            +
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 3840 3840 | 
             
                rb_define_method(rb_cDOT2, "state", node_state, 0);
         | 
| 3841 3841 | 
             
                rb_ary_push(members, rb_str_new2("state"));
         | 
| 3842 3842 | 
             
              }
         | 
| @@ -3854,17 +3854,17 @@ void define_node_subclass_methods() | |
| 3854 3854 | 
             
                rb_iv_set(rb_cDOT3, "__type__", INT2NUM(NODE_DOT3));
         | 
| 3855 3855 | 
             
                rb_define_singleton_method(rb_cDOT3, "members", node_s_members, 0);
         | 
| 3856 3856 |  | 
| 3857 | 
            -
                /* Document-method: end
         | 
| 3858 | 
            -
                 * the end of the range
         | 
| 3859 | 
            -
                 */
         | 
| 3860 | 
            -
                rb_define_method(rb_cDOT3, "end", node_end, 0);
         | 
| 3861 | 
            -
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 3862 | 
            -
             | 
| 3863 3857 | 
             
                /* Document-method: beg
         | 
| 3864 3858 | 
             
                 * the beginning of the range
         | 
| 3865 3859 | 
             
                 */
         | 
| 3866 3860 | 
             
                rb_define_method(rb_cDOT3, "beg", node_beg, 0);
         | 
| 3867 3861 | 
             
                rb_ary_push(members, rb_str_new2("beg"));
         | 
| 3862 | 
            +
             | 
| 3863 | 
            +
                /* Document-method: end
         | 
| 3864 | 
            +
                 * the end of the range
         | 
| 3865 | 
            +
                 */
         | 
| 3866 | 
            +
                rb_define_method(rb_cDOT3, "end", node_end, 0);
         | 
| 3867 | 
            +
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 3868 3868 | 
             
                rb_define_method(rb_cDOT3, "state", node_state, 0);
         | 
| 3869 3869 | 
             
                rb_ary_push(members, rb_str_new2("state"));
         | 
| 3870 3870 | 
             
              }
         | 
| @@ -3891,6 +3891,12 @@ void define_node_subclass_methods() | |
| 3891 3891 | 
             
                rb_define_method(rb_cDREGX, "lit", node_lit, 0);
         | 
| 3892 3892 | 
             
                rb_ary_push(members, rb_str_new2("lit"));
         | 
| 3893 3893 |  | 
| 3894 | 
            +
                /* Document-method: next
         | 
| 3895 | 
            +
                 * a list of expressions to be appended onto the string
         | 
| 3896 | 
            +
                 */
         | 
| 3897 | 
            +
                rb_define_method(rb_cDREGX, "next", node_next, 0);
         | 
| 3898 | 
            +
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3899 | 
            +
             | 
| 3894 3900 | 
             
                /* Document-method: cflag
         | 
| 3895 3901 | 
             
                 * a bitfield containing the options used in the regular
         | 
| 3896 3902 | 
             
                 * expression.  Valid values include:
         | 
| @@ -3907,12 +3913,6 @@ void define_node_subclass_methods() | |
| 3907 3913 | 
             
                 */
         | 
| 3908 3914 | 
             
                rb_define_method(rb_cDREGX, "cflag", node_cflag, 0);
         | 
| 3909 3915 | 
             
                rb_ary_push(members, rb_str_new2("cflag"));
         | 
| 3910 | 
            -
             | 
| 3911 | 
            -
                /* Document-method: next
         | 
| 3912 | 
            -
                 * a list of expressions to be appended onto the string
         | 
| 3913 | 
            -
                 */
         | 
| 3914 | 
            -
                rb_define_method(rb_cDREGX, "next", node_next, 0);
         | 
| 3915 | 
            -
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3916 3916 | 
             
              }
         | 
| 3917 3917 |  | 
| 3918 3918 | 
             
              /* Document-class: Node::DREGX_ONCE
         | 
| @@ -3934,18 +3934,18 @@ void define_node_subclass_methods() | |
| 3934 3934 | 
             
                rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
         | 
| 3935 3935 | 
             
                rb_ary_push(members, rb_str_new2("lit"));
         | 
| 3936 3936 |  | 
| 3937 | 
            +
                /* Document-method: next
         | 
| 3938 | 
            +
                 * a list of expressions to be appended onto the string
         | 
| 3939 | 
            +
                 */
         | 
| 3940 | 
            +
                rb_define_method(rb_cDREGX_ONCE, "next", node_next, 0);
         | 
| 3941 | 
            +
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3942 | 
            +
             | 
| 3937 3943 | 
             
                /* Document-method: cflag
         | 
| 3938 3944 | 
             
                 * a bitfield containing the options used in the regular
         | 
| 3939 3945 | 
             
                 * expression.  See DREGX for a list of valid values.
         | 
| 3940 3946 | 
             
                 */
         | 
| 3941 3947 | 
             
                rb_define_method(rb_cDREGX_ONCE, "cflag", node_cflag, 0);
         | 
| 3942 3948 | 
             
                rb_ary_push(members, rb_str_new2("cflag"));
         | 
| 3943 | 
            -
             | 
| 3944 | 
            -
                /* Document-method: next
         | 
| 3945 | 
            -
                 * a list of expressions to be appended onto the string
         | 
| 3946 | 
            -
                 */
         | 
| 3947 | 
            -
                rb_define_method(rb_cDREGX_ONCE, "next", node_next, 0);
         | 
| 3948 | 
            -
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 3949 3949 | 
             
              }
         | 
| 3950 3950 |  | 
| 3951 3951 | 
             
              /* Document-class: Node::DSTR
         | 
| @@ -4135,18 +4135,18 @@ void define_node_subclass_methods() | |
| 4135 4135 | 
             
                rb_iv_set(rb_cFBODY, "__type__", INT2NUM(NODE_FBODY));
         | 
| 4136 4136 | 
             
                rb_define_singleton_method(rb_cFBODY, "members", node_s_members, 0);
         | 
| 4137 4137 |  | 
| 4138 | 
            -
                /* Document-method: mid
         | 
| 4139 | 
            -
                 * the name of the method
         | 
| 4140 | 
            -
                 */
         | 
| 4141 | 
            -
                rb_define_method(rb_cFBODY, "mid", node_mid, 0);
         | 
| 4142 | 
            -
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 4143 | 
            -
             | 
| 4144 4138 | 
             
                /* Document-method: orig
         | 
| 4145 4139 | 
             
                 * the origin class
         | 
| 4146 4140 | 
             
                 */
         | 
| 4147 4141 | 
             
                rb_define_method(rb_cFBODY, "orig", node_orig, 0);
         | 
| 4148 4142 | 
             
                rb_ary_push(members, rb_str_new2("orig"));
         | 
| 4149 4143 |  | 
| 4144 | 
            +
                /* Document-method: mid
         | 
| 4145 | 
            +
                 * the name of the method
         | 
| 4146 | 
            +
                 */
         | 
| 4147 | 
            +
                rb_define_method(rb_cFBODY, "mid", node_mid, 0);
         | 
| 4148 | 
            +
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 4149 | 
            +
             | 
| 4150 4150 | 
             
                /* Document-method: head
         | 
| 4151 4151 | 
             
                 * the method body
         | 
| 4152 4152 | 
             
                 */
         | 
| @@ -4169,17 +4169,17 @@ void define_node_subclass_methods() | |
| 4169 4169 | 
             
                rb_iv_set(rb_cFCALL, "__type__", INT2NUM(NODE_FCALL));
         | 
| 4170 4170 | 
             
                rb_define_singleton_method(rb_cFCALL, "members", node_s_members, 0);
         | 
| 4171 4171 |  | 
| 4172 | 
            -
                /* Document-method: mid
         | 
| 4173 | 
            -
                 * the method id
         | 
| 4174 | 
            -
                 */
         | 
| 4175 | 
            -
                rb_define_method(rb_cFCALL, "mid", node_mid, 0);
         | 
| 4176 | 
            -
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 4177 | 
            -
             | 
| 4178 4172 | 
             
                /* Document-method: args
         | 
| 4179 4173 | 
             
                 * the arguments to the method
         | 
| 4180 4174 | 
             
                 */
         | 
| 4181 4175 | 
             
                rb_define_method(rb_cFCALL, "args", node_args, 0);
         | 
| 4182 4176 | 
             
                rb_ary_push(members, rb_str_new2("args"));
         | 
| 4177 | 
            +
             | 
| 4178 | 
            +
                /* Document-method: mid
         | 
| 4179 | 
            +
                 * the method id
         | 
| 4180 | 
            +
                 */
         | 
| 4181 | 
            +
                rb_define_method(rb_cFCALL, "mid", node_mid, 0);
         | 
| 4182 | 
            +
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 4183 4183 | 
             
              }
         | 
| 4184 4184 |  | 
| 4185 4185 | 
             
              /* Document-class: Node::FLIP2
         | 
| @@ -4203,17 +4203,17 @@ void define_node_subclass_methods() | |
| 4203 4203 | 
             
                rb_define_method(rb_cFLIP2, "cnt", node_cnt, 0);
         | 
| 4204 4204 | 
             
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4205 4205 |  | 
| 4206 | 
            -
                /* Document-method: end
         | 
| 4207 | 
            -
                 * the end of the range
         | 
| 4208 | 
            -
                 */
         | 
| 4209 | 
            -
                rb_define_method(rb_cFLIP2, "end", node_end, 0);
         | 
| 4210 | 
            -
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 4211 | 
            -
             | 
| 4212 4206 | 
             
                /* Document-method: beg
         | 
| 4213 4207 | 
             
                 * the beginning of the range
         | 
| 4214 4208 | 
             
                 */
         | 
| 4215 4209 | 
             
                rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
         | 
| 4216 4210 | 
             
                rb_ary_push(members, rb_str_new2("beg"));
         | 
| 4211 | 
            +
             | 
| 4212 | 
            +
                /* Document-method: end
         | 
| 4213 | 
            +
                 * the end of the range
         | 
| 4214 | 
            +
                 */
         | 
| 4215 | 
            +
                rb_define_method(rb_cFLIP2, "end", node_end, 0);
         | 
| 4216 | 
            +
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 4217 4217 | 
             
              }
         | 
| 4218 4218 |  | 
| 4219 4219 | 
             
              /* Document-class: Node::FLIP3
         | 
| @@ -4237,17 +4237,17 @@ void define_node_subclass_methods() | |
| 4237 4237 | 
             
                rb_define_method(rb_cFLIP3, "cnt", node_cnt, 0);
         | 
| 4238 4238 | 
             
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4239 4239 |  | 
| 4240 | 
            -
                /* Document-method: end
         | 
| 4241 | 
            -
                 * the end of the range
         | 
| 4242 | 
            -
                 */
         | 
| 4243 | 
            -
                rb_define_method(rb_cFLIP3, "end", node_end, 0);
         | 
| 4244 | 
            -
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 4245 | 
            -
             | 
| 4246 4240 | 
             
                /* Document-method: beg
         | 
| 4247 4241 | 
             
                 * the beginning of the range
         | 
| 4248 4242 | 
             
                 */
         | 
| 4249 4243 | 
             
                rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
         | 
| 4250 4244 | 
             
                rb_ary_push(members, rb_str_new2("beg"));
         | 
| 4245 | 
            +
             | 
| 4246 | 
            +
                /* Document-method: end
         | 
| 4247 | 
            +
                 * the end of the range
         | 
| 4248 | 
            +
                 */
         | 
| 4249 | 
            +
                rb_define_method(rb_cFLIP3, "end", node_end, 0);
         | 
| 4250 | 
            +
                rb_ary_push(members, rb_str_new2("end"));
         | 
| 4251 4251 | 
             
              }
         | 
| 4252 4252 |  | 
| 4253 4253 | 
             
              /* Document-class: Node::FOR
         | 
| @@ -4402,6 +4402,7 @@ void define_node_subclass_methods() | |
| 4402 4402 | 
             
               * 
         | 
| 4403 4403 | 
             
               * A conditional block using elsif has another IF node as the else
         | 
| 4404 4404 | 
             
               * expression.
         | 
| 4405 | 
            +
               *     
         | 
| 4405 4406 | 
             
               */
         | 
| 4406 4407 | 
             
              {
         | 
| 4407 4408 | 
             
                VALUE rb_cIF = rb_define_class_under(rb_cNode, "IF", rb_cNode);
         | 
| @@ -4411,6 +4412,12 @@ void define_node_subclass_methods() | |
| 4411 4412 | 
             
                rb_iv_set(rb_cIF, "__type__", INT2NUM(NODE_IF));
         | 
| 4412 4413 | 
             
                rb_define_singleton_method(rb_cIF, "members", node_s_members, 0);
         | 
| 4413 4414 |  | 
| 4415 | 
            +
                /* Document-method: cond
         | 
| 4416 | 
            +
                 * the condition to evaluate
         | 
| 4417 | 
            +
                 */
         | 
| 4418 | 
            +
                rb_define_method(rb_cIF, "cond", node_cond, 0);
         | 
| 4419 | 
            +
                rb_ary_push(members, rb_str_new2("cond"));
         | 
| 4420 | 
            +
             | 
| 4414 4421 | 
             
                /* Document-method: body
         | 
| 4415 4422 | 
             
                 * the expression to evaluate if the expression is true, or false
         | 
| 4416 4423 | 
             
                 * if the expression is empty
         | 
| @@ -4418,12 +4425,6 @@ void define_node_subclass_methods() | |
| 4418 4425 | 
             
                rb_define_method(rb_cIF, "body", node_body, 0);
         | 
| 4419 4426 | 
             
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 4420 4427 |  | 
| 4421 | 
            -
                /* Document-method: cond
         | 
| 4422 | 
            -
                 * the condition to evaluate
         | 
| 4423 | 
            -
                 */
         | 
| 4424 | 
            -
                rb_define_method(rb_cIF, "cond", node_cond, 0);
         | 
| 4425 | 
            -
                rb_ary_push(members, rb_str_new2("cond"));
         | 
| 4426 | 
            -
             | 
| 4427 4428 | 
             
                /* Document-method: else
         | 
| 4428 4429 | 
             
                 * the expression to evaluate if the expression is false, or false
         | 
| 4429 4430 | 
             
                 * if the expression is empty
         | 
| @@ -4449,18 +4450,18 @@ void define_node_subclass_methods() | |
| 4449 4450 | 
             
                rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
         | 
| 4450 4451 | 
             
                rb_ary_push(members, rb_str_new2("cfnc"));
         | 
| 4451 4452 |  | 
| 4452 | 
            -
                /* Document-method: state
         | 
| 4453 | 
            -
                 * always 0
         | 
| 4454 | 
            -
                 */
         | 
| 4455 | 
            -
                rb_define_method(rb_cIFUNC, "state", node_state, 0);
         | 
| 4456 | 
            -
                rb_ary_push(members, rb_str_new2("state"));
         | 
| 4457 | 
            -
             | 
| 4458 4453 | 
             
                /* Document-method: tval
         | 
| 4459 4454 | 
             
                 * the user-specified data to be passed as the second argument to
         | 
| 4460 4455 | 
             
                 * cfnc
         | 
| 4461 4456 | 
             
                 */
         | 
| 4462 4457 | 
             
                rb_define_method(rb_cIFUNC, "tval", node_tval, 0);
         | 
| 4463 4458 | 
             
                rb_ary_push(members, rb_str_new2("tval"));
         | 
| 4459 | 
            +
             | 
| 4460 | 
            +
                /* Document-method: state
         | 
| 4461 | 
            +
                 * always 0
         | 
| 4462 | 
            +
                 */
         | 
| 4463 | 
            +
                rb_define_method(rb_cIFUNC, "state", node_state, 0);
         | 
| 4464 | 
            +
                rb_ary_push(members, rb_str_new2("state"));
         | 
| 4464 4465 | 
             
              }
         | 
| 4465 4466 |  | 
| 4466 4467 | 
             
              /* Document-class: Node::ITER
         | 
| @@ -4543,14 +4544,14 @@ void define_node_subclass_methods() | |
| 4543 4544 | 
             
                 */
         | 
| 4544 4545 | 
             
                rb_define_method(rb_cLASGN, "value", node_value, 0);
         | 
| 4545 4546 | 
             
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4546 | 
            -
                rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
         | 
| 4547 | 
            -
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4548 4547 |  | 
| 4549 4548 | 
             
                /* Document-method: vid
         | 
| 4550 4549 | 
             
                 * the name of the local variable
         | 
| 4551 4550 | 
             
                 */
         | 
| 4552 4551 | 
             
                rb_define_method(rb_cLASGN, "vid", node_vid, 0);
         | 
| 4553 4552 | 
             
                rb_ary_push(members, rb_str_new2("vid"));
         | 
| 4553 | 
            +
                rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
         | 
| 4554 | 
            +
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4554 4555 | 
             
              }
         | 
| 4555 4556 |  | 
| 4556 4557 | 
             
              /* Document-class: Node::LIT
         | 
| @@ -4582,14 +4583,14 @@ void define_node_subclass_methods() | |
| 4582 4583 | 
             
                rb_iv_set(rb_cLVAR, "__member__", members);
         | 
| 4583 4584 | 
             
                rb_iv_set(rb_cLVAR, "__type__", INT2NUM(NODE_LVAR));
         | 
| 4584 4585 | 
             
                rb_define_singleton_method(rb_cLVAR, "members", node_s_members, 0);
         | 
| 4585 | 
            -
                rb_define_method(rb_cLVAR, "cnt", node_cnt, 0);
         | 
| 4586 | 
            -
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4587 4586 |  | 
| 4588 4587 | 
             
                /* Document-method: vid
         | 
| 4589 4588 | 
             
                 * the name of the local variable to retrieve.
         | 
| 4590 4589 | 
             
                 */
         | 
| 4591 4590 | 
             
                rb_define_method(rb_cLVAR, "vid", node_vid, 0);
         | 
| 4592 4591 | 
             
                rb_ary_push(members, rb_str_new2("vid"));
         | 
| 4592 | 
            +
                rb_define_method(rb_cLVAR, "cnt", node_cnt, 0);
         | 
| 4593 | 
            +
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4593 4594 | 
             
              }
         | 
| 4594 4595 |  | 
| 4595 4596 | 
             
              /* Document-class: Node::MASGN
         | 
| @@ -4603,12 +4604,6 @@ void define_node_subclass_methods() | |
| 4603 4604 | 
             
                rb_iv_set(rb_cMASGN, "__type__", INT2NUM(NODE_MASGN));
         | 
| 4604 4605 | 
             
                rb_define_singleton_method(rb_cMASGN, "members", node_s_members, 0);
         | 
| 4605 4606 |  | 
| 4606 | 
            -
                /* Document-method: value
         | 
| 4607 | 
            -
                 * TODO
         | 
| 4608 | 
            -
                 */
         | 
| 4609 | 
            -
                rb_define_method(rb_cMASGN, "value", node_value, 0);
         | 
| 4610 | 
            -
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4611 | 
            -
             | 
| 4612 4607 | 
             
                /* Document-method: args
         | 
| 4613 4608 | 
             
                 * TODO
         | 
| 4614 4609 | 
             
                 */
         | 
| @@ -4620,6 +4615,12 @@ void define_node_subclass_methods() | |
| 4620 4615 | 
             
                 */
         | 
| 4621 4616 | 
             
                rb_define_method(rb_cMASGN, "head", node_head, 0);
         | 
| 4622 4617 | 
             
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 4618 | 
            +
             | 
| 4619 | 
            +
                /* Document-method: value
         | 
| 4620 | 
            +
                 * TODO
         | 
| 4621 | 
            +
                 */
         | 
| 4622 | 
            +
                rb_define_method(rb_cMASGN, "value", node_value, 0);
         | 
| 4623 | 
            +
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4623 4624 | 
             
              }
         | 
| 4624 4625 |  | 
| 4625 4626 | 
             
              /* Document-class: Node::MATCH
         | 
| @@ -4644,17 +4645,17 @@ void define_node_subclass_methods() | |
| 4644 4645 | 
             
                rb_iv_set(rb_cMATCH, "__type__", INT2NUM(NODE_MATCH));
         | 
| 4645 4646 | 
             
                rb_define_singleton_method(rb_cMATCH, "members", node_s_members, 0);
         | 
| 4646 4647 |  | 
| 4647 | 
            -
                /* Document-method: value
         | 
| 4648 | 
            -
                 * the value to compare against
         | 
| 4649 | 
            -
                 */
         | 
| 4650 | 
            -
                rb_define_method(rb_cMATCH, "value", node_value, 0);
         | 
| 4651 | 
            -
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4652 | 
            -
             | 
| 4653 4648 | 
             
                /* Document-method: lit
         | 
| 4654 4649 | 
             
                 * the regular expression to use in the condition.
         | 
| 4655 4650 | 
             
                 */
         | 
| 4656 4651 | 
             
                rb_define_method(rb_cMATCH, "lit", node_lit, 0);
         | 
| 4657 4652 | 
             
                rb_ary_push(members, rb_str_new2("lit"));
         | 
| 4653 | 
            +
             | 
| 4654 | 
            +
                /* Document-method: value
         | 
| 4655 | 
            +
                 * the value to compare against
         | 
| 4656 | 
            +
                 */
         | 
| 4657 | 
            +
                rb_define_method(rb_cMATCH, "value", node_value, 0);
         | 
| 4658 | 
            +
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4658 4659 | 
             
              }
         | 
| 4659 4660 |  | 
| 4660 4661 | 
             
              /* Document-class: Node::MATCH2
         | 
| @@ -4682,6 +4683,13 @@ void define_node_subclass_methods() | |
| 4682 4683 | 
             
                rb_iv_set(rb_cMATCH2, "__type__", INT2NUM(NODE_MATCH2));
         | 
| 4683 4684 | 
             
                rb_define_singleton_method(rb_cMATCH2, "members", node_s_members, 0);
         | 
| 4684 4685 |  | 
| 4686 | 
            +
                /* Document-method: recv
         | 
| 4687 | 
            +
                 * the regular expression on the left hand side of the match
         | 
| 4688 | 
            +
                 * operator
         | 
| 4689 | 
            +
                 */
         | 
| 4690 | 
            +
                rb_define_method(rb_cMATCH2, "recv", node_recv, 0);
         | 
| 4691 | 
            +
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 4692 | 
            +
             | 
| 4685 4693 | 
             
                /* Document-method: value
         | 
| 4686 4694 | 
             
                 * the expression on the right hand side of the match operator, or
         | 
| 4687 4695 | 
             
                 * an expression returning $_ if there is nothing on the right hand
         | 
| @@ -4689,13 +4697,6 @@ void define_node_subclass_methods() | |
| 4689 4697 | 
             
                 */
         | 
| 4690 4698 | 
             
                rb_define_method(rb_cMATCH2, "value", node_value, 0);
         | 
| 4691 4699 | 
             
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4692 | 
            -
             | 
| 4693 | 
            -
                /* Document-method: recv
         | 
| 4694 | 
            -
                 * the regular expression on the left hand side of the match
         | 
| 4695 | 
            -
                 * operator
         | 
| 4696 | 
            -
                 */
         | 
| 4697 | 
            -
                rb_define_method(rb_cMATCH2, "recv", node_recv, 0);
         | 
| 4698 | 
            -
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 4699 4700 | 
             
              }
         | 
| 4700 4701 |  | 
| 4701 4702 | 
             
              /* Document-class: Node::MATCH3
         | 
| @@ -4713,17 +4714,17 @@ void define_node_subclass_methods() | |
| 4713 4714 | 
             
                rb_iv_set(rb_cMATCH3, "__type__", INT2NUM(NODE_MATCH3));
         | 
| 4714 4715 | 
             
                rb_define_singleton_method(rb_cMATCH3, "members", node_s_members, 0);
         | 
| 4715 4716 |  | 
| 4716 | 
            -
                /* Document-method: value
         | 
| 4717 | 
            -
                 * the right hand side of the match
         | 
| 4718 | 
            -
                 */
         | 
| 4719 | 
            -
                rb_define_method(rb_cMATCH3, "value", node_value, 0);
         | 
| 4720 | 
            -
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4721 | 
            -
             | 
| 4722 4717 | 
             
                /* Document-method: recv
         | 
| 4723 4718 | 
             
                 * the left hand side of the match
         | 
| 4724 4719 | 
             
                 */
         | 
| 4725 4720 | 
             
                rb_define_method(rb_cMATCH3, "recv", node_recv, 0);
         | 
| 4726 4721 | 
             
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 4722 | 
            +
             | 
| 4723 | 
            +
                /* Document-method: value
         | 
| 4724 | 
            +
                 * the right hand side of the match
         | 
| 4725 | 
            +
                 */
         | 
| 4726 | 
            +
                rb_define_method(rb_cMATCH3, "value", node_value, 0);
         | 
| 4727 | 
            +
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4727 4728 | 
             
              }
         | 
| 4728 4729 |  | 
| 4729 4730 | 
             
              /* Document-class: Node::MEMO
         | 
| @@ -4760,17 +4761,17 @@ void define_node_subclass_methods() | |
| 4760 4761 | 
             
                rb_iv_set(rb_cMETHOD, "__type__", INT2NUM(NODE_METHOD));
         | 
| 4761 4762 | 
             
                rb_define_singleton_method(rb_cMETHOD, "members", node_s_members, 0);
         | 
| 4762 4763 |  | 
| 4763 | 
            -
                /* Document-method: body
         | 
| 4764 | 
            -
                 * the body of the method
         | 
| 4765 | 
            -
                 */
         | 
| 4766 | 
            -
                rb_define_method(rb_cMETHOD, "body", node_body, 0);
         | 
| 4767 | 
            -
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 4768 | 
            -
             | 
| 4769 4764 | 
             
                /* Document-method: noex
         | 
| 4770 4765 | 
             
                 * the method's flags
         | 
| 4771 4766 | 
             
                 */
         | 
| 4772 4767 | 
             
                rb_define_method(rb_cMETHOD, "noex", node_noex, 0);
         | 
| 4773 4768 | 
             
                rb_ary_push(members, rb_str_new2("noex"));
         | 
| 4769 | 
            +
             | 
| 4770 | 
            +
                /* Document-method: body
         | 
| 4771 | 
            +
                 * the body of the method
         | 
| 4772 | 
            +
                 */
         | 
| 4773 | 
            +
                rb_define_method(rb_cMETHOD, "body", node_body, 0);
         | 
| 4774 | 
            +
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 4774 4775 | 
             
              }
         | 
| 4775 4776 |  | 
| 4776 4777 | 
             
              /* Document-class: Node::MODULE
         | 
| @@ -4792,17 +4793,17 @@ void define_node_subclass_methods() | |
| 4792 4793 | 
             
                rb_iv_set(rb_cMODULE, "__type__", INT2NUM(NODE_MODULE));
         | 
| 4793 4794 | 
             
                rb_define_singleton_method(rb_cMODULE, "members", node_s_members, 0);
         | 
| 4794 4795 |  | 
| 4795 | 
            -
                /* Document-method: body
         | 
| 4796 | 
            -
                 * the body of the module definition
         | 
| 4797 | 
            -
                 */
         | 
| 4798 | 
            -
                rb_define_method(rb_cMODULE, "body", node_body, 0);
         | 
| 4799 | 
            -
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 4800 | 
            -
             | 
| 4801 4796 | 
             
                /* Document-method: cpath
         | 
| 4802 4797 | 
             
                 * the name of the module to define
         | 
| 4803 4798 | 
             
                 */
         | 
| 4804 4799 | 
             
                rb_define_method(rb_cMODULE, "cpath", node_cpath, 0);
         | 
| 4805 4800 | 
             
                rb_ary_push(members, rb_str_new2("cpath"));
         | 
| 4801 | 
            +
             | 
| 4802 | 
            +
                /* Document-method: body
         | 
| 4803 | 
            +
                 * the body of the module definition
         | 
| 4804 | 
            +
                 */
         | 
| 4805 | 
            +
                rb_define_method(rb_cMODULE, "body", node_body, 0);
         | 
| 4806 | 
            +
                rb_ary_push(members, rb_str_new2("body"));
         | 
| 4806 4807 | 
             
              }
         | 
| 4807 4808 |  | 
| 4808 4809 | 
             
              /* Document-class: Node::NEWLINE
         | 
| @@ -4881,17 +4882,17 @@ void define_node_subclass_methods() | |
| 4881 4882 | 
             
                rb_iv_set(rb_cNTH_REF, "__type__", INT2NUM(NODE_NTH_REF));
         | 
| 4882 4883 | 
             
                rb_define_singleton_method(rb_cNTH_REF, "members", node_s_members, 0);
         | 
| 4883 4884 |  | 
| 4884 | 
            -
                /* Document-method: cnt
         | 
| 4885 | 
            -
                 * the index into the local variable table where the match data is stored
         | 
| 4886 | 
            -
                 */
         | 
| 4887 | 
            -
                rb_define_method(rb_cNTH_REF, "cnt", node_cnt, 0);
         | 
| 4888 | 
            -
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4889 | 
            -
             | 
| 4890 4885 | 
             
                /* Document-method: nth
         | 
| 4891 4886 | 
             
                 * the index of the match data item to retrieve
         | 
| 4892 4887 | 
             
                 */
         | 
| 4893 4888 | 
             
                rb_define_method(rb_cNTH_REF, "nth", node_nth, 0);
         | 
| 4894 4889 | 
             
                rb_ary_push(members, rb_str_new2("nth"));
         | 
| 4890 | 
            +
             | 
| 4891 | 
            +
                /* Document-method: cnt
         | 
| 4892 | 
            +
                 * the index into the local variable table where the match data is stored
         | 
| 4893 | 
            +
                 */
         | 
| 4894 | 
            +
                rb_define_method(rb_cNTH_REF, "cnt", node_cnt, 0);
         | 
| 4895 | 
            +
                rb_ary_push(members, rb_str_new2("cnt"));
         | 
| 4895 4896 | 
             
              }
         | 
| 4896 4897 |  | 
| 4897 4898 | 
             
              /* Document-class: Node::OPT_N
         | 
| @@ -4944,11 +4945,11 @@ void define_node_subclass_methods() | |
| 4944 4945 | 
             
                rb_iv_set(rb_cOP_ASGN1, "__type__", INT2NUM(NODE_OP_ASGN1));
         | 
| 4945 4946 | 
             
                rb_define_singleton_method(rb_cOP_ASGN1, "members", node_s_members, 0);
         | 
| 4946 4947 |  | 
| 4947 | 
            -
                /* Document-method:  | 
| 4948 | 
            -
                 * the  | 
| 4948 | 
            +
                /* Document-method: args
         | 
| 4949 | 
            +
                 * the arguments to the assigment
         | 
| 4949 4950 | 
             
                 */
         | 
| 4950 | 
            -
                rb_define_method(rb_cOP_ASGN1, " | 
| 4951 | 
            -
                rb_ary_push(members, rb_str_new2(" | 
| 4951 | 
            +
                rb_define_method(rb_cOP_ASGN1, "args", node_args, 0);
         | 
| 4952 | 
            +
                rb_ary_push(members, rb_str_new2("args"));
         | 
| 4952 4953 |  | 
| 4953 4954 | 
             
                /* Document-method: mid
         | 
| 4954 4955 | 
             
                 * 0, 1, or the name a method to call to calculate the value of the
         | 
| @@ -4957,11 +4958,11 @@ void define_node_subclass_methods() | |
| 4957 4958 | 
             
                rb_define_method(rb_cOP_ASGN1, "mid", node_mid, 0);
         | 
| 4958 4959 | 
             
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 4959 4960 |  | 
| 4960 | 
            -
                /* Document-method:  | 
| 4961 | 
            -
                 * the  | 
| 4961 | 
            +
                /* Document-method: recv
         | 
| 4962 | 
            +
                 * the receiver of the assignment
         | 
| 4962 4963 | 
             
                 */
         | 
| 4963 | 
            -
                rb_define_method(rb_cOP_ASGN1, " | 
| 4964 | 
            -
                rb_ary_push(members, rb_str_new2(" | 
| 4964 | 
            +
                rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
         | 
| 4965 | 
            +
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 4965 4966 | 
             
              }
         | 
| 4966 4967 |  | 
| 4967 4968 | 
             
              /* Document-class: Node::OP_ASGN2
         | 
| @@ -4984,12 +4985,6 @@ void define_node_subclass_methods() | |
| 4984 4985 | 
             
                rb_iv_set(rb_cOP_ASGN2, "__type__", INT2NUM(NODE_OP_ASGN2));
         | 
| 4985 4986 | 
             
                rb_define_singleton_method(rb_cOP_ASGN2, "members", node_s_members, 0);
         | 
| 4986 4987 |  | 
| 4987 | 
            -
                /* Document-method: value
         | 
| 4988 | 
            -
                 * the value to assign to the attribute
         | 
| 4989 | 
            -
                 */
         | 
| 4990 | 
            -
                rb_define_method(rb_cOP_ASGN2, "value", node_value, 0);
         | 
| 4991 | 
            -
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 4992 | 
            -
             | 
| 4993 4988 | 
             
                /* Document-method: recv
         | 
| 4994 4989 | 
             
                 * the receiver of the attribute
         | 
| 4995 4990 | 
             
                 */
         | 
| @@ -5002,6 +4997,12 @@ void define_node_subclass_methods() | |
| 5002 4997 | 
             
                 */
         | 
| 5003 4998 | 
             
                rb_define_method(rb_cOP_ASGN2, "next", node_next, 0);
         | 
| 5004 4999 | 
             
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 5000 | 
            +
             | 
| 5001 | 
            +
                /* Document-method: value
         | 
| 5002 | 
            +
                 * the value to assign to the attribute
         | 
| 5003 | 
            +
                 */
         | 
| 5004 | 
            +
                rb_define_method(rb_cOP_ASGN2, "value", node_value, 0);
         | 
| 5005 | 
            +
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 5005 5006 | 
             
              }
         | 
| 5006 5007 |  | 
| 5007 5008 | 
             
              /* Document-class: Node::OP_ASGN2_ARG
         | 
| @@ -5017,14 +5018,6 @@ void define_node_subclass_methods() | |
| 5017 5018 | 
             
                rb_iv_set(rb_cOP_ASGN2_ARG, "__type__", INT2NUM(NODE_OP_ASGN2_ARG));
         | 
| 5018 5019 | 
             
                rb_define_singleton_method(rb_cOP_ASGN2_ARG, "members", node_s_members, 0);
         | 
| 5019 5020 |  | 
| 5020 | 
            -
                /* Document-method: mid
         | 
| 5021 | 
            -
                 * The operation to apply to the attribute before setting it.  May
         | 
| 5022 | 
            -
                 * be 0 (false) to indicate "logical or" or 1 (nil) to indicate
         | 
| 5023 | 
            -
                 * "logical and".
         | 
| 5024 | 
            -
                 */
         | 
| 5025 | 
            -
                rb_define_method(rb_cOP_ASGN2_ARG, "mid", node_mid, 0);
         | 
| 5026 | 
            -
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 5027 | 
            -
             | 
| 5028 5021 | 
             
                /* Document-method: vid
         | 
| 5029 5022 | 
             
                 * The method to call on the receiver to retrieve the attribute
         | 
| 5030 5023 | 
             
                 */
         | 
| @@ -5036,6 +5029,14 @@ void define_node_subclass_methods() | |
| 5036 5029 | 
             
                 */
         | 
| 5037 5030 | 
             
                rb_define_method(rb_cOP_ASGN2_ARG, "aid", node_aid, 0);
         | 
| 5038 5031 | 
             
                rb_ary_push(members, rb_str_new2("aid"));
         | 
| 5032 | 
            +
             | 
| 5033 | 
            +
                /* Document-method: mid
         | 
| 5034 | 
            +
                 * The operation to apply to the attribute before setting it.  May
         | 
| 5035 | 
            +
                 * be 0 (false) to indicate "logical or" or 1 (nil) to indicate
         | 
| 5036 | 
            +
                 * "logical and".
         | 
| 5037 | 
            +
                 */
         | 
| 5038 | 
            +
                rb_define_method(rb_cOP_ASGN2_ARG, "mid", node_mid, 0);
         | 
| 5039 | 
            +
                rb_ary_push(members, rb_str_new2("mid"));
         | 
| 5039 5040 | 
             
              }
         | 
| 5040 5041 |  | 
| 5041 5042 | 
             
              /* Document-class: Node::OP_ASGN_AND
         | 
| @@ -5054,18 +5055,18 @@ void define_node_subclass_methods() | |
| 5054 5055 | 
             
                rb_iv_set(rb_cOP_ASGN_AND, "__type__", INT2NUM(NODE_OP_ASGN_AND));
         | 
| 5055 5056 | 
             
                rb_define_singleton_method(rb_cOP_ASGN_AND, "members", node_s_members, 0);
         | 
| 5056 5057 |  | 
| 5058 | 
            +
                /* Document-method: recv
         | 
| 5059 | 
            +
                 * an expression representing the left hand side of the assignment
         | 
| 5060 | 
            +
                 */
         | 
| 5061 | 
            +
                rb_define_method(rb_cOP_ASGN_AND, "recv", node_recv, 0);
         | 
| 5062 | 
            +
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 5063 | 
            +
             | 
| 5057 5064 | 
             
                /* Document-method: value
         | 
| 5058 5065 | 
             
                 * an expression representing the assignment that should be
         | 
| 5059 5066 | 
             
                 * performed if the left hand side is true
         | 
| 5060 5067 | 
             
                 */
         | 
| 5061 5068 | 
             
                rb_define_method(rb_cOP_ASGN_AND, "value", node_value, 0);
         | 
| 5062 5069 | 
             
                rb_ary_push(members, rb_str_new2("value"));
         | 
| 5063 | 
            -
             | 
| 5064 | 
            -
                /* Document-method: recv
         | 
| 5065 | 
            -
                 * an expression representing the left hand side of the assignment
         | 
| 5066 | 
            -
                 */
         | 
| 5067 | 
            -
                rb_define_method(rb_cOP_ASGN_AND, "recv", node_recv, 0);
         | 
| 5068 | 
            -
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 5069 5070 | 
             
              }
         | 
| 5070 5071 |  | 
| 5071 5072 | 
             
              /* Document-class: Node::OP_ASGN_OR
         | 
| @@ -5084,6 +5085,14 @@ void define_node_subclass_methods() | |
| 5084 5085 | 
             
                rb_iv_set(rb_cOP_ASGN_OR, "__type__", INT2NUM(NODE_OP_ASGN_OR));
         | 
| 5085 5086 | 
             
                rb_define_singleton_method(rb_cOP_ASGN_OR, "members", node_s_members, 0);
         | 
| 5086 5087 |  | 
| 5088 | 
            +
                /* Document-method: aid
         | 
| 5089 | 
            +
                 * if this indicator is nonzero, ruby will check to see if the
         | 
| 5090 | 
            +
                 * provided expression is defined, otherwise it will assume that
         | 
| 5091 | 
            +
                 * the provided expression is defined.
         | 
| 5092 | 
            +
                 */
         | 
| 5093 | 
            +
                rb_define_method(rb_cOP_ASGN_OR, "aid", node_aid, 0);
         | 
| 5094 | 
            +
                rb_ary_push(members, rb_str_new2("aid"));
         | 
| 5095 | 
            +
             | 
| 5087 5096 | 
             
                /* Document-method: value
         | 
| 5088 5097 | 
             
                 * the right hand side of the assignment
         | 
| 5089 5098 | 
             
                 */
         | 
| @@ -5095,14 +5104,6 @@ void define_node_subclass_methods() | |
| 5095 5104 | 
             
                 */
         | 
| 5096 5105 | 
             
                rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
         | 
| 5097 5106 | 
             
                rb_ary_push(members, rb_str_new2("recv"));
         | 
| 5098 | 
            -
             | 
| 5099 | 
            -
                /* Document-method: aid
         | 
| 5100 | 
            -
                 * if this indicator is nonzero, ruby will check to see if the
         | 
| 5101 | 
            -
                 * provided expression is defined, otherwise it will assume that
         | 
| 5102 | 
            -
                 * the provided expression is defined.
         | 
| 5103 | 
            -
                 */
         | 
| 5104 | 
            -
                rb_define_method(rb_cOP_ASGN_OR, "aid", node_aid, 0);
         | 
| 5105 | 
            -
                rb_ary_push(members, rb_str_new2("aid"));
         | 
| 5106 5107 | 
             
              }
         | 
| 5107 5108 |  | 
| 5108 5109 | 
             
              /* Document-class: Node::OR
         | 
| @@ -5182,6 +5183,12 @@ void define_node_subclass_methods() | |
| 5182 5183 | 
             
                rb_iv_set(rb_cRESBODY, "__type__", INT2NUM(NODE_RESBODY));
         | 
| 5183 5184 | 
             
                rb_define_singleton_method(rb_cRESBODY, "members", node_s_members, 0);
         | 
| 5184 5185 |  | 
| 5186 | 
            +
                /* Document-method: head
         | 
| 5187 | 
            +
                 * the next rescue
         | 
| 5188 | 
            +
                 */
         | 
| 5189 | 
            +
                rb_define_method(rb_cRESBODY, "head", node_head, 0);
         | 
| 5190 | 
            +
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 5191 | 
            +
             | 
| 5185 5192 | 
             
                /* Document-method: body
         | 
| 5186 5193 | 
             
                 * the expresion to evaluate if the exception type matches
         | 
| 5187 5194 | 
             
                 */
         | 
| @@ -5193,12 +5200,6 @@ void define_node_subclass_methods() | |
| 5193 5200 | 
             
                 */
         | 
| 5194 5201 | 
             
                rb_define_method(rb_cRESBODY, "args", node_args, 0);
         | 
| 5195 5202 | 
             
                rb_ary_push(members, rb_str_new2("args"));
         | 
| 5196 | 
            -
             | 
| 5197 | 
            -
                /* Document-method: head
         | 
| 5198 | 
            -
                 * the next rescue
         | 
| 5199 | 
            -
                 */
         | 
| 5200 | 
            -
                rb_define_method(rb_cRESBODY, "head", node_head, 0);
         | 
| 5201 | 
            -
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 5202 5203 | 
             
              }
         | 
| 5203 5204 |  | 
| 5204 5205 | 
             
              /* Document-class: Node::RESCUE
         | 
| @@ -5238,6 +5239,12 @@ void define_node_subclass_methods() | |
| 5238 5239 | 
             
                rb_iv_set(rb_cRESCUE, "__type__", INT2NUM(NODE_RESCUE));
         | 
| 5239 5240 | 
             
                rb_define_singleton_method(rb_cRESCUE, "members", node_s_members, 0);
         | 
| 5240 5241 |  | 
| 5242 | 
            +
                /* Document-method: head
         | 
| 5243 | 
            +
                 * the body of the block to evaluate
         | 
| 5244 | 
            +
                 */
         | 
| 5245 | 
            +
                rb_define_method(rb_cRESCUE, "head", node_head, 0);
         | 
| 5246 | 
            +
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 5247 | 
            +
             | 
| 5241 5248 | 
             
                /* Document-method: resq
         | 
| 5242 5249 | 
             
                 * the expression to be evaluated if an exception is raised
         | 
| 5243 5250 | 
             
                 */
         | 
| @@ -5249,12 +5256,6 @@ void define_node_subclass_methods() | |
| 5249 5256 | 
             
                 */
         | 
| 5250 5257 | 
             
                rb_define_method(rb_cRESCUE, "else", node_else, 0);
         | 
| 5251 5258 | 
             
                rb_ary_push(members, rb_str_new2("else"));
         | 
| 5252 | 
            -
             | 
| 5253 | 
            -
                /* Document-method: head
         | 
| 5254 | 
            -
                 * the body of the block to evaluate
         | 
| 5255 | 
            -
                 */
         | 
| 5256 | 
            -
                rb_define_method(rb_cRESCUE, "head", node_head, 0);
         | 
| 5257 | 
            -
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 5258 5259 | 
             
              }
         | 
| 5259 5260 |  | 
| 5260 5261 | 
             
              /* Document-class: Node::RETRY
         | 
| @@ -5558,10 +5559,10 @@ void define_node_subclass_methods() | |
| 5558 5559 | 
             
                rb_iv_set(rb_cVALIAS, "__member__", members);
         | 
| 5559 5560 | 
             
                rb_iv_set(rb_cVALIAS, "__type__", INT2NUM(NODE_VALIAS));
         | 
| 5560 5561 | 
             
                rb_define_singleton_method(rb_cVALIAS, "members", node_s_members, 0);
         | 
| 5561 | 
            -
                rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
         | 
| 5562 | 
            -
                rb_ary_push(members, rb_str_new2("second"));
         | 
| 5563 5562 | 
             
                rb_define_method(rb_cVALIAS, "first", node_1st, 0);
         | 
| 5564 5563 | 
             
                rb_ary_push(members, rb_str_new2("first"));
         | 
| 5564 | 
            +
                rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
         | 
| 5565 | 
            +
                rb_ary_push(members, rb_str_new2("second"));
         | 
| 5565 5566 | 
             
              }
         | 
| 5566 5567 |  | 
| 5567 5568 | 
             
              /* Document-class: Node::VCALL
         | 
| @@ -5621,6 +5622,12 @@ void define_node_subclass_methods() | |
| 5621 5622 | 
             
                rb_iv_set(rb_cWHEN, "__type__", INT2NUM(NODE_WHEN));
         | 
| 5622 5623 | 
             
                rb_define_singleton_method(rb_cWHEN, "members", node_s_members, 0);
         | 
| 5623 5624 |  | 
| 5625 | 
            +
                /* Document-method: head
         | 
| 5626 | 
            +
                 * a value to compare against, or a condition to be tested
         | 
| 5627 | 
            +
                 */
         | 
| 5628 | 
            +
                rb_define_method(rb_cWHEN, "head", node_head, 0);
         | 
| 5629 | 
            +
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 5630 | 
            +
             | 
| 5624 5631 | 
             
                /* Document-method: body
         | 
| 5625 5632 | 
             
                 * an expression to evaluate if the condition evaluates to true
         | 
| 5626 5633 | 
             
                 */
         | 
| @@ -5632,12 +5639,6 @@ void define_node_subclass_methods() | |
| 5632 5639 | 
             
                 */
         | 
| 5633 5640 | 
             
                rb_define_method(rb_cWHEN, "next", node_next, 0);
         | 
| 5634 5641 | 
             
                rb_ary_push(members, rb_str_new2("next"));
         | 
| 5635 | 
            -
             | 
| 5636 | 
            -
                /* Document-method: head
         | 
| 5637 | 
            -
                 * a value to compare against, or a condition to be tested
         | 
| 5638 | 
            -
                 */
         | 
| 5639 | 
            -
                rb_define_method(rb_cWHEN, "head", node_head, 0);
         | 
| 5640 | 
            -
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 5641 5642 | 
             
              }
         | 
| 5642 5643 |  | 
| 5643 5644 | 
             
              /* Document-class: Node::WHILE
         | 
| @@ -5703,17 +5704,17 @@ void define_node_subclass_methods() | |
| 5703 5704 | 
             
                rb_iv_set(rb_cYIELD, "__type__", INT2NUM(NODE_YIELD));
         | 
| 5704 5705 | 
             
                rb_define_singleton_method(rb_cYIELD, "members", node_s_members, 0);
         | 
| 5705 5706 |  | 
| 5706 | 
            -
                /* Document-method: state
         | 
| 5707 | 
            -
                 * if nonzero, splats the value before yielding
         | 
| 5708 | 
            -
                 */
         | 
| 5709 | 
            -
                rb_define_method(rb_cYIELD, "state", node_state, 0);
         | 
| 5710 | 
            -
                rb_ary_push(members, rb_str_new2("state"));
         | 
| 5711 | 
            -
             | 
| 5712 5707 | 
             
                /* Document-method: head
         | 
| 5713 5708 | 
             
                 * the value to yield
         | 
| 5714 5709 | 
             
                 */
         | 
| 5715 5710 | 
             
                rb_define_method(rb_cYIELD, "head", node_head, 0);
         | 
| 5716 5711 | 
             
                rb_ary_push(members, rb_str_new2("head"));
         | 
| 5712 | 
            +
             | 
| 5713 | 
            +
                /* Document-method: state
         | 
| 5714 | 
            +
                 * if nonzero, splats the value before yielding
         | 
| 5715 | 
            +
                 */
         | 
| 5716 | 
            +
                rb_define_method(rb_cYIELD, "state", node_state, 0);
         | 
| 5717 | 
            +
                rb_ary_push(members, rb_str_new2("state"));
         | 
| 5717 5718 | 
             
              }
         | 
| 5718 5719 |  | 
| 5719 5720 | 
             
              /* Document-class: Node::ZARRAY
         |