ruby-internal 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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