ruby-internal 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +1 -1
- data/bin/ruby-internal-node-dump +1 -1
- data/bin/ruby-internal-obfuscate +1 -1
- data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +45 -45
- data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +259 -258
- data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +43 -43
- data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +261 -260
- data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +45 -45
- data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +261 -260
- data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +37 -37
- data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +219 -218
- data/ext/cached/ruby-1.9.1/internal/node/global_entry.h +4 -0
- data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +41 -41
- data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +231 -230
- data/ext/cached/ruby-1.9.2/internal/node/global_entry.h +4 -0
- data/ext/cached/ruby-1.9.2/internal/node/node_type_descrip.c +37 -37
- data/ext/cached/ruby-1.9.2/internal/node/nodeinfo.c +206 -205
- data/ext/cached/ruby-1.9.3/internal/node/global_entry.h +4 -0
- data/ext/cached/ruby-1.9.3/internal/node/node_type_descrip.c +41 -41
- data/ext/cached/ruby-1.9.3/internal/node/nodeinfo.c +230 -229
- data/ext/internal/binding/block.h +0 -20
- data/ext/internal/method/internal_method.h +5 -5
- data/ext/internal/module/classpath.c +13 -18
- data/ext/internal/module/classpath.h +3 -3
- data/ext/internal/module/getcfp.h +12 -0
- data/ext/internal/node/block.h +0 -20
- data/ext/internal/node/global_entry.h +31 -42
- data/ext/internal/node/global_entry.h.rpp +1 -1
- data/ext/internal/node/node_type_descrip.c +38 -47
- data/ext/internal/node/nodeinfo.c +311 -626
- data/ext/internal/node/nodeinfo.h +4 -1
- data/ext/internal/proc/block.h +0 -20
- data/ext/internal/tag/tag.h +0 -10
- data/ext/internal/vm/instruction/insns_info.c +5974 -3
- data/ext/internal/vm/instruction/insns_info.h +878 -0
- metadata +37 -51
@@ -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,28 +2,28 @@
|
|
2
2
|
#include "version.h"
|
3
3
|
|
4
4
|
Node_Type_Descrip node_type_descrips_unsorted[] = {
|
5
|
-
{ NODE_ALIAS,
|
5
|
+
{ NODE_ALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "ALIAS" },
|
6
6
|
#ifdef HAVE_NODE_ALLOCA
|
7
|
-
{ NODE_ALLOCA, NEN_CFNC,
|
7
|
+
{ NODE_ALLOCA, NEN_CFNC, NEN_VALUE, NEN_CNT, "ALLOCA" },
|
8
8
|
#endif
|
9
9
|
{ NODE_AND, NEN_2ND, NEN_1ST, NEN_NONE, "AND" },
|
10
|
-
{ NODE_ARGS,
|
11
|
-
{ NODE_ARGSCAT,
|
12
|
-
{ NODE_ARGSPUSH,
|
13
|
-
{ NODE_ARRAY, NEN_ALEN,
|
14
|
-
{ NODE_ATTRASGN, NEN_RECV,
|
10
|
+
{ NODE_ARGS, NEN_REST, NEN_OPT, NEN_CNT, "ARGS" },
|
11
|
+
{ NODE_ARGSCAT, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSCAT" },
|
12
|
+
{ NODE_ARGSPUSH, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSPUSH" },
|
13
|
+
{ NODE_ARRAY, NEN_ALEN, NEN_HEAD, NEN_NEXT, "ARRAY" },
|
14
|
+
{ NODE_ATTRASGN, NEN_RECV, NEN_ARGS, NEN_MID, "ATTRASGN" },
|
15
15
|
{ NODE_BACK_REF, NEN_NTH, NEN_CNT, NEN_NONE, "BACK_REF" },
|
16
16
|
{ NODE_BEGIN, NEN_BODY, NEN_NONE, NEN_NONE, "BEGIN" },
|
17
|
-
{ NODE_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
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
|
-
{ NODE_CALL,
|
23
|
-
{ NODE_CASE, NEN_BODY, NEN_NEXT,
|
22
|
+
{ NODE_CALL, NEN_ARGS, NEN_MID, NEN_RECV, "CALL" },
|
23
|
+
{ NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
|
24
24
|
{ NODE_CDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CDECL" },
|
25
|
-
{ NODE_CLASS,
|
26
|
-
{ NODE_COLON2,
|
25
|
+
{ NODE_CLASS, NEN_SUPER, NEN_CPATH, NEN_BODY, "CLASS" },
|
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" },
|
@@ -32,54 +32,54 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
32
32
|
{ NODE_DASGN, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN" },
|
33
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_DEFN,
|
35
|
+
{ NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
|
36
36
|
{ NODE_DEFS, NEN_DEFN, NEN_RECV, NEN_MID, "DEFS" },
|
37
|
-
{ NODE_DOT2, NEN_END, NEN_STATE,
|
38
|
-
{ NODE_DOT3, NEN_END, NEN_STATE,
|
39
|
-
{ NODE_DREGX,
|
40
|
-
{ NODE_DREGX_ONCE,
|
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
41
|
{ NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
|
42
42
|
{ NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
|
43
43
|
{ NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
|
44
44
|
{ NODE_DXSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DXSTR" },
|
45
|
-
{ NODE_ENSURE,
|
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
|
-
{ NODE_FCALL,
|
49
|
-
{ NODE_FLIP2, NEN_CNT,
|
50
|
-
{ NODE_FLIP3, NEN_CNT,
|
48
|
+
{ NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
|
49
|
+
{ NODE_FLIP2, NEN_CNT, NEN_BEG, NEN_END, "FLIP2" },
|
50
|
+
{ NODE_FLIP3, NEN_CNT, NEN_BEG, NEN_END, "FLIP3" },
|
51
51
|
{ NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
|
52
|
-
{ NODE_GASGN,
|
53
|
-
{ NODE_GVAR,
|
52
|
+
{ NODE_GASGN, NEN_VALUE, NEN_VID, NEN_ENTRY, "GASGN" },
|
53
|
+
{ NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
|
54
54
|
{ NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
|
55
55
|
{ NODE_IASGN, NEN_VALUE, NEN_VID, NEN_NONE, "IASGN" },
|
56
|
-
{ NODE_IF,
|
57
|
-
{ NODE_IFUNC, NEN_CFNC,
|
56
|
+
{ NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
|
57
|
+
{ NODE_IFUNC, NEN_CFNC, NEN_TVAL, NEN_STATE, "IFUNC" },
|
58
58
|
{ NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
|
59
59
|
{ NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
|
60
|
-
{ NODE_LASGN,
|
60
|
+
{ NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
|
61
61
|
{ NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
|
62
|
-
{ NODE_LVAR,
|
63
|
-
{ NODE_MASGN,
|
62
|
+
{ NODE_LVAR, NEN_VID, NEN_CNT, NEN_NONE, "LVAR" },
|
63
|
+
{ NODE_MASGN, NEN_ARGS, NEN_HEAD, NEN_VALUE, "MASGN" },
|
64
64
|
{ NODE_MATCH, NEN_LIT, NEN_VALUE, NEN_NONE, "MATCH" },
|
65
65
|
{ NODE_MATCH2, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH2" },
|
66
66
|
{ NODE_MATCH3, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH3" },
|
67
67
|
{ NODE_MEMO, NEN_NONE, NEN_NONE, NEN_NONE, "MEMO" },
|
68
|
-
{ NODE_MODULE,
|
68
|
+
{ NODE_MODULE, NEN_CPATH, NEN_BODY, NEN_NONE, "MODULE" },
|
69
69
|
{ NODE_NEXT, NEN_STTS, NEN_NONE, NEN_NONE, "NEXT" },
|
70
70
|
{ NODE_NIL, NEN_NONE, NEN_NONE, NEN_NONE, "NIL" },
|
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
|
-
{ NODE_OP_ASGN1,
|
73
|
+
{ NODE_OP_ASGN1, NEN_ARGS, NEN_MID, NEN_RECV, "OP_ASGN1" },
|
74
74
|
{ NODE_OP_ASGN2, NEN_RECV, NEN_NEXT, NEN_VALUE, "OP_ASGN2" },
|
75
|
-
{ NODE_OP_ASGN2_ARG, NEN_AID, NEN_MID,
|
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,
|
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_BODY, NEN_ARGS,
|
82
|
-
{ NODE_RESCUE, NEN_RESQ, NEN_ELSE,
|
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
85
|
{ NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
|
@@ -92,12 +92,12 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
92
92
|
{ NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
|
93
93
|
{ NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
|
94
94
|
{ NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
|
95
|
-
{ NODE_VALIAS,
|
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_BODY, NEN_NEXT,
|
97
|
+
{ NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
|
98
98
|
{ NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
|
99
99
|
{ NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
|
100
|
-
{ NODE_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,12 +2902,6 @@ 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: cnt
|
2906
|
-
* the number of required arguments
|
2907
|
-
*/
|
2908
|
-
rb_define_method(rb_cARGS, "cnt", node_cnt, 0);
|
2909
|
-
rb_ary_push(members, rb_str_new2("cnt"));
|
2910
|
-
|
2911
2905
|
/* Document-method: rest
|
2912
2906
|
* an assignment node to assign the rest arg, if it is present
|
2913
2907
|
*/
|
@@ -2920,6 +2914,12 @@ void define_node_subclass_methods()
|
|
2920
2914
|
*/
|
2921
2915
|
rb_define_method(rb_cARGS, "opt", node_opt, 0);
|
2922
2916
|
rb_ary_push(members, rb_str_new2("opt"));
|
2917
|
+
|
2918
|
+
/* Document-method: cnt
|
2919
|
+
* the number of required arguments
|
2920
|
+
*/
|
2921
|
+
rb_define_method(rb_cARGS, "cnt", node_cnt, 0);
|
2922
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
2923
2923
|
}
|
2924
2924
|
|
2925
2925
|
/* Document-class: Node::ARGSCAT
|
@@ -2939,18 +2939,18 @@ void define_node_subclass_methods()
|
|
2939
2939
|
rb_iv_set(rb_cARGSCAT, "__type__", INT2NUM(NODE_ARGSCAT));
|
2940
2940
|
rb_define_singleton_method(rb_cARGSCAT, "members", node_s_members, 0);
|
2941
2941
|
|
2942
|
+
/* Document-method: head
|
2943
|
+
* a list of fixed arguments
|
2944
|
+
*/
|
2945
|
+
rb_define_method(rb_cARGSCAT, "head", node_head, 0);
|
2946
|
+
rb_ary_push(members, rb_str_new2("head"));
|
2947
|
+
|
2942
2948
|
/* Document-method: body
|
2943
2949
|
* the last argument, which will be splatted onto the end of the
|
2944
2950
|
* fixed arguments
|
2945
2951
|
*/
|
2946
2952
|
rb_define_method(rb_cARGSCAT, "body", node_body, 0);
|
2947
2953
|
rb_ary_push(members, rb_str_new2("body"));
|
2948
|
-
|
2949
|
-
/* Document-method: head
|
2950
|
-
* a list of fixed arguments
|
2951
|
-
*/
|
2952
|
-
rb_define_method(rb_cARGSCAT, "head", node_head, 0);
|
2953
|
-
rb_ary_push(members, rb_str_new2("head"));
|
2954
2954
|
}
|
2955
2955
|
|
2956
2956
|
/* Document-class: Node::ARGSPUSH
|
@@ -2967,10 +2967,10 @@ void define_node_subclass_methods()
|
|
2967
2967
|
rb_iv_set(rb_cARGSPUSH, "__member__", members);
|
2968
2968
|
rb_iv_set(rb_cARGSPUSH, "__type__", INT2NUM(NODE_ARGSPUSH));
|
2969
2969
|
rb_define_singleton_method(rb_cARGSPUSH, "members", node_s_members, 0);
|
2970
|
-
rb_define_method(rb_cARGSPUSH, "body", node_body, 0);
|
2971
|
-
rb_ary_push(members, rb_str_new2("body"));
|
2972
2970
|
rb_define_method(rb_cARGSPUSH, "head", node_head, 0);
|
2973
2971
|
rb_ary_push(members, rb_str_new2("head"));
|
2972
|
+
rb_define_method(rb_cARGSPUSH, "body", node_body, 0);
|
2973
|
+
rb_ary_push(members, rb_str_new2("body"));
|
2974
2974
|
}
|
2975
2975
|
|
2976
2976
|
/* Document-class: Node::ARRAY
|
@@ -2988,17 +2988,17 @@ void define_node_subclass_methods()
|
|
2988
2988
|
rb_define_method(rb_cARRAY, "alen", node_alen, 0);
|
2989
2989
|
rb_ary_push(members, rb_str_new2("alen"));
|
2990
2990
|
|
2991
|
-
/* Document-method: next
|
2992
|
-
* the tail of the array
|
2993
|
-
*/
|
2994
|
-
rb_define_method(rb_cARRAY, "next", node_next, 0);
|
2995
|
-
rb_ary_push(members, rb_str_new2("next"));
|
2996
|
-
|
2997
2991
|
/* Document-method: head
|
2998
2992
|
* the first element of the array
|
2999
2993
|
*/
|
3000
2994
|
rb_define_method(rb_cARRAY, "head", node_head, 0);
|
3001
2995
|
rb_ary_push(members, rb_str_new2("head"));
|
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
|
@@ -3021,17 +3021,17 @@ void define_node_subclass_methods()
|
|
3021
3021
|
rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
|
3022
3022
|
rb_ary_push(members, rb_str_new2("recv"));
|
3023
3023
|
|
3024
|
-
/* Document-method: mid
|
3025
|
-
* the id of the attribute, with a trailing '=' sign
|
3026
|
-
*/
|
3027
|
-
rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
|
3028
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
3029
|
-
|
3030
3024
|
/* Document-method: args
|
3031
3025
|
* the arguments to the method
|
3032
3026
|
*/
|
3033
3027
|
rb_define_method(rb_cATTRASGN, "args", node_args, 0);
|
3034
3028
|
rb_ary_push(members, rb_str_new2("args"));
|
3029
|
+
|
3030
|
+
/* Document-method: mid
|
3031
|
+
* the id of the attribute, with a trailing '=' sign
|
3032
|
+
*/
|
3033
|
+
rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
|
3034
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
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
|
@@ -3216,11 +3216,11 @@ void define_node_subclass_methods()
|
|
3216
3216
|
rb_iv_set(rb_cCALL, "__type__", INT2NUM(NODE_CALL));
|
3217
3217
|
rb_define_singleton_method(rb_cCALL, "members", node_s_members, 0);
|
3218
3218
|
|
3219
|
-
/* Document-method:
|
3220
|
-
* the
|
3219
|
+
/* Document-method: args
|
3220
|
+
* the arguments to the method
|
3221
3221
|
*/
|
3222
|
-
rb_define_method(rb_cCALL, "
|
3223
|
-
rb_ary_push(members, rb_str_new2("
|
3222
|
+
rb_define_method(rb_cCALL, "args", node_args, 0);
|
3223
|
+
rb_ary_push(members, rb_str_new2("args"));
|
3224
3224
|
|
3225
3225
|
/* Document-method: mid
|
3226
3226
|
* the method id
|
@@ -3228,11 +3228,11 @@ void define_node_subclass_methods()
|
|
3228
3228
|
rb_define_method(rb_cCALL, "mid", node_mid, 0);
|
3229
3229
|
rb_ary_push(members, rb_str_new2("mid"));
|
3230
3230
|
|
3231
|
-
/* Document-method:
|
3232
|
-
* the
|
3231
|
+
/* Document-method: recv
|
3232
|
+
* the receiver of the method
|
3233
3233
|
*/
|
3234
|
-
rb_define_method(rb_cCALL, "
|
3235
|
-
rb_ary_push(members, rb_str_new2("
|
3234
|
+
rb_define_method(rb_cCALL, "recv", node_recv, 0);
|
3235
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
3236
3236
|
}
|
3237
3237
|
|
3238
3238
|
/* Document-class: Node::CASE
|
@@ -3250,6 +3250,12 @@ void define_node_subclass_methods()
|
|
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
3252
|
|
3253
|
+
/* Document-method: head
|
3254
|
+
* the value to select on
|
3255
|
+
*/
|
3256
|
+
rb_define_method(rb_cCASE, "head", node_head, 0);
|
3257
|
+
rb_ary_push(members, rb_str_new2("head"));
|
3258
|
+
|
3253
3259
|
/* Document-method: body
|
3254
3260
|
* a linked list of nodes, each node representing a when
|
3255
3261
|
* conditional
|
@@ -3258,12 +3264,6 @@ void define_node_subclass_methods()
|
|
3258
3264
|
rb_ary_push(members, rb_str_new2("body"));
|
3259
3265
|
rb_define_method(rb_cCASE, "next", node_next, 0);
|
3260
3266
|
rb_ary_push(members, rb_str_new2("next"));
|
3261
|
-
|
3262
|
-
/* Document-method: head
|
3263
|
-
* the value to select on
|
3264
|
-
*/
|
3265
|
-
rb_define_method(rb_cCASE, "head", node_head, 0);
|
3266
|
-
rb_ary_push(members, rb_str_new2("head"));
|
3267
3267
|
}
|
3268
3268
|
|
3269
3269
|
/* Document-class: Node::CDECL
|
@@ -3315,12 +3315,6 @@ void define_node_subclass_methods()
|
|
3315
3315
|
rb_iv_set(rb_cCLASS, "__type__", INT2NUM(NODE_CLASS));
|
3316
3316
|
rb_define_singleton_method(rb_cCLASS, "members", node_s_members, 0);
|
3317
3317
|
|
3318
|
-
/* Document-method: body
|
3319
|
-
* the body of the class definition
|
3320
|
-
*/
|
3321
|
-
rb_define_method(rb_cCLASS, "body", node_body, 0);
|
3322
|
-
rb_ary_push(members, rb_str_new2("body"));
|
3323
|
-
|
3324
3318
|
/* Document-method: super
|
3325
3319
|
* an expression returning the base class, or false if there is no
|
3326
3320
|
* base class specified
|
@@ -3333,6 +3327,12 @@ void define_node_subclass_methods()
|
|
3333
3327
|
*/
|
3334
3328
|
rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
|
3335
3329
|
rb_ary_push(members, rb_str_new2("cpath"));
|
3330
|
+
|
3331
|
+
/* Document-method: body
|
3332
|
+
* the body of the class definition
|
3333
|
+
*/
|
3334
|
+
rb_define_method(rb_cCLASS, "body", node_body, 0);
|
3335
|
+
rb_ary_push(members, rb_str_new2("body"));
|
3336
3336
|
}
|
3337
3337
|
|
3338
3338
|
/* Document-class: Node::COLON2
|
@@ -3351,17 +3351,17 @@ void define_node_subclass_methods()
|
|
3351
3351
|
rb_iv_set(rb_cCOLON2, "__type__", INT2NUM(NODE_COLON2));
|
3352
3352
|
rb_define_singleton_method(rb_cCOLON2, "members", node_s_members, 0);
|
3353
3353
|
|
3354
|
-
/* Document-method: mid
|
3355
|
-
* the name of the method or constant to call/look up
|
3356
|
-
*/
|
3357
|
-
rb_define_method(rb_cCOLON2, "mid", node_mid, 0);
|
3358
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
3359
|
-
|
3360
3354
|
/* Document-method: head
|
3361
3355
|
* an expression specifying the class in which to do the lookup
|
3362
3356
|
*/
|
3363
3357
|
rb_define_method(rb_cCOLON2, "head", node_head, 0);
|
3364
3358
|
rb_ary_push(members, rb_str_new2("head"));
|
3359
|
+
|
3360
|
+
/* Document-method: mid
|
3361
|
+
* the name of the method or constant to call/look up
|
3362
|
+
*/
|
3363
|
+
rb_define_method(rb_cCOLON2, "mid", node_mid, 0);
|
3364
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
3365
3365
|
}
|
3366
3366
|
|
3367
3367
|
/* Document-class: Node::COLON3
|
@@ -3572,17 +3572,17 @@ void define_node_subclass_methods()
|
|
3572
3572
|
rb_define_method(rb_cDEFN, "defn", node_defn, 0);
|
3573
3573
|
rb_ary_push(members, rb_str_new2("defn"));
|
3574
3574
|
|
3575
|
-
/* Document-method: noex
|
3576
|
-
* the flags which should be used to define the method
|
3577
|
-
*/
|
3578
|
-
rb_define_method(rb_cDEFN, "noex", node_noex, 0);
|
3579
|
-
rb_ary_push(members, rb_str_new2("noex"));
|
3580
|
-
|
3581
3575
|
/* Document-method: mid
|
3582
3576
|
* the name of the method* defn the body of the method
|
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
|
@@ -3627,6 +3627,12 @@ void define_node_subclass_methods()
|
|
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
3629
|
|
3630
|
+
/* Document-method: beg
|
3631
|
+
* the beginning of the range
|
3632
|
+
*/
|
3633
|
+
rb_define_method(rb_cDOT2, "beg", node_beg, 0);
|
3634
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
3635
|
+
|
3630
3636
|
/* Document-method: end
|
3631
3637
|
* the end of the range
|
3632
3638
|
*/
|
@@ -3634,12 +3640,6 @@ void define_node_subclass_methods()
|
|
3634
3640
|
rb_ary_push(members, rb_str_new2("end"));
|
3635
3641
|
rb_define_method(rb_cDOT2, "state", node_state, 0);
|
3636
3642
|
rb_ary_push(members, rb_str_new2("state"));
|
3637
|
-
|
3638
|
-
/* Document-method: beg
|
3639
|
-
* the beginning of the range
|
3640
|
-
*/
|
3641
|
-
rb_define_method(rb_cDOT2, "beg", node_beg, 0);
|
3642
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
3643
3643
|
}
|
3644
3644
|
|
3645
3645
|
/* Document-class: Node::DOT3
|
@@ -3655,6 +3655,12 @@ void define_node_subclass_methods()
|
|
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
3657
|
|
3658
|
+
/* Document-method: beg
|
3659
|
+
* the beginning of the range
|
3660
|
+
*/
|
3661
|
+
rb_define_method(rb_cDOT3, "beg", node_beg, 0);
|
3662
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
3663
|
+
|
3658
3664
|
/* Document-method: end
|
3659
3665
|
* the end of the range
|
3660
3666
|
*/
|
@@ -3662,12 +3668,6 @@ void define_node_subclass_methods()
|
|
3662
3668
|
rb_ary_push(members, rb_str_new2("end"));
|
3663
3669
|
rb_define_method(rb_cDOT3, "state", node_state, 0);
|
3664
3670
|
rb_ary_push(members, rb_str_new2("state"));
|
3665
|
-
|
3666
|
-
/* Document-method: beg
|
3667
|
-
* the beginning of the range
|
3668
|
-
*/
|
3669
|
-
rb_define_method(rb_cDOT3, "beg", node_beg, 0);
|
3670
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
3671
3671
|
}
|
3672
3672
|
|
3673
3673
|
/* Document-class: Node::DREGX
|
@@ -3686,6 +3686,18 @@ 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
|
+
|
3695
|
+
/* Document-method: next
|
3696
|
+
* a list of expressions to be appended onto the string
|
3697
|
+
*/
|
3698
|
+
rb_define_method(rb_cDREGX, "next", node_next, 0);
|
3699
|
+
rb_ary_push(members, rb_str_new2("next"));
|
3700
|
+
|
3689
3701
|
/* Document-method: cflag
|
3690
3702
|
* a bitfield containing the options used in the regular
|
3691
3703
|
* expression. Valid values include:
|
@@ -3702,18 +3714,6 @@ void define_node_subclass_methods()
|
|
3702
3714
|
*/
|
3703
3715
|
rb_define_method(rb_cDREGX, "cflag", node_cflag, 0);
|
3704
3716
|
rb_ary_push(members, rb_str_new2("cflag"));
|
3705
|
-
|
3706
|
-
/* Document-method: lit
|
3707
|
-
* a string
|
3708
|
-
*/
|
3709
|
-
rb_define_method(rb_cDREGX, "lit", node_lit, 0);
|
3710
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
3711
|
-
|
3712
|
-
/* Document-method: next
|
3713
|
-
* a list of expressions to be appended onto the string
|
3714
|
-
*/
|
3715
|
-
rb_define_method(rb_cDREGX, "next", node_next, 0);
|
3716
|
-
rb_ary_push(members, rb_str_new2("next"));
|
3717
3717
|
}
|
3718
3718
|
|
3719
3719
|
/* Document-class: Node::DREGX_ONCE
|
@@ -3729,13 +3729,6 @@ 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: cflag
|
3733
|
-
* a bitfield containing the options used in the regular
|
3734
|
-
* expression. See DREGX for a list of valid values.
|
3735
|
-
*/
|
3736
|
-
rb_define_method(rb_cDREGX_ONCE, "cflag", node_cflag, 0);
|
3737
|
-
rb_ary_push(members, rb_str_new2("cflag"));
|
3738
|
-
|
3739
3732
|
/* Document-method: lit
|
3740
3733
|
* a string
|
3741
3734
|
*/
|
@@ -3747,6 +3740,13 @@ void define_node_subclass_methods()
|
|
3747
3740
|
*/
|
3748
3741
|
rb_define_method(rb_cDREGX_ONCE, "next", node_next, 0);
|
3749
3742
|
rb_ary_push(members, rb_str_new2("next"));
|
3743
|
+
|
3744
|
+
/* Document-method: cflag
|
3745
|
+
* a bitfield containing the options used in the regular
|
3746
|
+
* expression. See DREGX for a list of valid values.
|
3747
|
+
*/
|
3748
|
+
rb_define_method(rb_cDREGX_ONCE, "cflag", node_cflag, 0);
|
3749
|
+
rb_ary_push(members, rb_str_new2("cflag"));
|
3750
3750
|
}
|
3751
3751
|
|
3752
3752
|
/* Document-class: Node::DSTR
|
@@ -3877,17 +3877,17 @@ void define_node_subclass_methods()
|
|
3877
3877
|
rb_iv_set(rb_cENSURE, "__type__", INT2NUM(NODE_ENSURE));
|
3878
3878
|
rb_define_singleton_method(rb_cENSURE, "members", node_s_members, 0);
|
3879
3879
|
|
3880
|
-
/* Document-method: ensr
|
3881
|
-
* the expression to evaluate after the head is evaluated
|
3882
|
-
*/
|
3883
|
-
rb_define_method(rb_cENSURE, "ensr", node_ensr, 0);
|
3884
|
-
rb_ary_push(members, rb_str_new2("ensr"));
|
3885
|
-
|
3886
3880
|
/* Document-method: head
|
3887
3881
|
* the expression to protect
|
3888
3882
|
*/
|
3889
3883
|
rb_define_method(rb_cENSURE, "head", node_head, 0);
|
3890
3884
|
rb_ary_push(members, rb_str_new2("head"));
|
3885
|
+
|
3886
|
+
/* Document-method: ensr
|
3887
|
+
* the expression to evaluate after the head is evaluated
|
3888
|
+
*/
|
3889
|
+
rb_define_method(rb_cENSURE, "ensr", node_ensr, 0);
|
3890
|
+
rb_ary_push(members, rb_str_new2("ensr"));
|
3891
3891
|
}
|
3892
3892
|
|
3893
3893
|
/* Document-class: Node::EVSTR
|
@@ -3938,17 +3938,17 @@ void define_node_subclass_methods()
|
|
3938
3938
|
rb_iv_set(rb_cFCALL, "__type__", INT2NUM(NODE_FCALL));
|
3939
3939
|
rb_define_singleton_method(rb_cFCALL, "members", node_s_members, 0);
|
3940
3940
|
|
3941
|
-
/* Document-method: mid
|
3942
|
-
* the method id
|
3943
|
-
*/
|
3944
|
-
rb_define_method(rb_cFCALL, "mid", node_mid, 0);
|
3945
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
3946
|
-
|
3947
3941
|
/* Document-method: args
|
3948
3942
|
* the arguments to the method
|
3949
3943
|
*/
|
3950
3944
|
rb_define_method(rb_cFCALL, "args", node_args, 0);
|
3951
3945
|
rb_ary_push(members, rb_str_new2("args"));
|
3946
|
+
|
3947
|
+
/* Document-method: mid
|
3948
|
+
* the method id
|
3949
|
+
*/
|
3950
|
+
rb_define_method(rb_cFCALL, "mid", node_mid, 0);
|
3951
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
3952
3952
|
}
|
3953
3953
|
|
3954
3954
|
/* Document-class: Node::FLIP2
|
@@ -3972,17 +3972,17 @@ void define_node_subclass_methods()
|
|
3972
3972
|
rb_define_method(rb_cFLIP2, "cnt", node_cnt, 0);
|
3973
3973
|
rb_ary_push(members, rb_str_new2("cnt"));
|
3974
3974
|
|
3975
|
-
/* Document-method: end
|
3976
|
-
* the end of the range
|
3977
|
-
*/
|
3978
|
-
rb_define_method(rb_cFLIP2, "end", node_end, 0);
|
3979
|
-
rb_ary_push(members, rb_str_new2("end"));
|
3980
|
-
|
3981
3975
|
/* Document-method: beg
|
3982
3976
|
* the beginning of the range
|
3983
3977
|
*/
|
3984
3978
|
rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
|
3985
3979
|
rb_ary_push(members, rb_str_new2("beg"));
|
3980
|
+
|
3981
|
+
/* Document-method: end
|
3982
|
+
* the end of the range
|
3983
|
+
*/
|
3984
|
+
rb_define_method(rb_cFLIP2, "end", node_end, 0);
|
3985
|
+
rb_ary_push(members, rb_str_new2("end"));
|
3986
3986
|
}
|
3987
3987
|
|
3988
3988
|
/* Document-class: Node::FLIP3
|
@@ -4006,17 +4006,17 @@ void define_node_subclass_methods()
|
|
4006
4006
|
rb_define_method(rb_cFLIP3, "cnt", node_cnt, 0);
|
4007
4007
|
rb_ary_push(members, rb_str_new2("cnt"));
|
4008
4008
|
|
4009
|
-
/* Document-method: end
|
4010
|
-
* the end of the range
|
4011
|
-
*/
|
4012
|
-
rb_define_method(rb_cFLIP3, "end", node_end, 0);
|
4013
|
-
rb_ary_push(members, rb_str_new2("end"));
|
4014
|
-
|
4015
4009
|
/* Document-method: beg
|
4016
4010
|
* the beginning of the range
|
4017
4011
|
*/
|
4018
4012
|
rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
|
4019
4013
|
rb_ary_push(members, rb_str_new2("beg"));
|
4014
|
+
|
4015
|
+
/* Document-method: end
|
4016
|
+
* the end of the range
|
4017
|
+
*/
|
4018
|
+
rb_define_method(rb_cFLIP3, "end", node_end, 0);
|
4019
|
+
rb_ary_push(members, rb_str_new2("end"));
|
4020
4020
|
}
|
4021
4021
|
|
4022
4022
|
/* Document-class: Node::FOR
|
@@ -4072,8 +4072,6 @@ void define_node_subclass_methods()
|
|
4072
4072
|
rb_iv_set(rb_cGASGN, "__member__", members);
|
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
|
-
rb_define_method(rb_cGASGN, "entry", node_entry, 0);
|
4076
|
-
rb_ary_push(members, rb_str_new2("entry"));
|
4077
4075
|
|
4078
4076
|
/* Document-method: value
|
4079
4077
|
* an expression whose result is the new value of the global variable
|
@@ -4086,6 +4084,8 @@ void define_node_subclass_methods()
|
|
4086
4084
|
*/
|
4087
4085
|
rb_define_method(rb_cGASGN, "vid", node_vid, 0);
|
4088
4086
|
rb_ary_push(members, rb_str_new2("vid"));
|
4087
|
+
rb_define_method(rb_cGASGN, "entry", node_entry, 0);
|
4088
|
+
rb_ary_push(members, rb_str_new2("entry"));
|
4089
4089
|
}
|
4090
4090
|
|
4091
4091
|
/* Document-class: Node::GVAR
|
@@ -4098,14 +4098,14 @@ void define_node_subclass_methods()
|
|
4098
4098
|
rb_iv_set(rb_cGVAR, "__member__", members);
|
4099
4099
|
rb_iv_set(rb_cGVAR, "__type__", INT2NUM(NODE_GVAR));
|
4100
4100
|
rb_define_singleton_method(rb_cGVAR, "members", node_s_members, 0);
|
4101
|
-
rb_define_method(rb_cGVAR, "entry", node_entry, 0);
|
4102
|
-
rb_ary_push(members, rb_str_new2("entry"));
|
4103
4101
|
|
4104
4102
|
/* Document-method: vid
|
4105
4103
|
* the name of the global variable to retrieve, with a leading '$'
|
4106
4104
|
*/
|
4107
4105
|
rb_define_method(rb_cGVAR, "vid", node_vid, 0);
|
4108
4106
|
rb_ary_push(members, rb_str_new2("vid"));
|
4107
|
+
rb_define_method(rb_cGVAR, "entry", node_entry, 0);
|
4108
|
+
rb_ary_push(members, rb_str_new2("entry"));
|
4109
4109
|
}
|
4110
4110
|
|
4111
4111
|
/* Document-class: Node::HASH
|
@@ -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,6 +4181,12 @@ 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
|
|
4184
|
+
/* Document-method: cond
|
4185
|
+
* the condition to evaluate
|
4186
|
+
*/
|
4187
|
+
rb_define_method(rb_cIF, "cond", node_cond, 0);
|
4188
|
+
rb_ary_push(members, rb_str_new2("cond"));
|
4189
|
+
|
4183
4190
|
/* Document-method: body
|
4184
4191
|
* the expression to evaluate if the expression is true, or false
|
4185
4192
|
* if the expression is empty
|
@@ -4187,12 +4194,6 @@ void define_node_subclass_methods()
|
|
4187
4194
|
rb_define_method(rb_cIF, "body", node_body, 0);
|
4188
4195
|
rb_ary_push(members, rb_str_new2("body"));
|
4189
4196
|
|
4190
|
-
/* Document-method: cond
|
4191
|
-
* the condition to evaluate
|
4192
|
-
*/
|
4193
|
-
rb_define_method(rb_cIF, "cond", node_cond, 0);
|
4194
|
-
rb_ary_push(members, rb_str_new2("cond"));
|
4195
|
-
|
4196
4197
|
/* Document-method: else
|
4197
4198
|
* the expression to evaluate if the expression is false, or false
|
4198
4199
|
* if the expression is empty
|
@@ -4218,18 +4219,18 @@ void define_node_subclass_methods()
|
|
4218
4219
|
rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
|
4219
4220
|
rb_ary_push(members, rb_str_new2("cfnc"));
|
4220
4221
|
|
4221
|
-
/* Document-method: state
|
4222
|
-
* always 0
|
4223
|
-
*/
|
4224
|
-
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
4225
|
-
rb_ary_push(members, rb_str_new2("state"));
|
4226
|
-
|
4227
4222
|
/* Document-method: tval
|
4228
4223
|
* the user-specified data to be passed as the second argument to
|
4229
4224
|
* cfnc
|
4230
4225
|
*/
|
4231
4226
|
rb_define_method(rb_cIFUNC, "tval", node_tval, 0);
|
4232
4227
|
rb_ary_push(members, rb_str_new2("tval"));
|
4228
|
+
|
4229
|
+
/* Document-method: state
|
4230
|
+
* always 0
|
4231
|
+
*/
|
4232
|
+
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
4233
|
+
rb_ary_push(members, rb_str_new2("state"));
|
4233
4234
|
}
|
4234
4235
|
|
4235
4236
|
/* Document-class: Node::ITER
|
@@ -4306,8 +4307,6 @@ void define_node_subclass_methods()
|
|
4306
4307
|
rb_iv_set(rb_cLASGN, "__member__", members);
|
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
|
-
rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
|
4310
|
-
rb_ary_push(members, rb_str_new2("cnt"));
|
4311
4310
|
|
4312
4311
|
/* Document-method: value
|
4313
4312
|
* the value to assign to the local variable
|
@@ -4320,6 +4319,8 @@ void define_node_subclass_methods()
|
|
4320
4319
|
*/
|
4321
4320
|
rb_define_method(rb_cLASGN, "vid", node_vid, 0);
|
4322
4321
|
rb_ary_push(members, rb_str_new2("vid"));
|
4322
|
+
rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
|
4323
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
4323
4324
|
}
|
4324
4325
|
|
4325
4326
|
/* Document-class: Node::LIT
|
@@ -4351,14 +4352,14 @@ void define_node_subclass_methods()
|
|
4351
4352
|
rb_iv_set(rb_cLVAR, "__member__", members);
|
4352
4353
|
rb_iv_set(rb_cLVAR, "__type__", INT2NUM(NODE_LVAR));
|
4353
4354
|
rb_define_singleton_method(rb_cLVAR, "members", node_s_members, 0);
|
4354
|
-
rb_define_method(rb_cLVAR, "cnt", node_cnt, 0);
|
4355
|
-
rb_ary_push(members, rb_str_new2("cnt"));
|
4356
4355
|
|
4357
4356
|
/* Document-method: vid
|
4358
4357
|
* the name of the local variable to retrieve.
|
4359
4358
|
*/
|
4360
4359
|
rb_define_method(rb_cLVAR, "vid", node_vid, 0);
|
4361
4360
|
rb_ary_push(members, rb_str_new2("vid"));
|
4361
|
+
rb_define_method(rb_cLVAR, "cnt", node_cnt, 0);
|
4362
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
4362
4363
|
}
|
4363
4364
|
|
4364
4365
|
/* Document-class: Node::MASGN
|
@@ -4372,12 +4373,6 @@ void define_node_subclass_methods()
|
|
4372
4373
|
rb_iv_set(rb_cMASGN, "__type__", INT2NUM(NODE_MASGN));
|
4373
4374
|
rb_define_singleton_method(rb_cMASGN, "members", node_s_members, 0);
|
4374
4375
|
|
4375
|
-
/* Document-method: value
|
4376
|
-
* TODO
|
4377
|
-
*/
|
4378
|
-
rb_define_method(rb_cMASGN, "value", node_value, 0);
|
4379
|
-
rb_ary_push(members, rb_str_new2("value"));
|
4380
|
-
|
4381
4376
|
/* Document-method: args
|
4382
4377
|
* TODO
|
4383
4378
|
*/
|
@@ -4389,6 +4384,12 @@ void define_node_subclass_methods()
|
|
4389
4384
|
*/
|
4390
4385
|
rb_define_method(rb_cMASGN, "head", node_head, 0);
|
4391
4386
|
rb_ary_push(members, rb_str_new2("head"));
|
4387
|
+
|
4388
|
+
/* Document-method: value
|
4389
|
+
* TODO
|
4390
|
+
*/
|
4391
|
+
rb_define_method(rb_cMASGN, "value", node_value, 0);
|
4392
|
+
rb_ary_push(members, rb_str_new2("value"));
|
4392
4393
|
}
|
4393
4394
|
|
4394
4395
|
/* Document-class: Node::MATCH
|
@@ -4537,17 +4538,17 @@ void define_node_subclass_methods()
|
|
4537
4538
|
rb_iv_set(rb_cMODULE, "__type__", INT2NUM(NODE_MODULE));
|
4538
4539
|
rb_define_singleton_method(rb_cMODULE, "members", node_s_members, 0);
|
4539
4540
|
|
4540
|
-
/* Document-method: body
|
4541
|
-
* the body of the module definition
|
4542
|
-
*/
|
4543
|
-
rb_define_method(rb_cMODULE, "body", node_body, 0);
|
4544
|
-
rb_ary_push(members, rb_str_new2("body"));
|
4545
|
-
|
4546
4541
|
/* Document-method: cpath
|
4547
4542
|
* the name of the module to define
|
4548
4543
|
*/
|
4549
4544
|
rb_define_method(rb_cMODULE, "cpath", node_cpath, 0);
|
4550
4545
|
rb_ary_push(members, rb_str_new2("cpath"));
|
4546
|
+
|
4547
|
+
/* Document-method: body
|
4548
|
+
* the body of the module definition
|
4549
|
+
*/
|
4550
|
+
rb_define_method(rb_cMODULE, "body", node_body, 0);
|
4551
|
+
rb_ary_push(members, rb_str_new2("body"));
|
4551
4552
|
}
|
4552
4553
|
|
4553
4554
|
/* Document-class: Node::NEXT
|
@@ -4652,11 +4653,11 @@ void define_node_subclass_methods()
|
|
4652
4653
|
rb_iv_set(rb_cOP_ASGN1, "__type__", INT2NUM(NODE_OP_ASGN1));
|
4653
4654
|
rb_define_singleton_method(rb_cOP_ASGN1, "members", node_s_members, 0);
|
4654
4655
|
|
4655
|
-
/* Document-method:
|
4656
|
-
* the
|
4656
|
+
/* Document-method: args
|
4657
|
+
* the arguments to the assigment
|
4657
4658
|
*/
|
4658
|
-
rb_define_method(rb_cOP_ASGN1, "
|
4659
|
-
rb_ary_push(members, rb_str_new2("
|
4659
|
+
rb_define_method(rb_cOP_ASGN1, "args", node_args, 0);
|
4660
|
+
rb_ary_push(members, rb_str_new2("args"));
|
4660
4661
|
|
4661
4662
|
/* Document-method: mid
|
4662
4663
|
* 0, 1, or the name a method to call to calculate the value of the
|
@@ -4665,11 +4666,11 @@ void define_node_subclass_methods()
|
|
4665
4666
|
rb_define_method(rb_cOP_ASGN1, "mid", node_mid, 0);
|
4666
4667
|
rb_ary_push(members, rb_str_new2("mid"));
|
4667
4668
|
|
4668
|
-
/* Document-method:
|
4669
|
-
* the
|
4669
|
+
/* Document-method: recv
|
4670
|
+
* the receiver of the assignment
|
4670
4671
|
*/
|
4671
|
-
rb_define_method(rb_cOP_ASGN1, "
|
4672
|
-
rb_ary_push(members, rb_str_new2("
|
4672
|
+
rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
|
4673
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
4673
4674
|
}
|
4674
4675
|
|
4675
4676
|
/* Document-class: Node::OP_ASGN2
|
@@ -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
|
@@ -4792,12 +4793,6 @@ void define_node_subclass_methods()
|
|
4792
4793
|
rb_iv_set(rb_cOP_ASGN_OR, "__type__", INT2NUM(NODE_OP_ASGN_OR));
|
4793
4794
|
rb_define_singleton_method(rb_cOP_ASGN_OR, "members", node_s_members, 0);
|
4794
4795
|
|
4795
|
-
/* Document-method: recv
|
4796
|
-
* the receiver of the assignment
|
4797
|
-
*/
|
4798
|
-
rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
|
4799
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
4800
|
-
|
4801
4796
|
/* Document-method: aid
|
4802
4797
|
* if this indicator is nonzero, ruby will check to see if the
|
4803
4798
|
* provided expression is defined, otherwise it will assume that
|
@@ -4811,6 +4806,12 @@ void define_node_subclass_methods()
|
|
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,6 +4891,12 @@ 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
|
|
4894
|
+
/* Document-method: head
|
4895
|
+
* the next rescue
|
4896
|
+
*/
|
4897
|
+
rb_define_method(rb_cRESBODY, "head", node_head, 0);
|
4898
|
+
rb_ary_push(members, rb_str_new2("head"));
|
4899
|
+
|
4893
4900
|
/* Document-method: body
|
4894
4901
|
* the expresion to evaluate if the exception type matches
|
4895
4902
|
*/
|
@@ -4901,12 +4908,6 @@ void define_node_subclass_methods()
|
|
4901
4908
|
*/
|
4902
4909
|
rb_define_method(rb_cRESBODY, "args", node_args, 0);
|
4903
4910
|
rb_ary_push(members, rb_str_new2("args"));
|
4904
|
-
|
4905
|
-
/* Document-method: head
|
4906
|
-
* the next rescue
|
4907
|
-
*/
|
4908
|
-
rb_define_method(rb_cRESBODY, "head", node_head, 0);
|
4909
|
-
rb_ary_push(members, rb_str_new2("head"));
|
4910
4911
|
}
|
4911
4912
|
|
4912
4913
|
/* Document-class: Node::RESCUE
|
@@ -4946,6 +4947,12 @@ 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
|
|
4950
|
+
/* Document-method: head
|
4951
|
+
* the body of the block to evaluate
|
4952
|
+
*/
|
4953
|
+
rb_define_method(rb_cRESCUE, "head", node_head, 0);
|
4954
|
+
rb_ary_push(members, rb_str_new2("head"));
|
4955
|
+
|
4949
4956
|
/* Document-method: resq
|
4950
4957
|
* the expression to be evaluated if an exception is raised
|
4951
4958
|
*/
|
@@ -4957,12 +4964,6 @@ void define_node_subclass_methods()
|
|
4957
4964
|
*/
|
4958
4965
|
rb_define_method(rb_cRESCUE, "else", node_else, 0);
|
4959
4966
|
rb_ary_push(members, rb_str_new2("else"));
|
4960
|
-
|
4961
|
-
/* Document-method: head
|
4962
|
-
* the body of the block to evaluate
|
4963
|
-
*/
|
4964
|
-
rb_define_method(rb_cRESCUE, "head", node_head, 0);
|
4965
|
-
rb_ary_push(members, rb_str_new2("head"));
|
4966
4967
|
}
|
4967
4968
|
|
4968
4969
|
/* Document-class: Node::RETRY
|
@@ -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,6 +5305,12 @@ 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
|
|
5308
|
+
/* Document-method: head
|
5309
|
+
* a value to compare against, or a condition to be tested
|
5310
|
+
*/
|
5311
|
+
rb_define_method(rb_cWHEN, "head", node_head, 0);
|
5312
|
+
rb_ary_push(members, rb_str_new2("head"));
|
5313
|
+
|
5307
5314
|
/* Document-method: body
|
5308
5315
|
* an expression to evaluate if the condition evaluates to true
|
5309
5316
|
*/
|
@@ -5315,12 +5322,6 @@ void define_node_subclass_methods()
|
|
5315
5322
|
*/
|
5316
5323
|
rb_define_method(rb_cWHEN, "next", node_next, 0);
|
5317
5324
|
rb_ary_push(members, rb_str_new2("next"));
|
5318
|
-
|
5319
|
-
/* Document-method: head
|
5320
|
-
* a value to compare against, or a condition to be tested
|
5321
|
-
*/
|
5322
|
-
rb_define_method(rb_cWHEN, "head", node_head, 0);
|
5323
|
-
rb_ary_push(members, rb_str_new2("head"));
|
5324
5325
|
}
|
5325
5326
|
|
5326
5327
|
/* Document-class: Node::WHILE
|
@@ -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
|