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.
Files changed (36) hide show
  1. data/Rakefile +1 -1
  2. data/bin/ruby-internal-node-dump +1 -1
  3. data/bin/ruby-internal-obfuscate +1 -1
  4. data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +45 -45
  5. data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +259 -258
  6. data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +43 -43
  7. data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +261 -260
  8. data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +45 -45
  9. data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +261 -260
  10. data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +37 -37
  11. data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +219 -218
  12. data/ext/cached/ruby-1.9.1/internal/node/global_entry.h +4 -0
  13. data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +41 -41
  14. data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +231 -230
  15. data/ext/cached/ruby-1.9.2/internal/node/global_entry.h +4 -0
  16. data/ext/cached/ruby-1.9.2/internal/node/node_type_descrip.c +37 -37
  17. data/ext/cached/ruby-1.9.2/internal/node/nodeinfo.c +206 -205
  18. data/ext/cached/ruby-1.9.3/internal/node/global_entry.h +4 -0
  19. data/ext/cached/ruby-1.9.3/internal/node/node_type_descrip.c +41 -41
  20. data/ext/cached/ruby-1.9.3/internal/node/nodeinfo.c +230 -229
  21. data/ext/internal/binding/block.h +0 -20
  22. data/ext/internal/method/internal_method.h +5 -5
  23. data/ext/internal/module/classpath.c +13 -18
  24. data/ext/internal/module/classpath.h +3 -3
  25. data/ext/internal/module/getcfp.h +12 -0
  26. data/ext/internal/node/block.h +0 -20
  27. data/ext/internal/node/global_entry.h +31 -42
  28. data/ext/internal/node/global_entry.h.rpp +1 -1
  29. data/ext/internal/node/node_type_descrip.c +38 -47
  30. data/ext/internal/node/nodeinfo.c +311 -626
  31. data/ext/internal/node/nodeinfo.h +4 -1
  32. data/ext/internal/proc/block.h +0 -20
  33. data/ext/internal/tag/tag.h +0 -10
  34. data/ext/internal/vm/instruction/insns_info.c +5974 -3
  35. data/ext/internal/vm/instruction/insns_info.h +878 -0
  36. metadata +37 -51
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ task :clean do
5
5
  end
6
6
 
7
7
  task :config do
8
- ruby "setup.rb config"
8
+ ruby "setup.rb config --without-tests"
9
9
  end
10
10
 
11
11
  task :setup do
@@ -1,4 +1,4 @@
1
- #! /home/cout/.rvm/rubies/ruby-1.8.7-p358/bin/ruby
1
+ #! /home/cout/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
2
2
 
3
3
  require 'pp'
4
4
  require 'internal/node/pp'
@@ -1,4 +1,4 @@
1
- #! /home/cout/.rvm/rubies/ruby-1.8.7-p358/bin/ruby
1
+ #! /home/cout/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
2
2
 
3
3
  require 'internal/node/obfusc'
4
4
 
@@ -2,46 +2,46 @@
2
2
  #include "version.h"
3
3
 
