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
@@ -3,6 +3,7 @@
3
3
 
4
4
  st_table * rb_global_tbl;
5
5
 
6
+ #define global_variable rb_global_variable
6
7
  #define global_entry rb_global_entry
7
8
  #define gvar_getter_t rb_gvar_getter_t
8
9
  #define gvar_setter_t rb_gvar_setter_t
@@ -25,6 +26,9 @@ struct global_variable {
25
26
  #define undef_getter rb_gvar_undef_getter
26
27
  #define undef_setter rb_gvar_undef_setter
27
28
  #define undef_marker rb_gvar_undef_marker
29
+ #define val_getter rb_gvar_val_getter
30
+ #define val_setter rb_gvar_val_setter
31
+ #define val_marker rb_gvar_val_marker
28
32
  struct global_entry*
29
33
  rb_global_entry(ID id)
30
34
  {
@@ -2,62 +2,62 @@
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_CFNC, NEN_CNT, NEN_VALUE, "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_OPT, NEN_REST, NEN_CNT, "ARGS" },
10
+ { NODE_ARGS, NEN_REST, NEN_OPT, NEN_CNT, "ARGS" },
11
11
  { NODE_ARGSCAT, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSCAT" },
12
12
  { NODE_ARGSPUSH, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSPUSH" },
13
- { NODE_ARRAY, NEN_NEXT, NEN_HEAD, NEN_ALEN, "ARRAY" },
14
- { NODE_ATTRASGN, NEN_ARGS, NEN_MID, NEN_RECV, "ATTRASGN" },
13
+ { NODE_ARRAY, NEN_ALEN, NEN_HEAD, NEN_NEXT, "ARRAY" },
14
+ { NODE_ATTRASGN, NEN_RECV, NEN_ARGS, NEN_MID, "ATTRASGN" },
15
15
  { NODE_BACK_REF, NEN_NTH, NEN_CNT, NEN_NONE, "BACK_REF" },
16
16
  { NODE_BEGIN, NEN_BODY, NEN_NONE, NEN_NONE, "BEGIN" },
17
- { NODE_BLOCK, NEN_NEXT, NEN_HEAD, NEN_NONE, "BLOCK" },
17
+ { NODE_BLOCK, NEN_HEAD, NEN_NEXT, NEN_NONE, "BLOCK" },
18
18
  { NODE_BLOCK_ARG, NEN_CNT, NEN_NONE, NEN_NONE, "BLOCK_ARG" },
19
- { NODE_BLOCK_PASS, NEN_ITER, NEN_BODY, NEN_NONE, "BLOCK_PASS" },
19
+ { NODE_BLOCK_PASS, NEN_BODY, NEN_ITER, NEN_NONE, "BLOCK_PASS" },
20
20
  { NODE_BMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "BMETHOD" },
21
21
  { NODE_BREAK, NEN_STTS, NEN_NONE, NEN_NONE, "BREAK" },
22
22
  { NODE_CALL, NEN_ARGS, NEN_MID, NEN_RECV, "CALL" },
23
- { NODE_CASE, NEN_NEXT, NEN_HEAD, NEN_BODY, "CASE" },
24
- { NODE_CDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CDECL" },
23
+ { NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
24
+ { NODE_CDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CDECL" },
25
25
  { NODE_CLASS, NEN_SUPER, NEN_CPATH, NEN_BODY, "CLASS" },
26
26
  { NODE_COLON2, NEN_HEAD, NEN_MID, NEN_NONE, "COLON2" },
27
27
  { NODE_COLON3, NEN_MID, NEN_NONE, NEN_NONE, "COLON3" },
28
28
  { NODE_CONST, NEN_VID, NEN_NONE, NEN_NONE, "CONST" },
29
29
  { NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
30
- { NODE_CVASGN, NEN_VID, NEN_VALUE, NEN_NONE, "CVASGN" },
31
- { NODE_CVDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CVDECL" },
32
- { NODE_DASGN, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN" },
33
- { NODE_DASGN_CURR, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN_CURR" },
30
+ { NODE_CVASGN, NEN_VALUE, NEN_VID, NEN_NONE, "CVASGN" },
31
+ { NODE_CVDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CVDECL" },
32
+ { NODE_DASGN, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN" },
33
+ { NODE_DASGN_CURR, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN_CURR" },
34
34
  { NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
35
- { NODE_DEFN, NEN_NOEX, NEN_DEFN, NEN_MID, "DEFN" },
36
- { NODE_DEFS, NEN_DEFN, NEN_MID, NEN_RECV, "DEFS" },
37
- { NODE_DOT2, NEN_STATE, NEN_BEG, NEN_END, "DOT2" },
38
- { NODE_DOT3, NEN_STATE, NEN_BEG, NEN_END, "DOT3" },
39
- { NODE_DREGX, NEN_NEXT, NEN_CFLAG, NEN_LIT, "DREGX" },
40
- { NODE_DREGX_ONCE, NEN_NEXT, NEN_CFLAG, NEN_LIT, "DREGX_ONCE" },
41
- { NODE_DSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DSTR" },
42
- { NODE_DSYM, NEN_NEXT, NEN_LIT, NEN_NONE, "DSYM" },
35
+ { NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
36
+ { NODE_DEFS, NEN_DEFN, NEN_RECV, NEN_MID, "DEFS" },
37
+ { NODE_DOT2, NEN_BEG, NEN_END, NEN_STATE, "DOT2" },
38
+ { NODE_DOT3, NEN_BEG, NEN_END, NEN_STATE, "DOT3" },
39
+ { NODE_DREGX, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX" },
40
+ { NODE_DREGX_ONCE, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX_ONCE" },
41
+ { NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
42
+ { NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
43
43
  { NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
44
- { NODE_DXSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DXSTR" },
44
+ { NODE_DXSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DXSTR" },
45
45
  { NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
46
46
  { NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
47
47
  { NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
48
48
  { NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
49
49
  { NODE_FLIP2, NEN_CNT, NEN_BEG, NEN_END, "FLIP2" },
50
50
  { NODE_FLIP3, NEN_CNT, NEN_BEG, NEN_END, "FLIP3" },
51
- { NODE_FOR, NEN_ITER, NEN_VAR, NEN_BODY, "FOR" },
52
- { NODE_GASGN, NEN_VID, NEN_ENTRY, NEN_VALUE, "GASGN" },
51
+ { NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
52
+ { NODE_GASGN, NEN_VALUE, NEN_VID, NEN_ENTRY, "GASGN" },
53
53
  { NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
54
54
  { NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
55
- { NODE_IASGN, NEN_VID, NEN_VALUE, NEN_NONE, "IASGN" },
56
- { NODE_IF, NEN_ELSE, NEN_COND, NEN_BODY, "IF" },
57
- { NODE_IFUNC, NEN_TVAL, NEN_STATE, NEN_CFNC, "IFUNC" },
58
- { NODE_ITER, NEN_ITER, NEN_VAR, NEN_BODY, "ITER" },
55
+ { NODE_IASGN, NEN_VALUE, NEN_VID, NEN_NONE, "IASGN" },
56
+ { NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
57
+ { NODE_IFUNC, NEN_CFNC, NEN_TVAL, NEN_STATE, "IFUNC" },
58
+ { NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
59
59
  { NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
60
- { NODE_LASGN, NEN_VID, NEN_CNT, NEN_VALUE, "LASGN" },
60
+ { NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
61
61
  { NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
62
62
  { NODE_LVAR, NEN_VID, NEN_CNT, NEN_NONE, "LVAR" },
63
63
  { NODE_MASGN, NEN_ARGS, NEN_HEAD, NEN_VALUE, "MASGN" },
@@ -71,19 +71,19 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
71
71
  { NODE_NTH_REF, NEN_NTH, NEN_CNT, NEN_NONE, "NTH_REF" },
72
72
  { NODE_OPT_N, NEN_BODY, NEN_NONE, NEN_NONE, "OPT_N" },
73
73
  { NODE_OP_ASGN1, NEN_ARGS, NEN_MID, NEN_RECV, "OP_ASGN1" },
74
- { NODE_OP_ASGN2, NEN_NEXT, NEN_RECV, NEN_VALUE, "OP_ASGN2" },
75
- { NODE_OP_ASGN2_ARG, NEN_AID, NEN_MID, NEN_VID, "OP_ASGN2_ARG" },
74
+ { NODE_OP_ASGN2, NEN_RECV, NEN_NEXT, NEN_VALUE, "OP_ASGN2" },
75
+ { NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID, NEN_MID, "OP_ASGN2_ARG" },
76
76
  { NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
77
- { NODE_OP_ASGN_OR, NEN_AID, NEN_RECV, NEN_VALUE, "OP_ASGN_OR" },
77
+ { NODE_OP_ASGN_OR, NEN_AID, NEN_VALUE, NEN_RECV, "OP_ASGN_OR" },
78
78
  { NODE_OR, NEN_2ND, NEN_1ST, NEN_NONE, "OR" },
79
79
  { NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
80
80
  { NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
81
- { NODE_RESBODY, NEN_ARGS, NEN_HEAD, NEN_BODY, "RESBODY" },
82
- { NODE_RESCUE, NEN_ELSE, NEN_HEAD, NEN_RESQ, "RESCUE" },
81
+ { NODE_RESBODY, NEN_HEAD, NEN_BODY, NEN_ARGS, "RESBODY" },
82
+ { NODE_RESCUE, NEN_HEAD, NEN_RESQ, NEN_ELSE, "RESCUE" },
83
83
  { NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
84
84
  { NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
85
- { NODE_SCLASS, NEN_RECV, NEN_BODY, NEN_NONE, "SCLASS" },
86
- { NODE_SCOPE, NEN_NEXT, NEN_TBL, NEN_RVAL, "SCOPE" },
85
+ { NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
86
+ { NODE_SCOPE, NEN_TBL, NEN_RVAL, NEN_NEXT, "SCOPE" },
87
87
  { NODE_SELF, NEN_NONE, NEN_NONE, NEN_NONE, "SELF" },
88
88
  { NODE_SPLAT, NEN_HEAD, NEN_NONE, NEN_NONE, "SPLAT" },
89
89
  { NODE_STR, NEN_LIT, NEN_NONE, NEN_NONE, "STR" },
@@ -91,13 +91,13 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
91
91
  { NODE_TO_ARY, NEN_HEAD, NEN_NONE, NEN_NONE, "TO_ARY" },
92
92
  { NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
93
93
  { NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
94
- { NODE_UNTIL, NEN_STATE, NEN_COND, NEN_BODY, "UNTIL" },
95
- { NODE_VALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "VALIAS" },
94
+ { NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
95
+ { NODE_VALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "VALIAS" },
96
96
  { NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
97
- { NODE_WHEN, NEN_NEXT, NEN_HEAD, NEN_BODY, "WHEN" },
98
- { NODE_WHILE, NEN_STATE, NEN_COND, NEN_BODY, "WHILE" },
97
+ { NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
98
+ { NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
99
99
  { NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
100
- { NODE_YIELD, NEN_STATE, NEN_HEAD, NEN_NONE, "YIELD" },
100
+ { NODE_YIELD, NEN_HEAD, NEN_STATE, NEN_NONE, "YIELD" },
101
101
  { NODE_ZARRAY, NEN_NONE, NEN_NONE, NEN_NONE, "ZARRAY" },
102
102
  { NODE_ZSUPER, NEN_NONE, NEN_NONE, NEN_NONE, "ZSUPER" },
103
103
  { NODE_LAST, NEN_NONE, NEN_NONE, NEN_NONE, "LAST" },
@@ -2822,10 +2822,10 @@ void define_node_subclass_methods()
2822
2822
  rb_iv_set(rb_cALIAS, "__member__", members);
2823
2823
  rb_iv_set(rb_cALIAS, "__type__", INT2NUM(NODE_ALIAS));
2824
2824
  rb_define_singleton_method(rb_cALIAS, "members", node_s_members, 0);
2825
- rb_define_method(rb_cALIAS, "second", node_2nd, 0);
2826
- rb_ary_push(members, rb_str_new2("second"));
2827
2825
  rb_define_method(rb_cALIAS, "first", node_1st, 0);
2828
2826
  rb_ary_push(members, rb_str_new2("first"));
2827
+ rb_define_method(rb_cALIAS, "second", node_2nd, 0);
2828
+ rb_ary_push(members, rb_str_new2("second"));
2829
2829
  }
2830
2830
 
2831
2831
  /* Document-class: Node::ALLOCA
@@ -2849,17 +2849,17 @@ void define_node_subclass_methods()
2849
2849
  rb_define_method(rb_cALLOCA, "cfnc", node_cfnc, 0);
2850
2850
  rb_ary_push(members, rb_str_new2("cfnc"));
2851
2851
 
2852
- /* Document-method: cnt
2853
- * the number of bytes allocated
2854
- */
2855
- rb_define_method(rb_cALLOCA, "cnt", node_cnt, 0);
2856
- rb_ary_push(members, rb_str_new2("cnt"));
2857
-
2858
2852
  /* Document-method: value
2859
2853
  * a pointer to the previously allocated temporary node
2860
2854
  */
2861
2855
  rb_define_method(rb_cALLOCA, "value", node_value, 0);
2862
2856
  rb_ary_push(members, rb_str_new2("value"));
2857
+
2858
+ /* Document-method: cnt
2859
+ * the number of bytes allocated
2860
+ */
2861
+ rb_define_method(rb_cALLOCA, "cnt", node_cnt, 0);
2862
+ rb_ary_push(members, rb_str_new2("cnt"));
2863
2863
  }
2864
2864
  #endif
2865
2865
 
@@ -2902,6 +2902,12 @@ void define_node_subclass_methods()
2902
2902
  rb_iv_set(rb_cARGS, "__type__", INT2NUM(NODE_ARGS));
2903
2903
  rb_define_singleton_method(rb_cARGS, "members", node_s_members, 0);
2904
2904
 
2905
+ /* Document-method: rest
2906
+ * an assignment node to assign the rest arg, if it is present
2907
+ */
2908
+ rb_define_method(rb_cARGS, "rest", node_rest, 0);
2909
+ rb_ary_push(members, rb_str_new2("rest"));
2910
+
2905
2911
  /* Document-method: opt
2906
2912
  * a list of assignment nodes to assign default values to the
2907
2913
  * optional arguments if no argument is specified
@@ -2909,12 +2915,6 @@ void define_node_subclass_methods()
2909
2915
  rb_define_method(rb_cARGS, "opt", node_opt, 0);
2910
2916
  rb_ary_push(members, rb_str_new2("opt"));
2911
2917
 
2912
- /* Document-method: rest
2913
- * an assignment node to assign the rest arg, if it is present
2914
- */
2915
- rb_define_method(rb_cARGS, "rest", node_rest, 0);
2916
- rb_ary_push(members, rb_str_new2("rest"));
2917
-
2918
2918
  /* Document-method: cnt
2919
2919
  * the number of required arguments
2920
2920
  */
@@ -2985,20 +2985,20 @@ void define_node_subclass_methods()
2985
2985
  rb_iv_set(rb_cARRAY, "__member__", members);
2986
2986
  rb_iv_set(rb_cARRAY, "__type__", INT2NUM(NODE_ARRAY));
2987
2987
  rb_define_singleton_method(rb_cARRAY, "members", node_s_members, 0);
2988
-
2989
- /* Document-method: next
2990
- * the tail of the array
2991
- */
2992
- rb_define_method(rb_cARRAY, "next", node_next, 0);
2993
- rb_ary_push(members, rb_str_new2("next"));
2988
+ rb_define_method(rb_cARRAY, "alen", node_alen, 0);
2989
+ rb_ary_push(members, rb_str_new2("alen"));
2994
2990
 
2995
2991
  /* Document-method: head
2996
2992
  * the first element of the array
2997
2993
  */
2998
2994
  rb_define_method(rb_cARRAY, "head", node_head, 0);
2999
2995
  rb_ary_push(members, rb_str_new2("head"));
3000
- rb_define_method(rb_cARRAY, "alen", node_alen, 0);
3001
- rb_ary_push(members, rb_str_new2("alen"));
2996
+
2997
+ /* Document-method: next
2998
+ * the tail of the array
2999
+ */
3000
+ rb_define_method(rb_cARRAY, "next", node_next, 0);
3001
+ rb_ary_push(members, rb_str_new2("next"));
3002
3002
  }
3003
3003
 
3004
3004
  /* Document-class: Node::ATTRASGN
@@ -3015,6 +3015,12 @@ void define_node_subclass_methods()
3015
3015
  rb_iv_set(rb_cATTRASGN, "__type__", INT2NUM(NODE_ATTRASGN));
3016
3016
  rb_define_singleton_method(rb_cATTRASGN, "members", node_s_members, 0);
3017
3017
 
3018
+ /* Document-method: recv
3019
+ * the receiver of the method
3020
+ */
3021
+ rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
3022
+ rb_ary_push(members, rb_str_new2("recv"));
3023
+
3018
3024
  /* Document-method: args
3019
3025
  * the arguments to the method
3020
3026
  */
@@ -3026,12 +3032,6 @@ void define_node_subclass_methods()
3026
3032
  */
3027
3033
  rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
3028
3034
  rb_ary_push(members, rb_str_new2("mid"));
3029
-
3030
- /* Document-method: recv
3031
- * the receiver of the method
3032
- */
3033
- rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
3034
- rb_ary_push(members, rb_str_new2("recv"));
3035
3035
  }
3036
3036
 
3037
3037
  /* Document-class: Node::BACK_REF
@@ -3098,17 +3098,17 @@ void define_node_subclass_methods()
3098
3098
  rb_iv_set(rb_cBLOCK, "__type__", INT2NUM(NODE_BLOCK));
3099
3099
  rb_define_singleton_method(rb_cBLOCK, "members", node_s_members, 0);
3100
3100
 
3101
- /* Document-method: next
3102
- * the second expression in the block of code
3103
- */
3104
- rb_define_method(rb_cBLOCK, "next", node_next, 0);
3105
- rb_ary_push(members, rb_str_new2("next"));
3106
-
3107
3101
  /* Document-method: head
3108
3102
  * the first expression in the block of code
3109
3103
  */
3110
3104
  rb_define_method(rb_cBLOCK, "head", node_head, 0);
3111
3105
  rb_ary_push(members, rb_str_new2("head"));
3106
+
3107
+ /* Document-method: next
3108
+ * the second expression in the block of code
3109
+ */
3110
+ rb_define_method(rb_cBLOCK, "next", node_next, 0);
3111
+ rb_ary_push(members, rb_str_new2("next"));
3112
3112
  }
3113
3113
 
3114
3114
  /* Document-class: Node::BLOCK_ARG
@@ -3149,17 +3149,17 @@ void define_node_subclass_methods()
3149
3149
  rb_iv_set(rb_cBLOCK_PASS, "__type__", INT2NUM(NODE_BLOCK_PASS));
3150
3150
  rb_define_singleton_method(rb_cBLOCK_PASS, "members", node_s_members, 0);
3151
3151
 
3152
- /* Document-method: iter
3153
- * an expression which calls a method
3154
- */
3155
- rb_define_method(rb_cBLOCK_PASS, "iter", node_iter, 0);
3156
- rb_ary_push(members, rb_str_new2("iter"));
3157
-
3158
3152
  /* Document-method: body
3159
3153
  * the object to pass as a block
3160
3154
  */
3161
3155
  rb_define_method(rb_cBLOCK_PASS, "body", node_body, 0);
3162
3156
  rb_ary_push(members, rb_str_new2("body"));
3157
+
3158
+ /* Document-method: iter
3159
+ * an expression which calls a method
3160
+ */
3161
+ rb_define_method(rb_cBLOCK_PASS, "iter", node_iter, 0);
3162
+ rb_ary_push(members, rb_str_new2("iter"));
3163
3163
  }
3164
3164
 
3165
3165
  /* Document-class: Node::BMETHOD
@@ -3249,8 +3249,6 @@ void define_node_subclass_methods()
3249
3249
  rb_iv_set(rb_cCASE, "__member__", members);
3250
3250
  rb_iv_set(rb_cCASE, "__type__", INT2NUM(NODE_CASE));
3251
3251
  rb_define_singleton_method(rb_cCASE, "members", node_s_members, 0);
3252
- rb_define_method(rb_cCASE, "next", node_next, 0);
3253
- rb_ary_push(members, rb_str_new2("next"));
3254
3252
 
3255
3253
  /* Document-method: head
3256
3254
  * the value to select on
@@ -3264,6 +3262,8 @@ void define_node_subclass_methods()
3264
3262
  */
3265
3263
  rb_define_method(rb_cCASE, "body", node_body, 0);
3266
3264
  rb_ary_push(members, rb_str_new2("body"));
3265
+ rb_define_method(rb_cCASE, "next", node_next, 0);
3266
+ rb_ary_push(members, rb_str_new2("next"));
3267
3267
  }
3268
3268
 
3269
3269
  /* Document-class: Node::CDECL
@@ -3278,17 +3278,17 @@ void define_node_subclass_methods()
3278
3278
  rb_iv_set(rb_cCDECL, "__type__", INT2NUM(NODE_CDECL));
3279
3279
  rb_define_singleton_method(rb_cCDECL, "members", node_s_members, 0);
3280
3280
 
3281
- /* Document-method: vid
3282
- * the name of the constant to be assigned, all uppercase
3283
- */
3284
- rb_define_method(rb_cCDECL, "vid", node_vid, 0);
3285
- rb_ary_push(members, rb_str_new2("vid"));
3286
-
3287
3281
  /* Document-method: value
3288
3282
  * the value to be assigned to the constant
3289
3283
  */
3290
3284
  rb_define_method(rb_cCDECL, "value", node_value, 0);
3291
3285
  rb_ary_push(members, rb_str_new2("value"));
3286
+
3287
+ /* Document-method: vid
3288
+ * the name of the constant to be assigned, all uppercase
3289
+ */
3290
+ rb_define_method(rb_cCDECL, "vid", node_vid, 0);
3291
+ rb_ary_push(members, rb_str_new2("vid"));
3292
3292
  }
3293
3293
 
3294
3294
  /* Document-class: Node::CLASS
@@ -3434,18 +3434,18 @@ void define_node_subclass_methods()
3434
3434
  rb_iv_set(rb_cCVASGN, "__type__", INT2NUM(NODE_CVASGN));
3435
3435
  rb_define_singleton_method(rb_cCVASGN, "members", node_s_members, 0);
3436
3436
 
3437
- /* Document-method: vid
3438
- * the name of the class variable to assign
3439
- */
3440
- rb_define_method(rb_cCVASGN, "vid", node_vid, 0);
3441
- rb_ary_push(members, rb_str_new2("vid"));
3442
-
3443
3437
  /* Document-method: value
3444
3438
  * an expression whose result is the new value of the class
3445
3439
  * variable
3446
3440
  */
3447
3441
  rb_define_method(rb_cCVASGN, "value", node_value, 0);
3448
3442
  rb_ary_push(members, rb_str_new2("value"));
3443
+
3444
+ /* Document-method: vid
3445
+ * the name of the class variable to assign
3446
+ */
3447
+ rb_define_method(rb_cCVASGN, "vid", node_vid, 0);
3448
+ rb_ary_push(members, rb_str_new2("vid"));
3449
3449
  }
3450
3450
 
3451
3451
  /* Document-class: Node::CVDECL
@@ -3461,18 +3461,18 @@ void define_node_subclass_methods()
3461
3461
  rb_iv_set(rb_cCVDECL, "__type__", INT2NUM(NODE_CVDECL));
3462
3462
  rb_define_singleton_method(rb_cCVDECL, "members", node_s_members, 0);
3463
3463
 
3464
- /* Document-method: vid
3465
- * the name of the class variable to assign
3466
- */
3467
- rb_define_method(rb_cCVDECL, "vid", node_vid, 0);
3468
- rb_ary_push(members, rb_str_new2("vid"));
3469
-
3470
3464
  /* Document-method: value
3471
3465
  * an expression whose result is the new value of the class
3472
3466
  * variable
3473
3467
  */
3474
3468
  rb_define_method(rb_cCVDECL, "value", node_value, 0);
3475
3469
  rb_ary_push(members, rb_str_new2("value"));
3470
+
3471
+ /* Document-method: vid
3472
+ * the name of the class variable to assign
3473
+ */
3474
+ rb_define_method(rb_cCVDECL, "vid", node_vid, 0);
3475
+ rb_ary_push(members, rb_str_new2("vid"));
3476
3476
  }
3477
3477
 
3478
3478
  /* Document-class: Node::DASGN
@@ -3495,17 +3495,17 @@ void define_node_subclass_methods()
3495
3495
  rb_iv_set(rb_cDASGN, "__type__", INT2NUM(NODE_DASGN));
3496
3496
  rb_define_singleton_method(rb_cDASGN, "members", node_s_members, 0);
3497
3497
 
3498
- /* Document-method: vid
3499
- * the name of the local variable
3500
- */
3501
- rb_define_method(rb_cDASGN, "vid", node_vid, 0);
3502
- rb_ary_push(members, rb_str_new2("vid"));
3503
-
3504
3498
  /* Document-method: value
3505
3499
  * the value to assign to the local variable
3506
3500
  */
3507
3501
  rb_define_method(rb_cDASGN, "value", node_value, 0);
3508
3502
  rb_ary_push(members, rb_str_new2("value"));
3503
+
3504
+ /* Document-method: vid
3505
+ * the name of the local variable
3506
+ */
3507
+ rb_define_method(rb_cDASGN, "vid", node_vid, 0);
3508
+ rb_ary_push(members, rb_str_new2("vid"));
3509
3509
  }
3510
3510
 
3511
3511
  /* Document-class: Node::DASGN_CURR
@@ -3520,17 +3520,17 @@ void define_node_subclass_methods()
3520
3520
  rb_iv_set(rb_cDASGN_CURR, "__type__", INT2NUM(NODE_DASGN_CURR));
3521
3521
  rb_define_singleton_method(rb_cDASGN_CURR, "members", node_s_members, 0);
3522
3522
 
3523
- /* Document-method: vid
3524
- * the name of the local variable
3525
- */
3526
- rb_define_method(rb_cDASGN_CURR, "vid", node_vid, 0);
3527
- rb_ary_push(members, rb_str_new2("vid"));
3528
-
3529
3523
  /* Document-method: value
3530
3524
  * the value to assign to the local variable
3531
3525
  */
3532
3526
  rb_define_method(rb_cDASGN_CURR, "value", node_value, 0);
3533
3527
  rb_ary_push(members, rb_str_new2("value"));
3528
+
3529
+ /* Document-method: vid
3530
+ * the name of the local variable
3531
+ */
3532
+ rb_define_method(rb_cDASGN_CURR, "vid", node_vid, 0);
3533
+ rb_ary_push(members, rb_str_new2("vid"));
3534
3534
  }
3535
3535
 
3536
3536
  /* Document-class: Node::DEFINED
@@ -3566,12 +3566,6 @@ void define_node_subclass_methods()
3566
3566
  rb_iv_set(rb_cDEFN, "__type__", INT2NUM(NODE_DEFN));
3567
3567
  rb_define_singleton_method(rb_cDEFN, "members", node_s_members, 0);
3568
3568
 
3569
- /* Document-method: noex
3570
- * the flags which should be used to define the method
3571
- */
3572
- rb_define_method(rb_cDEFN, "noex", node_noex, 0);
3573
- rb_ary_push(members, rb_str_new2("noex"));
3574
-
3575
3569
  /* Document-method: defn
3576
3570
  * the body of the method definition
3577
3571
  */
@@ -3583,6 +3577,12 @@ void define_node_subclass_methods()
3583
3577
  */
3584
3578
  rb_define_method(rb_cDEFN, "mid", node_mid, 0);
3585
3579
  rb_ary_push(members, rb_str_new2("mid"));
3580
+
3581
+ /* Document-method: noex
3582
+ * the flags which should be used to define the method
3583
+ */
3584
+ rb_define_method(rb_cDEFN, "noex", node_noex, 0);
3585
+ rb_ary_push(members, rb_str_new2("noex"));
3586
3586
  }
3587
3587
 
3588
3588
  /* Document-class: Node::DEFS
@@ -3601,17 +3601,17 @@ void define_node_subclass_methods()
3601
3601
  rb_define_method(rb_cDEFS, "defn", node_defn, 0);
3602
3602
  rb_ary_push(members, rb_str_new2("defn"));
3603
3603
 
3604
- /* Document-method: mid
3605
- * the name of the method* defn the body of the method
3606
- */
3607
- rb_define_method(rb_cDEFS, "mid", node_mid, 0);
3608
- rb_ary_push(members, rb_str_new2("mid"));
3609
-
3610
3604
  /* Document-method: recv
3611
3605
  * the object to whose singleton class the new method is to be added
3612
3606
  */
3613
3607
  rb_define_method(rb_cDEFS, "recv", node_recv, 0);
3614
3608
  rb_ary_push(members, rb_str_new2("recv"));
3609
+
3610
+ /* Document-method: mid
3611
+ * the name of the method* defn the body of the method
3612
+ */
3613
+ rb_define_method(rb_cDEFS, "mid", node_mid, 0);
3614
+ rb_ary_push(members, rb_str_new2("mid"));
3615
3615
  }
3616
3616
 
3617
3617
  /* Document-class: Node::DOT2
@@ -3626,8 +3626,6 @@ void define_node_subclass_methods()
3626
3626
  rb_iv_set(rb_cDOT2, "__member__", members);
3627
3627
  rb_iv_set(rb_cDOT2, "__type__", INT2NUM(NODE_DOT2));
3628
3628
  rb_define_singleton_method(rb_cDOT2, "members", node_s_members, 0);
3629
- rb_define_method(rb_cDOT2, "state", node_state, 0);
3630
- rb_ary_push(members, rb_str_new2("state"));
3631
3629
 
3632
3630
  /* Document-method: beg
3633
3631
  * the beginning of the range
@@ -3640,6 +3638,8 @@ void define_node_subclass_methods()
3640
3638
  */
3641
3639
  rb_define_method(rb_cDOT2, "end", node_end, 0);
3642
3640
  rb_ary_push(members, rb_str_new2("end"));
3641
+ rb_define_method(rb_cDOT2, "state", node_state, 0);
3642
+ rb_ary_push(members, rb_str_new2("state"));
3643
3643
  }
3644
3644
 
3645
3645
  /* Document-class: Node::DOT3
@@ -3654,8 +3654,6 @@ void define_node_subclass_methods()
3654
3654
  rb_iv_set(rb_cDOT3, "__member__", members);
3655
3655
  rb_iv_set(rb_cDOT3, "__type__", INT2NUM(NODE_DOT3));
3656
3656
  rb_define_singleton_method(rb_cDOT3, "members", node_s_members, 0);
3657
- rb_define_method(rb_cDOT3, "state", node_state, 0);
3658
- rb_ary_push(members, rb_str_new2("state"));
3659
3657
 
3660
3658
  /* Document-method: beg
3661
3659
  * the beginning of the range
@@ -3668,6 +3666,8 @@ void define_node_subclass_methods()
3668
3666
  */
3669
3667
  rb_define_method(rb_cDOT3, "end", node_end, 0);
3670
3668
  rb_ary_push(members, rb_str_new2("end"));
3669
+ rb_define_method(rb_cDOT3, "state", node_state, 0);
3670
+ rb_ary_push(members, rb_str_new2("state"));
3671
3671
  }
3672
3672
 
3673
3673
  /* Document-class: Node::DREGX
@@ -3686,6 +3686,12 @@ void define_node_subclass_methods()
3686
3686
  rb_iv_set(rb_cDREGX, "__type__", INT2NUM(NODE_DREGX));
3687
3687
  rb_define_singleton_method(rb_cDREGX, "members", node_s_members, 0);
3688
3688
 
3689
+ /* Document-method: lit
3690
+ * a string
3691
+ */
3692
+ rb_define_method(rb_cDREGX, "lit", node_lit, 0);
3693
+ rb_ary_push(members, rb_str_new2("lit"));
3694
+
3689
3695
  /* Document-method: next
3690
3696
  * a list of expressions to be appended onto the string
3691
3697
  */
@@ -3708,12 +3714,6 @@ void define_node_subclass_methods()
3708
3714
  */
3709
3715
  rb_define_method(rb_cDREGX, "cflag", node_cflag, 0);
3710
3716
  rb_ary_push(members, rb_str_new2("cflag"));
3711
-
3712
- /* Document-method: lit
3713
- * a string
3714
- */
3715
- rb_define_method(rb_cDREGX, "lit", node_lit, 0);
3716
- rb_ary_push(members, rb_str_new2("lit"));
3717
3717
  }
3718
3718
 
3719
3719
  /* Document-class: Node::DREGX_ONCE
@@ -3729,6 +3729,12 @@ void define_node_subclass_methods()
3729
3729
  rb_iv_set(rb_cDREGX_ONCE, "__type__", INT2NUM(NODE_DREGX_ONCE));
3730
3730
  rb_define_singleton_method(rb_cDREGX_ONCE, "members", node_s_members, 0);
3731
3731
 
3732
+ /* Document-method: lit
3733
+ * a string
3734
+ */
3735
+ rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
3736
+ rb_ary_push(members, rb_str_new2("lit"));
3737
+
3732
3738
  /* Document-method: next
3733
3739
  * a list of expressions to be appended onto the string
3734
3740
  */
@@ -3741,12 +3747,6 @@ void define_node_subclass_methods()
3741
3747
  */
3742
3748
  rb_define_method(rb_cDREGX_ONCE, "cflag", node_cflag, 0);
3743
3749
  rb_ary_push(members, rb_str_new2("cflag"));
3744
-
3745
- /* Document-method: lit
3746
- * a string
3747
- */
3748
- rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
3749
- rb_ary_push(members, rb_str_new2("lit"));
3750
3750
  }
3751
3751
 
3752
3752
  /* Document-class: Node::DSTR
@@ -3765,17 +3765,17 @@ void define_node_subclass_methods()
3765
3765
  rb_iv_set(rb_cDSTR, "__type__", INT2NUM(NODE_DSTR));
3766
3766
  rb_define_singleton_method(rb_cDSTR, "members", node_s_members, 0);
3767
3767
 
3768
- /* Document-method: next
3769
- * a list of expressions to be appended onto the string
3770
- */
3771
- rb_define_method(rb_cDSTR, "next", node_next, 0);
3772
- rb_ary_push(members, rb_str_new2("next"));
3773
-
3774
3768
  /* Document-method: lit
3775
3769
  * a string
3776
3770
  */
3777
3771
  rb_define_method(rb_cDSTR, "lit", node_lit, 0);
3778
3772
  rb_ary_push(members, rb_str_new2("lit"));
3773
+
3774
+ /* Document-method: next
3775
+ * a list of expressions to be appended onto the string
3776
+ */
3777
+ rb_define_method(rb_cDSTR, "next", node_next, 0);
3778
+ rb_ary_push(members, rb_str_new2("next"));
3779
3779
  }
3780
3780
 
3781
3781
  /* Document-class: Node::DSYM
@@ -3796,10 +3796,10 @@ void define_node_subclass_methods()
3796
3796
  rb_iv_set(rb_cDSYM, "__member__", members);
3797
3797
  rb_iv_set(rb_cDSYM, "__type__", INT2NUM(NODE_DSYM));
3798
3798
  rb_define_singleton_method(rb_cDSYM, "members", node_s_members, 0);
3799
- rb_define_method(rb_cDSYM, "next", node_next, 0);
3800
- rb_ary_push(members, rb_str_new2("next"));
3801
3799
  rb_define_method(rb_cDSYM, "lit", node_lit, 0);
3802
3800
  rb_ary_push(members, rb_str_new2("lit"));
3801
+ rb_define_method(rb_cDSYM, "next", node_next, 0);
3802
+ rb_ary_push(members, rb_str_new2("next"));
3803
3803
  }
3804
3804
 
3805
3805
  /* Document-class: Node::DVAR
@@ -3842,17 +3842,17 @@ void define_node_subclass_methods()
3842
3842
  rb_iv_set(rb_cDXSTR, "__type__", INT2NUM(NODE_DXSTR));
3843
3843
  rb_define_singleton_method(rb_cDXSTR, "members", node_s_members, 0);
3844
3844
 
3845
- /* Document-method: next
3846
- * a list of expressions to be appended onto the string
3847
- */
3848
- rb_define_method(rb_cDXSTR, "next", node_next, 0);
3849
- rb_ary_push(members, rb_str_new2("next"));
3850
-
3851
3845
  /* Document-method: lit
3852
3846
  * a string
3853
3847
  */
3854
3848
  rb_define_method(rb_cDXSTR, "lit", node_lit, 0);
3855
3849
  rb_ary_push(members, rb_str_new2("lit"));
3850
+
3851
+ /* Document-method: next
3852
+ * a list of expressions to be appended onto the string
3853
+ */
3854
+ rb_define_method(rb_cDXSTR, "next", node_next, 0);
3855
+ rb_ary_push(members, rb_str_new2("next"));
3856
3856
  }
3857
3857
 
3858
3858
  /* Document-class: Node::ENSURE
@@ -4041,6 +4041,12 @@ void define_node_subclass_methods()
4041
4041
  rb_iv_set(rb_cFOR, "__type__", INT2NUM(NODE_FOR));
4042
4042
  rb_define_singleton_method(rb_cFOR, "members", node_s_members, 0);
4043
4043
 
4044
+ /* Document-method: body
4045
+ * the body of the loop
4046
+ */
4047
+ rb_define_method(rb_cFOR, "body", node_body, 0);
4048
+ rb_ary_push(members, rb_str_new2("body"));
4049
+
4044
4050
  /* Document-method: iter
4045
4051
  * the sequence over which to iterate
4046
4052
  */
@@ -4054,12 +4060,6 @@ void define_node_subclass_methods()
4054
4060
  */
4055
4061
  rb_define_method(rb_cFOR, "var", node_var, 0);
4056
4062
  rb_ary_push(members, rb_str_new2("var"));
4057
-
4058
- /* Document-method: body
4059
- * the body of the loop
4060
- */
4061
- rb_define_method(rb_cFOR, "body", node_body, 0);
4062
- rb_ary_push(members, rb_str_new2("body"));
4063
4063
  }
4064
4064
 
4065
4065
  /* Document-class: Node::GASGN
@@ -4073,6 +4073,12 @@ void define_node_subclass_methods()
4073
4073
  rb_iv_set(rb_cGASGN, "__type__", INT2NUM(NODE_GASGN));
4074
4074
  rb_define_singleton_method(rb_cGASGN, "members", node_s_members, 0);
4075
4075
 
4076
+ /* Document-method: value
4077
+ * an expression whose result is the new value of the global variable
4078
+ */
4079
+ rb_define_method(rb_cGASGN, "value", node_value, 0);
4080
+ rb_ary_push(members, rb_str_new2("value"));
4081
+
4076
4082
  /* Document-method: vid
4077
4083
  * the name of the global variable, with a leading '$' character.
4078
4084
  */
@@ -4080,12 +4086,6 @@ void define_node_subclass_methods()
4080
4086
  rb_ary_push(members, rb_str_new2("vid"));
4081
4087
  rb_define_method(rb_cGASGN, "entry", node_entry, 0);
4082
4088
  rb_ary_push(members, rb_str_new2("entry"));
4083
-
4084
- /* Document-method: value
4085
- * an expression whose result is the new value of the global variable
4086
- */
4087
- rb_define_method(rb_cGASGN, "value", node_value, 0);
4088
- rb_ary_push(members, rb_str_new2("value"));
4089
4089
  }
4090
4090
 
4091
4091
  /* Document-class: Node::GVAR
@@ -4138,17 +4138,17 @@ void define_node_subclass_methods()
4138
4138
  rb_iv_set(rb_cIASGN, "__type__", INT2NUM(NODE_IASGN));
4139
4139
  rb_define_singleton_method(rb_cIASGN, "members", node_s_members, 0);
4140
4140
 
4141
- /* Document-method: vid
4142
- * the name of the instance variable, with a leading '@' sign
4143
- */
4144
- rb_define_method(rb_cIASGN, "vid", node_vid, 0);
4145
- rb_ary_push(members, rb_str_new2("vid"));
4146
-
4147
4141
  /* Document-method: value
4148
4142
  * the value to assign to the instance variable
4149
4143
  */
4150
4144
  rb_define_method(rb_cIASGN, "value", node_value, 0);
4151
4145
  rb_ary_push(members, rb_str_new2("value"));
4146
+
4147
+ /* Document-method: vid
4148
+ * the name of the instance variable, with a leading '@' sign
4149
+ */
4150
+ rb_define_method(rb_cIASGN, "vid", node_vid, 0);
4151
+ rb_ary_push(members, rb_str_new2("vid"));
4152
4152
  }
4153
4153
 
4154
4154
  /* Document-class: Node::IF
@@ -4171,6 +4171,7 @@ void define_node_subclass_methods()
4171
4171
  *
4172
4172
  * A conditional block using elsif has another IF node as the else
4173
4173
  * expression.
4174
+ *
4174
4175
  */
4175
4176
  {
4176
4177
  VALUE rb_cIF = rb_define_class_under(rb_cNode, "IF", rb_cNode);
@@ -4180,13 +4181,6 @@ void define_node_subclass_methods()
4180
4181
  rb_iv_set(rb_cIF, "__type__", INT2NUM(NODE_IF));
4181
4182
  rb_define_singleton_method(rb_cIF, "members", node_s_members, 0);
4182
4183
 
4183
- /* Document-method: else
4184
- * the expression to evaluate if the expression is false, or false
4185
- * if the expression is empty
4186
- */
4187
- rb_define_method(rb_cIF, "else", node_else, 0);
4188
- rb_ary_push(members, rb_str_new2("else"));
4189
-
4190
4184
  /* Document-method: cond
4191
4185
  * the condition to evaluate
4192
4186
  */
@@ -4199,6 +4193,13 @@ void define_node_subclass_methods()
4199
4193
  */
4200
4194
  rb_define_method(rb_cIF, "body", node_body, 0);
4201
4195
  rb_ary_push(members, rb_str_new2("body"));
4196
+
4197
+ /* Document-method: else
4198
+ * the expression to evaluate if the expression is false, or false
4199
+ * if the expression is empty
4200
+ */
4201
+ rb_define_method(rb_cIF, "else", node_else, 0);
4202
+ rb_ary_push(members, rb_str_new2("else"));
4202
4203
  }
4203
4204
 
4204
4205
  /* Document-class: Node::IFUNC
@@ -4212,6 +4213,12 @@ void define_node_subclass_methods()
4212
4213
  rb_iv_set(rb_cIFUNC, "__type__", INT2NUM(NODE_IFUNC));
4213
4214
  rb_define_singleton_method(rb_cIFUNC, "members", node_s_members, 0);
4214
4215
 
4216
+ /* Document-method: cfnc
4217
+ * a pointer to the C function to which to yield
4218
+ */
4219
+ rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
4220
+ rb_ary_push(members, rb_str_new2("cfnc"));
4221
+
4215
4222
  /* Document-method: tval
4216
4223
  * the user-specified data to be passed as the second argument to
4217
4224
  * cfnc
@@ -4224,12 +4231,6 @@ void define_node_subclass_methods()
4224
4231
  */
4225
4232
  rb_define_method(rb_cIFUNC, "state", node_state, 0);
4226
4233
  rb_ary_push(members, rb_str_new2("state"));
4227
-
4228
- /* Document-method: cfnc
4229
- * a pointer to the C function to which to yield
4230
- */
4231
- rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
4232
- rb_ary_push(members, rb_str_new2("cfnc"));
4233
4234
  }
4234
4235
 
4235
4236
  /* Document-class: Node::ITER
@@ -4253,6 +4254,12 @@ void define_node_subclass_methods()
4253
4254
  rb_iv_set(rb_cITER, "__type__", INT2NUM(NODE_ITER));
4254
4255
  rb_define_singleton_method(rb_cITER, "members", node_s_members, 0);
4255
4256
 
4257
+ /* Document-method: body
4258
+ * the body of the loop
4259
+ */
4260
+ rb_define_method(rb_cITER, "body", node_body, 0);
4261
+ rb_ary_push(members, rb_str_new2("body"));
4262
+
4256
4263
  /* Document-method: iter
4257
4264
  * an expression which calls the desired iteration method, usually
4258
4265
  * recv.each
@@ -4267,12 +4274,6 @@ void define_node_subclass_methods()
4267
4274
  */
4268
4275
  rb_define_method(rb_cITER, "var", node_var, 0);
4269
4276
  rb_ary_push(members, rb_str_new2("var"));
4270
-
4271
- /* Document-method: body
4272
- * the body of the loop
4273
- */
4274
- rb_define_method(rb_cITER, "body", node_body, 0);
4275
- rb_ary_push(members, rb_str_new2("body"));
4276
4277
  }
4277
4278
 
4278
4279
  /* Document-class: Node::IVAR
@@ -4307,6 +4308,12 @@ void define_node_subclass_methods()
4307
4308
  rb_iv_set(rb_cLASGN, "__type__", INT2NUM(NODE_LASGN));
4308
4309
  rb_define_singleton_method(rb_cLASGN, "members", node_s_members, 0);
4309
4310
 
4311
+ /* Document-method: value
4312
+ * the value to assign to the local variable
4313
+ */
4314
+ rb_define_method(rb_cLASGN, "value", node_value, 0);
4315
+ rb_ary_push(members, rb_str_new2("value"));
4316
+
4310
4317
  /* Document-method: vid
4311
4318
  * the name of the local variable
4312
4319
  */
@@ -4314,12 +4321,6 @@ void define_node_subclass_methods()
4314
4321
  rb_ary_push(members, rb_str_new2("vid"));
4315
4322
  rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
4316
4323
  rb_ary_push(members, rb_str_new2("cnt"));
4317
-
4318
- /* Document-method: value
4319
- * the value to assign to the local variable
4320
- */
4321
- rb_define_method(rb_cLASGN, "value", node_value, 0);
4322
- rb_ary_push(members, rb_str_new2("value"));
4323
4324
  }
4324
4325
 
4325
4326
  /* Document-class: Node::LIT
@@ -4692,6 +4693,12 @@ void define_node_subclass_methods()
4692
4693
  rb_iv_set(rb_cOP_ASGN2, "__type__", INT2NUM(NODE_OP_ASGN2));
4693
4694
  rb_define_singleton_method(rb_cOP_ASGN2, "members", node_s_members, 0);
4694
4695
 
4696
+ /* Document-method: recv
4697
+ * the receiver of the attribute
4698
+ */
4699
+ rb_define_method(rb_cOP_ASGN2, "recv", node_recv, 0);
4700
+ rb_ary_push(members, rb_str_new2("recv"));
4701
+
4695
4702
  /* Document-method: next
4696
4703
  * another node of type OP_ASGN2 which contains more information
4697
4704
  * about the assignment operation than can fit in this node alone
@@ -4699,12 +4706,6 @@ void define_node_subclass_methods()
4699
4706
  rb_define_method(rb_cOP_ASGN2, "next", node_next, 0);
4700
4707
  rb_ary_push(members, rb_str_new2("next"));
4701
4708
 
4702
- /* Document-method: recv
4703
- * the receiver of the attribute
4704
- */
4705
- rb_define_method(rb_cOP_ASGN2, "recv", node_recv, 0);
4706
- rb_ary_push(members, rb_str_new2("recv"));
4707
-
4708
4709
  /* Document-method: value
4709
4710
  * the value to assign to the attribute
4710
4711
  */
@@ -4725,6 +4726,12 @@ void define_node_subclass_methods()
4725
4726
  rb_iv_set(rb_cOP_ASGN2_ARG, "__type__", INT2NUM(NODE_OP_ASGN2_ARG));
4726
4727
  rb_define_singleton_method(rb_cOP_ASGN2_ARG, "members", node_s_members, 0);
4727
4728
 
4729
+ /* Document-method: vid
4730
+ * The method to call on the receiver to retrieve the attribute
4731
+ */
4732
+ rb_define_method(rb_cOP_ASGN2_ARG, "vid", node_vid, 0);
4733
+ rb_ary_push(members, rb_str_new2("vid"));
4734
+
4728
4735
  /* Document-method: aid
4729
4736
  * The method to call on the receiver to set the attribute
4730
4737
  */
@@ -4738,12 +4745,6 @@ void define_node_subclass_methods()
4738
4745
  */
4739
4746
  rb_define_method(rb_cOP_ASGN2_ARG, "mid", node_mid, 0);
4740
4747
  rb_ary_push(members, rb_str_new2("mid"));
4741
-
4742
- /* Document-method: vid
4743
- * The method to call on the receiver to retrieve the attribute
4744
- */
4745
- rb_define_method(rb_cOP_ASGN2_ARG, "vid", node_vid, 0);
4746
- rb_ary_push(members, rb_str_new2("vid"));
4747
4748
  }
4748
4749
 
4749
4750
  /* Document-class: Node::OP_ASGN_AND
@@ -4800,17 +4801,17 @@ void define_node_subclass_methods()
4800
4801
  rb_define_method(rb_cOP_ASGN_OR, "aid", node_aid, 0);
4801
4802
  rb_ary_push(members, rb_str_new2("aid"));
4802
4803
 
4803
- /* Document-method: recv
4804
- * the receiver of the assignment
4805
- */
4806
- rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
4807
- rb_ary_push(members, rb_str_new2("recv"));
4808
-
4809
4804
  /* Document-method: value
4810
4805
  * the right hand side of the assignment
4811
4806
  */
4812
4807
  rb_define_method(rb_cOP_ASGN_OR, "value", node_value, 0);
4813
4808
  rb_ary_push(members, rb_str_new2("value"));
4809
+
4810
+ /* Document-method: recv
4811
+ * the receiver of the assignment
4812
+ */
4813
+ rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
4814
+ rb_ary_push(members, rb_str_new2("recv"));
4814
4815
  }
4815
4816
 
4816
4817
  /* Document-class: Node::OR
@@ -4890,12 +4891,6 @@ void define_node_subclass_methods()
4890
4891
  rb_iv_set(rb_cRESBODY, "__type__", INT2NUM(NODE_RESBODY));
4891
4892
  rb_define_singleton_method(rb_cRESBODY, "members", node_s_members, 0);
4892
4893
 
4893
- /* Document-method: args
4894
- * the expression type to match against
4895
- */
4896
- rb_define_method(rb_cRESBODY, "args", node_args, 0);
4897
- rb_ary_push(members, rb_str_new2("args"));
4898
-
4899
4894
  /* Document-method: head
4900
4895
  * the next rescue
4901
4896
  */
@@ -4907,6 +4902,12 @@ void define_node_subclass_methods()
4907
4902
  */
4908
4903
  rb_define_method(rb_cRESBODY, "body", node_body, 0);
4909
4904
  rb_ary_push(members, rb_str_new2("body"));
4905
+
4906
+ /* Document-method: args
4907
+ * the expression type to match against
4908
+ */
4909
+ rb_define_method(rb_cRESBODY, "args", node_args, 0);
4910
+ rb_ary_push(members, rb_str_new2("args"));
4910
4911
  }
4911
4912
 
4912
4913
  /* Document-class: Node::RESCUE
@@ -4946,12 +4947,6 @@ void define_node_subclass_methods()
4946
4947
  rb_iv_set(rb_cRESCUE, "__type__", INT2NUM(NODE_RESCUE));
4947
4948
  rb_define_singleton_method(rb_cRESCUE, "members", node_s_members, 0);
4948
4949
 
4949
- /* Document-method: else
4950
- * the expression to be evaluated if no exception is raised
4951
- */
4952
- rb_define_method(rb_cRESCUE, "else", node_else, 0);
4953
- rb_ary_push(members, rb_str_new2("else"));
4954
-
4955
4950
  /* Document-method: head
4956
4951
  * the body of the block to evaluate
4957
4952
  */
@@ -4963,6 +4958,12 @@ void define_node_subclass_methods()
4963
4958
  */
4964
4959
  rb_define_method(rb_cRESCUE, "resq", node_resq, 0);
4965
4960
  rb_ary_push(members, rb_str_new2("resq"));
4961
+
4962
+ /* Document-method: else
4963
+ * the expression to be evaluated if no exception is raised
4964
+ */
4965
+ rb_define_method(rb_cRESCUE, "else", node_else, 0);
4966
+ rb_ary_push(members, rb_str_new2("else"));
4966
4967
  }
4967
4968
 
4968
4969
  /* Document-class: Node::RETRY
@@ -5017,17 +5018,17 @@ void define_node_subclass_methods()
5017
5018
  rb_iv_set(rb_cSCLASS, "__type__", INT2NUM(NODE_SCLASS));
5018
5019
  rb_define_singleton_method(rb_cSCLASS, "members", node_s_members, 0);
5019
5020
 
5020
- /* Document-method: recv
5021
- * the object whose singleton class is to be modified
5022
- */
5023
- rb_define_method(rb_cSCLASS, "recv", node_recv, 0);
5024
- rb_ary_push(members, rb_str_new2("recv"));
5025
-
5026
5021
  /* Document-method: body
5027
5022
  * the body of the class definition
5028
5023
  */
5029
5024
  rb_define_method(rb_cSCLASS, "body", node_body, 0);
5030
5025
  rb_ary_push(members, rb_str_new2("body"));
5026
+
5027
+ /* Document-method: recv
5028
+ * the object whose singleton class is to be modified
5029
+ */
5030
+ rb_define_method(rb_cSCLASS, "recv", node_recv, 0);
5031
+ rb_ary_push(members, rb_str_new2("recv"));
5031
5032
  }
5032
5033
 
5033
5034
  /* Document-class: Node::SCOPE
@@ -5052,12 +5053,6 @@ void define_node_subclass_methods()
5052
5053
  rb_iv_set(rb_cSCOPE, "__type__", INT2NUM(NODE_SCOPE));
5053
5054
  rb_define_singleton_method(rb_cSCOPE, "members", node_s_members, 0);
5054
5055
 
5055
- /* Document-method: next
5056
- * the body of the lexical scope
5057
- */
5058
- rb_define_method(rb_cSCOPE, "next", node_next, 0);
5059
- rb_ary_push(members, rb_str_new2("next"));
5060
-
5061
5056
  /* Document-method: tbl
5062
5057
  * the names of the local variables* next the first expression in
5063
5058
  * the scope
@@ -5071,6 +5066,12 @@ void define_node_subclass_methods()
5071
5066
  */
5072
5067
  rb_define_method(rb_cSCOPE, "rval", node_rval, 0);
5073
5068
  rb_ary_push(members, rb_str_new2("rval"));
5069
+
5070
+ /* Document-method: next
5071
+ * the body of the lexical scope
5072
+ */
5073
+ rb_define_method(rb_cSCOPE, "next", node_next, 0);
5074
+ rb_ary_push(members, rb_str_new2("next"));
5074
5075
  }
5075
5076
 
5076
5077
  /* Document-class: Node::SELF
@@ -5212,20 +5213,20 @@ void define_node_subclass_methods()
5212
5213
  rb_iv_set(rb_cUNTIL, "__member__", members);
5213
5214
  rb_iv_set(rb_cUNTIL, "__type__", INT2NUM(NODE_UNTIL));
5214
5215
  rb_define_singleton_method(rb_cUNTIL, "members", node_s_members, 0);
5215
- rb_define_method(rb_cUNTIL, "state", node_state, 0);
5216
- rb_ary_push(members, rb_str_new2("state"));
5217
-
5218
- /* Document-method: cond
5219
- * a condition to terminate the loop when it becomes true
5220
- */
5221
- rb_define_method(rb_cUNTIL, "cond", node_cond, 0);
5222
- rb_ary_push(members, rb_str_new2("cond"));
5223
5216
 
5224
5217
  /* Document-method: body
5225
5218
  * the body of the loop
5226
5219
  */
5227
5220
  rb_define_method(rb_cUNTIL, "body", node_body, 0);
5228
5221
  rb_ary_push(members, rb_str_new2("body"));
5222
+
5223
+ /* Document-method: cond
5224
+ * a condition to terminate the loop when it becomes true
5225
+ */
5226
+ rb_define_method(rb_cUNTIL, "cond", node_cond, 0);
5227
+ rb_ary_push(members, rb_str_new2("cond"));
5228
+ rb_define_method(rb_cUNTIL, "state", node_state, 0);
5229
+ rb_ary_push(members, rb_str_new2("state"));
5229
5230
  }
5230
5231
 
5231
5232
  /* Document-class: Node::VALIAS
@@ -5241,10 +5242,10 @@ void define_node_subclass_methods()
5241
5242
  rb_iv_set(rb_cVALIAS, "__member__", members);
5242
5243
  rb_iv_set(rb_cVALIAS, "__type__", INT2NUM(NODE_VALIAS));
5243
5244
  rb_define_singleton_method(rb_cVALIAS, "members", node_s_members, 0);
5244
- rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
5245
- rb_ary_push(members, rb_str_new2("second"));
5246
5245
  rb_define_method(rb_cVALIAS, "first", node_1st, 0);
5247
5246
  rb_ary_push(members, rb_str_new2("first"));
5247
+ rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
5248
+ rb_ary_push(members, rb_str_new2("second"));
5248
5249
  }
5249
5250
 
5250
5251
  /* Document-class: Node::VCALL
@@ -5304,12 +5305,6 @@ void define_node_subclass_methods()
5304
5305
  rb_iv_set(rb_cWHEN, "__type__", INT2NUM(NODE_WHEN));
5305
5306
  rb_define_singleton_method(rb_cWHEN, "members", node_s_members, 0);
5306
5307
 
5307
- /* Document-method: next
5308
- * the next expression to be evaluated if the condition is false
5309
- */
5310
- rb_define_method(rb_cWHEN, "next", node_next, 0);
5311
- rb_ary_push(members, rb_str_new2("next"));
5312
-
5313
5308
  /* Document-method: head
5314
5309
  * a value to compare against, or a condition to be tested
5315
5310
  */
@@ -5321,6 +5316,12 @@ void define_node_subclass_methods()
5321
5316
  */
5322
5317
  rb_define_method(rb_cWHEN, "body", node_body, 0);
5323
5318
  rb_ary_push(members, rb_str_new2("body"));
5319
+
5320
+ /* Document-method: next
5321
+ * the next expression to be evaluated if the condition is false
5322
+ */
5323
+ rb_define_method(rb_cWHEN, "next", node_next, 0);
5324
+ rb_ary_push(members, rb_str_new2("next"));
5324
5325
  }
5325
5326
 
5326
5327
  /* Document-class: Node::WHILE
@@ -5336,20 +5337,20 @@ void define_node_subclass_methods()
5336
5337
  rb_iv_set(rb_cWHILE, "__member__", members);
5337
5338
  rb_iv_set(rb_cWHILE, "__type__", INT2NUM(NODE_WHILE));
5338
5339
  rb_define_singleton_method(rb_cWHILE, "members", node_s_members, 0);
5339
- rb_define_method(rb_cWHILE, "state", node_state, 0);
5340
- rb_ary_push(members, rb_str_new2("state"));
5341
-
5342
- /* Document-method: cond
5343
- * a condition to terminate the loop when it becomes false
5344
- */
5345
- rb_define_method(rb_cWHILE, "cond", node_cond, 0);
5346
- rb_ary_push(members, rb_str_new2("cond"));
5347
5340
 
5348
5341
  /* Document-method: body
5349
5342
  * the body of the loop
5350
5343
  */
5351
5344
  rb_define_method(rb_cWHILE, "body", node_body, 0);
5352
5345
  rb_ary_push(members, rb_str_new2("body"));
5346
+
5347
+ /* Document-method: cond
5348
+ * a condition to terminate the loop when it becomes false
5349
+ */
5350
+ rb_define_method(rb_cWHILE, "cond", node_cond, 0);
5351
+ rb_ary_push(members, rb_str_new2("cond"));
5352
+ rb_define_method(rb_cWHILE, "state", node_state, 0);
5353
+ rb_ary_push(members, rb_str_new2("state"));
5353
5354
  }
5354
5355
 
5355
5356
  /* Document-class: Node::XSTR
@@ -5386,17 +5387,17 @@ void define_node_subclass_methods()
5386
5387
  rb_iv_set(rb_cYIELD, "__type__", INT2NUM(NODE_YIELD));
5387
5388
  rb_define_singleton_method(rb_cYIELD, "members", node_s_members, 0);
5388
5389
 
5389
- /* Document-method: state
5390
- * if nonzero, splats the value before yielding
5391
- */
5392
- rb_define_method(rb_cYIELD, "state", node_state, 0);
5393
- rb_ary_push(members, rb_str_new2("state"));
5394
-
5395
5390
  /* Document-method: head
5396
5391
  * the value to yield
5397
5392
  */
5398
5393
  rb_define_method(rb_cYIELD, "head", node_head, 0);
5399
5394
  rb_ary_push(members, rb_str_new2("head"));
5395
+
5396
+ /* Document-method: state
5397
+ * if nonzero, splats the value before yielding
5398
+ */
5399
+ rb_define_method(rb_cYIELD, "state", node_state, 0);
5400
+ rb_ary_push(members, rb_str_new2("state"));
5400
5401
  }
5401
5402
 
5402
5403
  /* Document-class: Node::ZARRAY