4
4
  Node_Type_Descrip node_type_descrips_unsorted[] = {
5
- { NODE_ALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "ALIAS" },
5
+ { NODE_ALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "ALIAS" },
6
6
  #ifdef HAVE_NODE_ALLOCA
7
- { NODE_ALLOCA, NEN_VALUE, NEN_CFNC, NEN_CNT, "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, NEN_CNT, NEN_REST, NEN_OPT, "ARGS" },
11
- { NODE_ARGSCAT, NEN_BODY, NEN_HEAD, NEN_NONE, "ARGSCAT" },
12
- { NODE_ARGSPUSH, NEN_BODY, NEN_HEAD, NEN_NONE, "ARGSPUSH" },
13
- { NODE_ARRAY, NEN_ALEN, NEN_NEXT, NEN_HEAD, "ARRAY" },
14
- { NODE_ATTRASGN, NEN_RECV, NEN_MID, NEN_ARGS, "ATTRASGN" },
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, NEN_CNT, NEN_NTH, NEN_NONE, "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, NEN_NEXT, NEN_HEAD, NEN_NONE, "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, NEN_RECV, NEN_MID, NEN_ARGS, "CALL" },
24
- { NODE_CASE, NEN_BODY, NEN_NEXT, NEN_HEAD, "CASE" },
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, NEN_BODY, NEN_SUPER, NEN_CPATH, "CLASS" },
28
- { NODE_COLON2, NEN_MID, NEN_HEAD, NEN_NONE, "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, NEN_BODY, NEN_CLSS, NEN_NEXT, "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, NEN_NOEX, NEN_MID, NEN_DEFN, "DEFN" },
39
- { NODE_DEFS, NEN_RECV, NEN_MID, NEN_DEFN, "DEFS" },
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, NEN_END, NEN_BEG, NEN_STATE, "DOT2" },
42
- { NODE_DOT3, NEN_END, NEN_BEG, NEN_STATE, "DOT3" },
43
- { NODE_DREGX, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX" },
44
- { NODE_DREGX_ONCE, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX_ONCE" },
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, NEN_MID, NEN_ORIG, NEN_HEAD, "FBODY" },
53
- { NODE_FCALL, NEN_MID, NEN_ARGS, NEN_NONE, "FCALL" },
54
- { NODE_FLIP2, NEN_CNT, NEN_END, NEN_BEG, "FLIP2" },
55
- { NODE_FLIP3, NEN_CNT, NEN_END, NEN_BEG, "FLIP3" },
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, NEN_BODY, NEN_COND, NEN_ELSE, "IF" },
62
- { NODE_IFUNC, NEN_CFNC, NEN_STATE, NEN_TVAL, "IFUNC" },
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, NEN_CNT, NEN_VID, "LASGN" },
65
+ { NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
66
66
  { NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
67
- { NODE_LVAR, NEN_CNT, NEN_VID, NEN_NONE, "LVAR" },
68
- { NODE_MASGN, NEN_VALUE, NEN_ARGS, NEN_HEAD, "MASGN" },
69
- { NODE_MATCH, NEN_VALUE, NEN_LIT, NEN_NONE, "MATCH" },
70
- { NODE_MATCH2, NEN_VALUE, NEN_RECV, NEN_NONE, "MATCH2" },
71
- { NODE_MATCH3, NEN_VALUE, NEN_RECV, NEN_NONE, "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, NEN_BODY, NEN_NOEX, NEN_NONE, "METHOD" },
74
- { NODE_MODULE, NEN_BODY, NEN_CPATH, NEN_NONE, "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, NEN_CNT, NEN_NTH, NEN_NONE, "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, NEN_RECV, NEN_MID, NEN_ARGS, "OP_ASGN1" },
82
- { NODE_OP_ASGN2, NEN_VALUE, NEN_RECV, NEN_NEXT, "OP_ASGN2" },
83
- { NODE_OP_ASGN2_ARG, NEN_MID, NEN_VID, NEN_AID, "OP_ASGN2_ARG" },
84
- { NODE_OP_ASGN_AND, NEN_VALUE, NEN_RECV, NEN_NONE, "OP_ASGN_AND" },
85
- { NODE_OP_ASGN_OR, NEN_VALUE, NEN_RECV, NEN_AID, "OP_ASGN_OR" },
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, NEN_HEAD, "RESBODY" },
90
- { NODE_RESCUE, NEN_RESQ, NEN_ELSE, NEN_HEAD, "RESCUE" },
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, NEN_2ND, NEN_1ST, NEN_NONE, "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, NEN_HEAD, "WHEN" },
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, NEN_STATE, NEN_HEAD, NEN_NONE, "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: recv
3345
- * the receiver of the method
3344
+ /* Document-method: args
3345
+ * the arguments to the method
3346
3346
  */
3347
- rb_define_method(rb_cCALL, "recv", node_recv, 0);
3348
- rb_ary_push(members, rb_str_new2("recv"));
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: args
3357
- * the arguments to the method
3356
+ /* Document-method: recv
3357
+ * the receiver of the method
3358
3358
  */
3359
- rb_define_method(rb_cCALL, "args", node_args, 0);
3360
- rb_ary_push(members, rb_str_new2("args"));
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: noex
3746
- * the flags which should be used to define the method
3745
+ /* Document-method: defn
3746
+ * the body of the method definition
3747
3747
  */
3748
- rb_define_method(rb_cDEFN, "noex", node_noex, 0);
3749
- rb_ary_push(members, rb_str_new2("noex"));
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: defn
3758
- * the body of the method definition
3757
+ /* Document-method: noex
3758
+ * the flags which should be used to define the method
3759
3759
  */
3760
- rb_define_method(rb_cDEFN, "defn", node_defn, 0);
3761
- rb_ary_push(members, rb_str_new2("defn"));
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: recv
4948
- * the receiver of the assignment
4948
+ /* Document-method: args
4949
+ * the arguments to the assigment
4949
4950
  */
4950
- rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
4951
- rb_ary_push(members, rb_str_new2("recv"));
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: args
4961
- * the arguments to the assigment
4961
+ /* Document-method: recv
4962
+ * the receiver of the assignment
4962
4963
  */
4963
- rb_define_method(rb_cOP_ASGN1, "args", node_args, 0);
4964
- rb_ary_push(members, rb_str_new2("args"));
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