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.
- 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
@@ -2,15 +2,15 @@
|
|
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
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,
|
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,
|
13
|
+
{ NODE_ARRAY, NEN_ALEN, NEN_HEAD, NEN_NEXT, "ARRAY" },
|
14
14
|
{ NODE_ATTRASGN, NEN_RECV, NEN_ARGS, NEN_MID, "ATTRASGN" },
|
15
15
|
{ NODE_ATTRSET, NEN_VID, NEN_NONE, NEN_NONE, "ATTRSET" },
|
16
16
|
{ NODE_BACK_REF, NEN_NTH, NEN_CNT, NEN_NONE, "BACK_REF" },
|
@@ -20,78 +20,78 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
20
20
|
{ NODE_BLOCK_PASS, NEN_BODY, NEN_ITER, NEN_NONE, "BLOCK_PASS" },
|
21
21
|
{ NODE_BMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "BMETHOD" },
|
22
22
|
{ NODE_BREAK, NEN_STTS, NEN_NONE, NEN_NONE, "BREAK" },
|
23
|
-
{ NODE_CALL,
|
23
|
+
{ NODE_CALL, NEN_ARGS, NEN_MID, NEN_RECV, "CALL" },
|
24
24
|
{ NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
|
25
|
-
{ NODE_CDECL,
|
25
|
+
{ NODE_CDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CDECL" },
|
26
26
|
{ NODE_CFUNC, NEN_CFNC, NEN_ARGC, NEN_NONE, "CFUNC" },
|
27
|
-
{ NODE_CLASS,
|
27
|
+
{ NODE_CLASS, NEN_SUPER, NEN_CPATH, NEN_BODY, "CLASS" },
|
28
28
|
{ NODE_COLON2, NEN_HEAD, NEN_MID, NEN_NONE, "COLON2" },
|
29
29
|
{ NODE_COLON3, NEN_MID, NEN_NONE, NEN_NONE, "COLON3" },
|
30
30
|
{ NODE_CONST, NEN_VID, NEN_NONE, NEN_NONE, "CONST" },
|
31
|
-
{ NODE_CREF,
|
31
|
+
{ NODE_CREF, NEN_CLSS, NEN_BODY, NEN_NEXT, "CREF" },
|
32
32
|
{ NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
|
33
|
-
{ NODE_CVASGN,
|
34
|
-
{ NODE_CVDECL,
|
35
|
-
{ NODE_DASGN,
|
36
|
-
{ NODE_DASGN_CURR,
|
33
|
+
{ NODE_CVASGN, NEN_VALUE, NEN_VID, NEN_NONE, "CVASGN" },
|
34
|
+
{ NODE_CVDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CVDECL" },
|
35
|
+
{ NODE_DASGN, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN" },
|
36
|
+
{ NODE_DASGN_CURR, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN_CURR" },
|
37
37
|
{ NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
|
38
|
-
{ NODE_DEFN, NEN_DEFN,
|
38
|
+
{ NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
|
39
39
|
{ NODE_DEFS, NEN_DEFN, NEN_RECV, NEN_MID, "DEFS" },
|
40
40
|
{ NODE_DMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "DMETHOD" },
|
41
|
-
{ NODE_DOT2,
|
42
|
-
{ NODE_DOT3,
|
43
|
-
{ NODE_DREGX,
|
44
|
-
{ NODE_DREGX_ONCE,
|
45
|
-
{ NODE_DSTR,
|
46
|
-
{ NODE_DSYM,
|
41
|
+
{ NODE_DOT2, NEN_BEG, NEN_END, NEN_STATE, "DOT2" },
|
42
|
+
{ NODE_DOT3, NEN_BEG, NEN_END, NEN_STATE, "DOT3" },
|
43
|
+
{ NODE_DREGX, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX" },
|
44
|
+
{ NODE_DREGX_ONCE, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX_ONCE" },
|
45
|
+
{ NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
|
46
|
+
{ NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
|
47
47
|
{ NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
|
48
|
-
{ NODE_DXSTR,
|
48
|
+
{ NODE_DXSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DXSTR" },
|
49
49
|
{ NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
|
50
50
|
{ NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
|
51
51
|
{ NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
|
52
|
-
{ NODE_FBODY,
|
52
|
+
{ NODE_FBODY, NEN_ORIG, NEN_MID, NEN_HEAD, "FBODY" },
|
53
53
|
{ NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
|
54
|
-
{ NODE_FLIP2,
|
55
|
-
{ NODE_FLIP3,
|
54
|
+
{ NODE_FLIP2, NEN_CNT, NEN_BEG, NEN_END, "FLIP2" },
|
55
|
+
{ NODE_FLIP3, NEN_CNT, NEN_BEG, NEN_END, "FLIP3" },
|
56
56
|
{ NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
|
57
|
-
{ NODE_GASGN,
|
57
|
+
{ NODE_GASGN, NEN_VALUE, NEN_VID, NEN_ENTRY, "GASGN" },
|
58
58
|
{ NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
|
59
59
|
{ NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
|
60
|
-
{ NODE_IASGN,
|
61
|
-
{ NODE_IF,
|
62
|
-
{ NODE_IFUNC, NEN_CFNC,
|
60
|
+
{ NODE_IASGN, NEN_VALUE, NEN_VID, NEN_NONE, "IASGN" },
|
61
|
+
{ NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
|
62
|
+
{ NODE_IFUNC, NEN_CFNC, NEN_TVAL, NEN_STATE, "IFUNC" },
|
63
63
|
{ NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
|
64
64
|
{ NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
|
65
|
-
{ NODE_LASGN,
|
65
|
+
{ NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
|
66
66
|
{ NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
|
67
67
|
{ NODE_LVAR, NEN_VID, NEN_CNT, NEN_NONE, "LVAR" },
|
68
|
-
{ NODE_MASGN, NEN_HEAD, NEN_VALUE,
|
69
|
-
{ NODE_MATCH,
|
68
|
+
{ NODE_MASGN, NEN_ARGS, NEN_HEAD, NEN_VALUE, "MASGN" },
|
69
|
+
{ NODE_MATCH, NEN_LIT, NEN_VALUE, NEN_NONE, "MATCH" },
|
70
70
|
{ NODE_MATCH2, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH2" },
|
71
71
|
{ NODE_MATCH3, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH3" },
|
72
72
|
{ NODE_MEMO, NEN_NONE, NEN_NONE, NEN_NONE, "MEMO" },
|
73
|
-
{ NODE_METHOD,
|
74
|
-
{ NODE_MODULE,
|
73
|
+
{ NODE_METHOD, NEN_NOEX, NEN_BODY, NEN_NONE, "METHOD" },
|
74
|
+
{ NODE_MODULE, NEN_CPATH, NEN_BODY, NEN_NONE, "MODULE" },
|
75
75
|
{ NODE_NEWLINE, NEN_NEXT, NEN_NONE, NEN_NONE, "NEWLINE" },
|
76
76
|
{ NODE_NEXT, NEN_STTS, NEN_NONE, NEN_NONE, "NEXT" },
|
77
77
|
{ NODE_NIL, NEN_NONE, NEN_NONE, NEN_NONE, "NIL" },
|
78
78
|
{ NODE_NOT, NEN_BODY, NEN_NONE, NEN_NONE, "NOT" },
|
79
79
|
{ NODE_NTH_REF, NEN_NTH, NEN_CNT, NEN_NONE, "NTH_REF" },
|
80
80
|
{ NODE_OPT_N, NEN_BODY, NEN_NONE, NEN_NONE, "OPT_N" },
|
81
|
-
{ NODE_OP_ASGN1,
|
82
|
-
{ NODE_OP_ASGN2, NEN_RECV,
|
81
|
+
{ NODE_OP_ASGN1, NEN_ARGS, NEN_MID, NEN_RECV, "OP_ASGN1" },
|
82
|
+
{ NODE_OP_ASGN2, NEN_RECV, NEN_NEXT, NEN_VALUE, "OP_ASGN2" },
|
83
83
|
{ NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID, NEN_MID, "OP_ASGN2_ARG" },
|
84
84
|
{ NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
|
85
|
-
{ NODE_OP_ASGN_OR,
|
85
|
+
{ NODE_OP_ASGN_OR, NEN_AID, NEN_VALUE, NEN_RECV, "OP_ASGN_OR" },
|
86
86
|
{ NODE_OR, NEN_2ND, NEN_1ST, NEN_NONE, "OR" },
|
87
87
|
{ NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
|
88
88
|
{ NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
|
89
89
|
{ NODE_RESBODY, NEN_HEAD, NEN_BODY, NEN_ARGS, "RESBODY" },
|
90
|
-
{ NODE_RESCUE,
|
90
|
+
{ NODE_RESCUE, NEN_HEAD, NEN_RESQ, NEN_ELSE, "RESCUE" },
|
91
91
|
{ NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
|
92
92
|
{ NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
|
93
93
|
{ NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
|
94
|
-
{ NODE_SCOPE,
|
94
|
+
{ NODE_SCOPE, NEN_TBL, NEN_RVAL, NEN_NEXT, "SCOPE" },
|
95
95
|
{ NODE_SELF, NEN_NONE, NEN_NONE, NEN_NONE, "SELF" },
|
96
96
|
{ NODE_SPLAT, NEN_HEAD, NEN_NONE, NEN_NONE, "SPLAT" },
|
97
97
|
{ NODE_STR, NEN_LIT, NEN_NONE, NEN_NONE, "STR" },
|
@@ -101,7 +101,7 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
101
101
|
{ NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
|
102
102
|
{ NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
|
103
103
|
{ NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
|
104
|
-
{ NODE_VALIAS,
|
104
|
+
{ NODE_VALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "VALIAS" },
|
105
105
|
{ NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
|
106
106
|
{ NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
|
107
107
|
{ NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
|
@@ -2925,10 +2925,10 @@ void define_node_subclass_methods()
|
|
2925
2925
|
rb_iv_set(rb_cALIAS, "__member__", members);
|
2926
2926
|
rb_iv_set(rb_cALIAS, "__type__", INT2NUM(NODE_ALIAS));
|
2927
2927
|
rb_define_singleton_method(rb_cALIAS, "members", node_s_members, 0);
|
2928
|
-
rb_define_method(rb_cALIAS, "second", node_2nd, 0);
|
2929
|
-
rb_ary_push(members, rb_str_new2("second"));
|
2930
2928
|
rb_define_method(rb_cALIAS, "first", node_1st, 0);
|
2931
2929
|
rb_ary_push(members, rb_str_new2("first"));
|
2930
|
+
rb_define_method(rb_cALIAS, "second", node_2nd, 0);
|
2931
|
+
rb_ary_push(members, rb_str_new2("second"));
|
2932
2932
|
}
|
2933
2933
|
|
2934
2934
|
/* Document-class: Node::ALLOCA
|
@@ -3005,6 +3005,12 @@ void define_node_subclass_methods()
|
|
3005
3005
|
rb_iv_set(rb_cARGS, "__type__", INT2NUM(NODE_ARGS));
|
3006
3006
|
rb_define_singleton_method(rb_cARGS, "members", node_s_members, 0);
|
3007
3007
|
|
3008
|
+
/* Document-method: rest
|
3009
|
+
* an assignment node to assign the rest arg, if it is present
|
3010
|
+
*/
|
3011
|
+
rb_define_method(rb_cARGS, "rest", node_rest, 0);
|
3012
|
+
rb_ary_push(members, rb_str_new2("rest"));
|
3013
|
+
|
3008
3014
|
/* Document-method: opt
|
3009
3015
|
* a list of assignment nodes to assign default values to the
|
3010
3016
|
* optional arguments if no argument is specified
|
@@ -3012,12 +3018,6 @@ void define_node_subclass_methods()
|
|
3012
3018
|
rb_define_method(rb_cARGS, "opt", node_opt, 0);
|
3013
3019
|
rb_ary_push(members, rb_str_new2("opt"));
|
3014
3020
|
|
3015
|
-
/* Document-method: rest
|
3016
|
-
* an assignment node to assign the rest arg, if it is present
|
3017
|
-
*/
|
3018
|
-
rb_define_method(rb_cARGS, "rest", node_rest, 0);
|
3019
|
-
rb_ary_push(members, rb_str_new2("rest"));
|
3020
|
-
|
3021
3021
|
/* Document-method: cnt
|
3022
3022
|
* the number of required arguments
|
3023
3023
|
*/
|
@@ -3088,14 +3088,14 @@ void define_node_subclass_methods()
|
|
3088
3088
|
rb_iv_set(rb_cARRAY, "__member__", members);
|
3089
3089
|
rb_iv_set(rb_cARRAY, "__type__", INT2NUM(NODE_ARRAY));
|
3090
3090
|
rb_define_singleton_method(rb_cARRAY, "members", node_s_members, 0);
|
3091
|
+
rb_define_method(rb_cARRAY, "alen", node_alen, 0);
|
3092
|
+
rb_ary_push(members, rb_str_new2("alen"));
|
3091
3093
|
|
3092
3094
|
/* Document-method: head
|
3093
3095
|
* the first element of the array
|
3094
3096
|
*/
|
3095
3097
|
rb_define_method(rb_cARRAY, "head", node_head, 0);
|
3096
3098
|
rb_ary_push(members, rb_str_new2("head"));
|
3097
|
-
rb_define_method(rb_cARRAY, "alen", node_alen, 0);
|
3098
|
-
rb_ary_push(members, rb_str_new2("alen"));
|
3099
3099
|
|
3100
3100
|
/* Document-method: next
|
3101
3101
|
* the tail of the array
|
@@ -3340,12 +3340,6 @@ void define_node_subclass_methods()
|
|
3340
3340
|
rb_iv_set(rb_cCALL, "__type__", INT2NUM(NODE_CALL));
|
3341
3341
|
rb_define_singleton_method(rb_cCALL, "members", node_s_members, 0);
|
3342
3342
|
|
3343
|
-
/* Document-method: recv
|
3344
|
-
* the receiver of the method
|
3345
|
-
*/
|
3346
|
-
rb_define_method(rb_cCALL, "recv", node_recv, 0);
|
3347
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
3348
|
-
|
3349
3343
|
/* Document-method: args
|
3350
3344
|
* the arguments to the method
|
3351
3345
|
*/
|
@@ -3357,6 +3351,12 @@ void define_node_subclass_methods()
|
|
3357
3351
|
*/
|
3358
3352
|
rb_define_method(rb_cCALL, "mid", node_mid, 0);
|
3359
3353
|
rb_ary_push(members, rb_str_new2("mid"));
|
3354
|
+
|
3355
|
+
/* Document-method: recv
|
3356
|
+
* the receiver of the method
|
3357
|
+
*/
|
3358
|
+
rb_define_method(rb_cCALL, "recv", node_recv, 0);
|
3359
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
3360
3360
|
}
|
3361
3361
|
|
3362
3362
|
/* Document-class: Node::CASE
|
@@ -3402,17 +3402,17 @@ void define_node_subclass_methods()
|
|
3402
3402
|
rb_iv_set(rb_cCDECL, "__type__", INT2NUM(NODE_CDECL));
|
3403
3403
|
rb_define_singleton_method(rb_cCDECL, "members", node_s_members, 0);
|
3404
3404
|
|
3405
|
-
/* Document-method: vid
|
3406
|
-
* the name of the constant to be assigned, all uppercase
|
3407
|
-
*/
|
3408
|
-
rb_define_method(rb_cCDECL, "vid", node_vid, 0);
|
3409
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
3410
|
-
|
3411
3405
|
/* Document-method: value
|
3412
3406
|
* the value to be assigned to the constant
|
3413
3407
|
*/
|
3414
3408
|
rb_define_method(rb_cCDECL, "value", node_value, 0);
|
3415
3409
|
rb_ary_push(members, rb_str_new2("value"));
|
3410
|
+
|
3411
|
+
/* Document-method: vid
|
3412
|
+
* the name of the constant to be assigned, all uppercase
|
3413
|
+
*/
|
3414
|
+
rb_define_method(rb_cCDECL, "vid", node_vid, 0);
|
3415
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
3416
3416
|
}
|
3417
3417
|
|
3418
3418
|
/* Document-class: Node::CFUNC
|
@@ -3455,11 +3455,12 @@ void define_node_subclass_methods()
|
|
3455
3455
|
rb_iv_set(rb_cCLASS, "__type__", INT2NUM(NODE_CLASS));
|
3456
3456
|
rb_define_singleton_method(rb_cCLASS, "members", node_s_members, 0);
|
3457
3457
|
|
3458
|
-
/* Document-method:
|
3459
|
-
*
|
3458
|
+
/* Document-method: super
|
3459
|
+
* an expression returning the base class, or false if there is no
|
3460
|
+
* base class specified
|
3460
3461
|
*/
|
3461
|
-
rb_define_method(rb_cCLASS, "
|
3462
|
-
rb_ary_push(members, rb_str_new2("
|
3462
|
+
rb_define_method(rb_cCLASS, "super", node_super, 0);
|
3463
|
+
rb_ary_push(members, rb_str_new2("super"));
|
3463
3464
|
|
3464
3465
|
/* Document-method: cpath
|
3465
3466
|
* the name of the class to define
|
@@ -3467,12 +3468,11 @@ void define_node_subclass_methods()
|
|
3467
3468
|
rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
|
3468
3469
|
rb_ary_push(members, rb_str_new2("cpath"));
|
3469
3470
|
|
3470
|
-
/* Document-method:
|
3471
|
-
*
|
3472
|
-
* base class specified
|
3471
|
+
/* Document-method: body
|
3472
|
+
* the body of the class definition
|
3473
3473
|
*/
|
3474
|
-
rb_define_method(rb_cCLASS, "
|
3475
|
-
rb_ary_push(members, rb_str_new2("
|
3474
|
+
rb_define_method(rb_cCLASS, "body", node_body, 0);
|
3475
|
+
rb_ary_push(members, rb_str_new2("body"));
|
3476
3476
|
}
|
3477
3477
|
|
3478
3478
|
/* Document-class: Node::COLON2
|
@@ -3560,18 +3560,18 @@ void define_node_subclass_methods()
|
|
3560
3560
|
rb_iv_set(rb_cCREF, "__type__", INT2NUM(NODE_CREF));
|
3561
3561
|
rb_define_singleton_method(rb_cCREF, "members", node_s_members, 0);
|
3562
3562
|
|
3563
|
-
/* Document-method: body
|
3564
|
-
* always 0 (false)
|
3565
|
-
*/
|
3566
|
-
rb_define_method(rb_cCREF, "body", node_body, 0);
|
3567
|
-
rb_ary_push(members, rb_str_new2("body"));
|
3568
|
-
|
3569
3563
|
/* Document-method: clss
|
3570
3564
|
* the new class to use for the cbase.
|
3571
3565
|
*/
|
3572
3566
|
rb_define_method(rb_cCREF, "clss", node_clss, 0);
|
3573
3567
|
rb_ary_push(members, rb_str_new2("clss"));
|
3574
3568
|
|
3569
|
+
/* Document-method: body
|
3570
|
+
* always 0 (false)
|
3571
|
+
*/
|
3572
|
+
rb_define_method(rb_cCREF, "body", node_body, 0);
|
3573
|
+
rb_ary_push(members, rb_str_new2("body"));
|
3574
|
+
|
3575
3575
|
/* Document-method: next
|
3576
3576
|
* the previous value of ruby_cref or ruby_top_cref
|
3577
3577
|
*/
|
@@ -3609,18 +3609,18 @@ void define_node_subclass_methods()
|
|
3609
3609
|
rb_iv_set(rb_cCVASGN, "__type__", INT2NUM(NODE_CVASGN));
|
3610
3610
|
rb_define_singleton_method(rb_cCVASGN, "members", node_s_members, 0);
|
3611
3611
|
|
3612
|
-
/* Document-method: vid
|
3613
|
-
* the name of the class variable to assign
|
3614
|
-
*/
|
3615
|
-
rb_define_method(rb_cCVASGN, "vid", node_vid, 0);
|
3616
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
3617
|
-
|
3618
3612
|
/* Document-method: value
|
3619
3613
|
* an expression whose result is the new value of the class
|
3620
3614
|
* variable
|
3621
3615
|
*/
|
3622
3616
|
rb_define_method(rb_cCVASGN, "value", node_value, 0);
|
3623
3617
|
rb_ary_push(members, rb_str_new2("value"));
|
3618
|
+
|
3619
|
+
/* Document-method: vid
|
3620
|
+
* the name of the class variable to assign
|
3621
|
+
*/
|
3622
|
+
rb_define_method(rb_cCVASGN, "vid", node_vid, 0);
|
3623
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
3624
3624
|
}
|
3625
3625
|
|
3626
3626
|
/* Document-class: Node::CVDECL
|
@@ -3636,18 +3636,18 @@ void define_node_subclass_methods()
|
|
3636
3636
|
rb_iv_set(rb_cCVDECL, "__type__", INT2NUM(NODE_CVDECL));
|
3637
3637
|
rb_define_singleton_method(rb_cCVDECL, "members", node_s_members, 0);
|
3638
3638
|
|
3639
|
-
/* Document-method: vid
|
3640
|
-
* the name of the class variable to assign
|
3641
|
-
*/
|
3642
|
-
rb_define_method(rb_cCVDECL, "vid", node_vid, 0);
|
3643
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
3644
|
-
|
3645
3639
|
/* Document-method: value
|
3646
3640
|
* an expression whose result is the new value of the class
|
3647
3641
|
* variable
|
3648
3642
|
*/
|
3649
3643
|
rb_define_method(rb_cCVDECL, "value", node_value, 0);
|
3650
3644
|
rb_ary_push(members, rb_str_new2("value"));
|
3645
|
+
|
3646
|
+
/* Document-method: vid
|
3647
|
+
* the name of the class variable to assign
|
3648
|
+
*/
|
3649
|
+
rb_define_method(rb_cCVDECL, "vid", node_vid, 0);
|
3650
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
3651
3651
|
}
|
3652
3652
|
|
3653
3653
|
/* Document-class: Node::DASGN
|
@@ -3670,17 +3670,17 @@ void define_node_subclass_methods()
|
|
3670
3670
|
rb_iv_set(rb_cDASGN, "__type__", INT2NUM(NODE_DASGN));
|
3671
3671
|
rb_define_singleton_method(rb_cDASGN, "members", node_s_members, 0);
|
3672
3672
|
|
3673
|
-
/* Document-method: vid
|
3674
|
-
* the name of the local variable
|
3675
|
-
*/
|
3676
|
-
rb_define_method(rb_cDASGN, "vid", node_vid, 0);
|
3677
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
3678
|
-
|
3679
3673
|
/* Document-method: value
|
3680
3674
|
* the value to assign to the local variable
|
3681
3675
|
*/
|
3682
3676
|
rb_define_method(rb_cDASGN, "value", node_value, 0);
|
3683
3677
|
rb_ary_push(members, rb_str_new2("value"));
|
3678
|
+
|
3679
|
+
/* Document-method: vid
|
3680
|
+
* the name of the local variable
|
3681
|
+
*/
|
3682
|
+
rb_define_method(rb_cDASGN, "vid", node_vid, 0);
|
3683
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
3684
3684
|
}
|
3685
3685
|
|
3686
3686
|
/* Document-class: Node::DASGN_CURR
|
@@ -3695,17 +3695,17 @@ void define_node_subclass_methods()
|
|
3695
3695
|
rb_iv_set(rb_cDASGN_CURR, "__type__", INT2NUM(NODE_DASGN_CURR));
|
3696
3696
|
rb_define_singleton_method(rb_cDASGN_CURR, "members", node_s_members, 0);
|
3697
3697
|
|
3698
|
-
/* Document-method: vid
|
3699
|
-
* the name of the local variable
|
3700
|
-
*/
|
3701
|
-
rb_define_method(rb_cDASGN_CURR, "vid", node_vid, 0);
|
3702
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
3703
|
-
|
3704
3698
|
/* Document-method: value
|
3705
3699
|
* the value to assign to the local variable
|
3706
3700
|
*/
|
3707
3701
|
rb_define_method(rb_cDASGN_CURR, "value", node_value, 0);
|
3708
3702
|
rb_ary_push(members, rb_str_new2("value"));
|
3703
|
+
|
3704
|
+
/* Document-method: vid
|
3705
|
+
* the name of the local variable
|
3706
|
+
*/
|
3707
|
+
rb_define_method(rb_cDASGN_CURR, "vid", node_vid, 0);
|
3708
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
3709
3709
|
}
|
3710
3710
|
|
3711
3711
|
/* Document-class: Node::DEFINED
|
@@ -3747,17 +3747,17 @@ void define_node_subclass_methods()
|
|
3747
3747
|
rb_define_method(rb_cDEFN, "defn", node_defn, 0);
|
3748
3748
|
rb_ary_push(members, rb_str_new2("defn"));
|
3749
3749
|
|
3750
|
-
/* Document-method: noex
|
3751
|
-
* the flags which should be used to define the method
|
3752
|
-
*/
|
3753
|
-
rb_define_method(rb_cDEFN, "noex", node_noex, 0);
|
3754
|
-
rb_ary_push(members, rb_str_new2("noex"));
|
3755
|
-
|
3756
3750
|
/* Document-method: mid
|
3757
3751
|
* the name of the method* defn the body of the method
|
3758
3752
|
*/
|
3759
3753
|
rb_define_method(rb_cDEFN, "mid", node_mid, 0);
|
3760
3754
|
rb_ary_push(members, rb_str_new2("mid"));
|
3755
|
+
|
3756
|
+
/* Document-method: noex
|
3757
|
+
* the flags which should be used to define the method
|
3758
|
+
*/
|
3759
|
+
rb_define_method(rb_cDEFN, "noex", node_noex, 0);
|
3760
|
+
rb_ary_push(members, rb_str_new2("noex"));
|
3761
3761
|
}
|
3762
3762
|
|
3763
3763
|
/* Document-class: Node::DEFS
|
@@ -3824,8 +3824,6 @@ void define_node_subclass_methods()
|
|
3824
3824
|
rb_iv_set(rb_cDOT2, "__member__", members);
|
3825
3825
|
rb_iv_set(rb_cDOT2, "__type__", INT2NUM(NODE_DOT2));
|
3826
3826
|
rb_define_singleton_method(rb_cDOT2, "members", node_s_members, 0);
|
3827
|
-
rb_define_method(rb_cDOT2, "state", node_state, 0);
|
3828
|
-
rb_ary_push(members, rb_str_new2("state"));
|
3829
3827
|
|
3830
3828
|
/* Document-method: beg
|
3831
3829
|
* the beginning of the range
|
@@ -3838,6 +3836,8 @@ void define_node_subclass_methods()
|
|
3838
3836
|
*/
|
3839
3837
|
rb_define_method(rb_cDOT2, "end", node_end, 0);
|
3840
3838
|
rb_ary_push(members, rb_str_new2("end"));
|
3839
|
+
rb_define_method(rb_cDOT2, "state", node_state, 0);
|
3840
|
+
rb_ary_push(members, rb_str_new2("state"));
|
3841
3841
|
}
|
3842
3842
|
|
3843
3843
|
/* Document-class: Node::DOT3
|
@@ -3852,8 +3852,6 @@ void define_node_subclass_methods()
|
|
3852
3852
|
rb_iv_set(rb_cDOT3, "__member__", members);
|
3853
3853
|
rb_iv_set(rb_cDOT3, "__type__", INT2NUM(NODE_DOT3));
|
3854
3854
|
rb_define_singleton_method(rb_cDOT3, "members", node_s_members, 0);
|
3855
|
-
rb_define_method(rb_cDOT3, "state", node_state, 0);
|
3856
|
-
rb_ary_push(members, rb_str_new2("state"));
|
3857
3855
|
|
3858
3856
|
/* Document-method: beg
|
3859
3857
|
* the beginning of the range
|
@@ -3866,6 +3864,8 @@ void define_node_subclass_methods()
|
|
3866
3864
|
*/
|
3867
3865
|
rb_define_method(rb_cDOT3, "end", node_end, 0);
|
3868
3866
|
rb_ary_push(members, rb_str_new2("end"));
|
3867
|
+
rb_define_method(rb_cDOT3, "state", node_state, 0);
|
3868
|
+
rb_ary_push(members, rb_str_new2("state"));
|
3869
3869
|
}
|
3870
3870
|
|
3871
3871
|
/* Document-class: Node::DREGX
|
@@ -3884,6 +3884,18 @@ void define_node_subclass_methods()
|
|
3884
3884
|
rb_iv_set(rb_cDREGX, "__type__", INT2NUM(NODE_DREGX));
|
3885
3885
|
rb_define_singleton_method(rb_cDREGX, "members", node_s_members, 0);
|
3886
3886
|
|
3887
|
+
/* Document-method: lit
|
3888
|
+
* a string
|
3889
|
+
*/
|
3890
|
+
rb_define_method(rb_cDREGX, "lit", node_lit, 0);
|
3891
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
3892
|
+
|
3893
|
+
/* Document-method: next
|
3894
|
+
* a list of expressions to be appended onto the string
|
3895
|
+
*/
|
3896
|
+
rb_define_method(rb_cDREGX, "next", node_next, 0);
|
3897
|
+
rb_ary_push(members, rb_str_new2("next"));
|
3898
|
+
|
3887
3899
|
/* Document-method: cflag
|
3888
3900
|
* a bitfield containing the options used in the regular
|
3889
3901
|
* expression. Valid values include:
|
@@ -3900,18 +3912,6 @@ void define_node_subclass_methods()
|
|
3900
3912
|
*/
|
3901
3913
|
rb_define_method(rb_cDREGX, "cflag", node_cflag, 0);
|
3902
3914
|
rb_ary_push(members, rb_str_new2("cflag"));
|
3903
|
-
|
3904
|
-
/* Document-method: next
|
3905
|
-
* a list of expressions to be appended onto the string
|
3906
|
-
*/
|
3907
|
-
rb_define_method(rb_cDREGX, "next", node_next, 0);
|
3908
|
-
rb_ary_push(members, rb_str_new2("next"));
|
3909
|
-
|
3910
|
-
/* Document-method: lit
|
3911
|
-
* a string
|
3912
|
-
*/
|
3913
|
-
rb_define_method(rb_cDREGX, "lit", node_lit, 0);
|
3914
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
3915
3915
|
}
|
3916
3916
|
|
3917
3917
|
/* Document-class: Node::DREGX_ONCE
|
@@ -3927,12 +3927,11 @@ void define_node_subclass_methods()
|
|
3927
3927
|
rb_iv_set(rb_cDREGX_ONCE, "__type__", INT2NUM(NODE_DREGX_ONCE));
|
3928
3928
|
rb_define_singleton_method(rb_cDREGX_ONCE, "members", node_s_members, 0);
|
3929
3929
|
|
3930
|
-
/* Document-method:
|
3931
|
-
* a
|
3932
|
-
* expression. See DREGX for a list of valid values.
|
3930
|
+
/* Document-method: lit
|
3931
|
+
* a string
|
3933
3932
|
*/
|
3934
|
-
rb_define_method(rb_cDREGX_ONCE, "
|
3935
|
-
rb_ary_push(members, rb_str_new2("
|
3933
|
+
rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
|
3934
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
3936
3935
|
|
3937
3936
|
/* Document-method: next
|
3938
3937
|
* a list of expressions to be appended onto the string
|
@@ -3940,11 +3939,12 @@ void define_node_subclass_methods()
|
|
3940
3939
|
rb_define_method(rb_cDREGX_ONCE, "next", node_next, 0);
|
3941
3940
|
rb_ary_push(members, rb_str_new2("next"));
|
3942
3941
|
|
3943
|
-
/* Document-method:
|
3944
|
-
* a
|
3942
|
+
/* Document-method: cflag
|
3943
|
+
* a bitfield containing the options used in the regular
|
3944
|
+
* expression. See DREGX for a list of valid values.
|
3945
3945
|
*/
|
3946
|
-
rb_define_method(rb_cDREGX_ONCE, "
|
3947
|
-
rb_ary_push(members, rb_str_new2("
|
3946
|
+
rb_define_method(rb_cDREGX_ONCE, "cflag", node_cflag, 0);
|
3947
|
+
rb_ary_push(members, rb_str_new2("cflag"));
|
3948
3948
|
}
|
3949
3949
|
|
3950
3950
|
/* Document-class: Node::DSTR
|
@@ -3963,17 +3963,17 @@ void define_node_subclass_methods()
|
|
3963
3963
|
rb_iv_set(rb_cDSTR, "__type__", INT2NUM(NODE_DSTR));
|
3964
3964
|
rb_define_singleton_method(rb_cDSTR, "members", node_s_members, 0);
|
3965
3965
|
|
3966
|
-
/* Document-method: next
|
3967
|
-
* a list of expressions to be appended onto the string
|
3968
|
-
*/
|
3969
|
-
rb_define_method(rb_cDSTR, "next", node_next, 0);
|
3970
|
-
rb_ary_push(members, rb_str_new2("next"));
|
3971
|
-
|
3972
3966
|
/* Document-method: lit
|
3973
3967
|
* a string
|
3974
3968
|
*/
|
3975
3969
|
rb_define_method(rb_cDSTR, "lit", node_lit, 0);
|
3976
3970
|
rb_ary_push(members, rb_str_new2("lit"));
|
3971
|
+
|
3972
|
+
/* Document-method: next
|
3973
|
+
* a list of expressions to be appended onto the string
|
3974
|
+
*/
|
3975
|
+
rb_define_method(rb_cDSTR, "next", node_next, 0);
|
3976
|
+
rb_ary_push(members, rb_str_new2("next"));
|
3977
3977
|
}
|
3978
3978
|
|
3979
3979
|
/* Document-class: Node::DSYM
|
@@ -3994,10 +3994,10 @@ void define_node_subclass_methods()
|
|
3994
3994
|
rb_iv_set(rb_cDSYM, "__member__", members);
|
3995
3995
|
rb_iv_set(rb_cDSYM, "__type__", INT2NUM(NODE_DSYM));
|
3996
3996
|
rb_define_singleton_method(rb_cDSYM, "members", node_s_members, 0);
|
3997
|
-
rb_define_method(rb_cDSYM, "next", node_next, 0);
|
3998
|
-
rb_ary_push(members, rb_str_new2("next"));
|
3999
3997
|
rb_define_method(rb_cDSYM, "lit", node_lit, 0);
|
4000
3998
|
rb_ary_push(members, rb_str_new2("lit"));
|
3999
|
+
rb_define_method(rb_cDSYM, "next", node_next, 0);
|
4000
|
+
rb_ary_push(members, rb_str_new2("next"));
|
4001
4001
|
}
|
4002
4002
|
|
4003
4003
|
/* Document-class: Node::DVAR
|
@@ -4040,17 +4040,17 @@ void define_node_subclass_methods()
|
|
4040
4040
|
rb_iv_set(rb_cDXSTR, "__type__", INT2NUM(NODE_DXSTR));
|
4041
4041
|
rb_define_singleton_method(rb_cDXSTR, "members", node_s_members, 0);
|
4042
4042
|
|
4043
|
-
/* Document-method: next
|
4044
|
-
* a list of expressions to be appended onto the string
|
4045
|
-
*/
|
4046
|
-
rb_define_method(rb_cDXSTR, "next", node_next, 0);
|
4047
|
-
rb_ary_push(members, rb_str_new2("next"));
|
4048
|
-
|
4049
4043
|
/* Document-method: lit
|
4050
4044
|
* a string
|
4051
4045
|
*/
|
4052
4046
|
rb_define_method(rb_cDXSTR, "lit", node_lit, 0);
|
4053
4047
|
rb_ary_push(members, rb_str_new2("lit"));
|
4048
|
+
|
4049
|
+
/* Document-method: next
|
4050
|
+
* a list of expressions to be appended onto the string
|
4051
|
+
*/
|
4052
|
+
rb_define_method(rb_cDXSTR, "next", node_next, 0);
|
4053
|
+
rb_ary_push(members, rb_str_new2("next"));
|
4054
4054
|
}
|
4055
4055
|
|
4056
4056
|
/* Document-class: Node::ENSURE
|
@@ -4134,12 +4134,6 @@ void define_node_subclass_methods()
|
|
4134
4134
|
rb_iv_set(rb_cFBODY, "__type__", INT2NUM(NODE_FBODY));
|
4135
4135
|
rb_define_singleton_method(rb_cFBODY, "members", node_s_members, 0);
|
4136
4136
|
|
4137
|
-
/* Document-method: head
|
4138
|
-
* the method body
|
4139
|
-
*/
|
4140
|
-
rb_define_method(rb_cFBODY, "head", node_head, 0);
|
4141
|
-
rb_ary_push(members, rb_str_new2("head"));
|
4142
|
-
|
4143
4137
|
/* Document-method: orig
|
4144
4138
|
* the origin class
|
4145
4139
|
*/
|
@@ -4151,6 +4145,12 @@ void define_node_subclass_methods()
|
|
4151
4145
|
*/
|
4152
4146
|
rb_define_method(rb_cFBODY, "mid", node_mid, 0);
|
4153
4147
|
rb_ary_push(members, rb_str_new2("mid"));
|
4148
|
+
|
4149
|
+
/* Document-method: head
|
4150
|
+
* the method body
|
4151
|
+
*/
|
4152
|
+
rb_define_method(rb_cFBODY, "head", node_head, 0);
|
4153
|
+
rb_ary_push(members, rb_str_new2("head"));
|
4154
4154
|
}
|
4155
4155
|
|
4156
4156
|
/* Document-class: Node::FCALL
|
@@ -4195,12 +4195,6 @@ void define_node_subclass_methods()
|
|
4195
4195
|
rb_iv_set(rb_cFLIP2, "__type__", INT2NUM(NODE_FLIP2));
|
4196
4196
|
rb_define_singleton_method(rb_cFLIP2, "members", node_s_members, 0);
|
4197
4197
|
|
4198
|
-
/* Document-method: beg
|
4199
|
-
* the beginning of the range
|
4200
|
-
*/
|
4201
|
-
rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
|
4202
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
4203
|
-
|
4204
4198
|
/* Document-method: cnt
|
4205
4199
|
* the index into the local variable table of the special variable
|
4206
4200
|
* to use in the flip-flop expression (usually 2 for $_)
|
@@ -4208,6 +4202,12 @@ void define_node_subclass_methods()
|
|
4208
4202
|
rb_define_method(rb_cFLIP2, "cnt", node_cnt, 0);
|
4209
4203
|
rb_ary_push(members, rb_str_new2("cnt"));
|
4210
4204
|
|
4205
|
+
/* Document-method: beg
|
4206
|
+
* the beginning of the range
|
4207
|
+
*/
|
4208
|
+
rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
|
4209
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
4210
|
+
|
4211
4211
|
/* Document-method: end
|
4212
4212
|
* the end of the range
|
4213
4213
|
*/
|
@@ -4229,12 +4229,6 @@ void define_node_subclass_methods()
|
|
4229
4229
|
rb_iv_set(rb_cFLIP3, "__type__", INT2NUM(NODE_FLIP3));
|
4230
4230
|
rb_define_singleton_method(rb_cFLIP3, "members", node_s_members, 0);
|
4231
4231
|
|
4232
|
-
/* Document-method: beg
|
4233
|
-
* the beginning of the range
|
4234
|
-
*/
|
4235
|
-
rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
|
4236
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
4237
|
-
|
4238
4232
|
/* Document-method: cnt
|
4239
4233
|
* the index into the local variable table of the special variable
|
4240
4234
|
* to use in the flip-flop expression (usually 2 for $_)
|
@@ -4242,6 +4236,12 @@ void define_node_subclass_methods()
|
|
4242
4236
|
rb_define_method(rb_cFLIP3, "cnt", node_cnt, 0);
|
4243
4237
|
rb_ary_push(members, rb_str_new2("cnt"));
|
4244
4238
|
|
4239
|
+
/* Document-method: beg
|
4240
|
+
* the beginning of the range
|
4241
|
+
*/
|
4242
|
+
rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
|
4243
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
4244
|
+
|
4245
4245
|
/* Document-method: end
|
4246
4246
|
* the end of the range
|
4247
4247
|
*/
|
@@ -4303,17 +4303,17 @@ void define_node_subclass_methods()
|
|
4303
4303
|
rb_iv_set(rb_cGASGN, "__type__", INT2NUM(NODE_GASGN));
|
4304
4304
|
rb_define_singleton_method(rb_cGASGN, "members", node_s_members, 0);
|
4305
4305
|
|
4306
|
-
/* Document-method: vid
|
4307
|
-
* the name of the global variable, with a leading '$' character.
|
4308
|
-
*/
|
4309
|
-
rb_define_method(rb_cGASGN, "vid", node_vid, 0);
|
4310
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
4311
|
-
|
4312
4306
|
/* Document-method: value
|
4313
4307
|
* an expression whose result is the new value of the global variable
|
4314
4308
|
*/
|
4315
4309
|
rb_define_method(rb_cGASGN, "value", node_value, 0);
|
4316
4310
|
rb_ary_push(members, rb_str_new2("value"));
|
4311
|
+
|
4312
|
+
/* Document-method: vid
|
4313
|
+
* the name of the global variable, with a leading '$' character.
|
4314
|
+
*/
|
4315
|
+
rb_define_method(rb_cGASGN, "vid", node_vid, 0);
|
4316
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
4317
4317
|
rb_define_method(rb_cGASGN, "entry", node_entry, 0);
|
4318
4318
|
rb_ary_push(members, rb_str_new2("entry"));
|
4319
4319
|
}
|
@@ -4368,17 +4368,17 @@ void define_node_subclass_methods()
|
|
4368
4368
|
rb_iv_set(rb_cIASGN, "__type__", INT2NUM(NODE_IASGN));
|
4369
4369
|
rb_define_singleton_method(rb_cIASGN, "members", node_s_members, 0);
|
4370
4370
|
|
4371
|
-
/* Document-method: vid
|
4372
|
-
* the name of the instance variable, with a leading '@' sign
|
4373
|
-
*/
|
4374
|
-
rb_define_method(rb_cIASGN, "vid", node_vid, 0);
|
4375
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
4376
|
-
|
4377
4371
|
/* Document-method: value
|
4378
4372
|
* the value to assign to the instance variable
|
4379
4373
|
*/
|
4380
4374
|
rb_define_method(rb_cIASGN, "value", node_value, 0);
|
4381
4375
|
rb_ary_push(members, rb_str_new2("value"));
|
4376
|
+
|
4377
|
+
/* Document-method: vid
|
4378
|
+
* the name of the instance variable, with a leading '@' sign
|
4379
|
+
*/
|
4380
|
+
rb_define_method(rb_cIASGN, "vid", node_vid, 0);
|
4381
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
4382
4382
|
}
|
4383
4383
|
|
4384
4384
|
/* Document-class: Node::IF
|
@@ -4401,6 +4401,7 @@ void define_node_subclass_methods()
|
|
4401
4401
|
*
|
4402
4402
|
* A conditional block using elsif has another IF node as the else
|
4403
4403
|
* expression.
|
4404
|
+
*
|
4404
4405
|
*/
|
4405
4406
|
{
|
4406
4407
|
VALUE rb_cIF = rb_define_class_under(rb_cNode, "IF", rb_cNode);
|
@@ -4410,12 +4411,11 @@ void define_node_subclass_methods()
|
|
4410
4411
|
rb_iv_set(rb_cIF, "__type__", INT2NUM(NODE_IF));
|
4411
4412
|
rb_define_singleton_method(rb_cIF, "members", node_s_members, 0);
|
4412
4413
|
|
4413
|
-
/* Document-method:
|
4414
|
-
* the
|
4415
|
-
* if the expression is empty
|
4414
|
+
/* Document-method: cond
|
4415
|
+
* the condition to evaluate
|
4416
4416
|
*/
|
4417
|
-
rb_define_method(rb_cIF, "
|
4418
|
-
rb_ary_push(members, rb_str_new2("
|
4417
|
+
rb_define_method(rb_cIF, "cond", node_cond, 0);
|
4418
|
+
rb_ary_push(members, rb_str_new2("cond"));
|
4419
4419
|
|
4420
4420
|
/* Document-method: body
|
4421
4421
|
* the expression to evaluate if the expression is true, or false
|
@@ -4424,11 +4424,12 @@ void define_node_subclass_methods()
|
|
4424
4424
|
rb_define_method(rb_cIF, "body", node_body, 0);
|
4425
4425
|
rb_ary_push(members, rb_str_new2("body"));
|
4426
4426
|
|
4427
|
-
/* Document-method:
|
4428
|
-
* the
|
4427
|
+
/* Document-method: else
|
4428
|
+
* the expression to evaluate if the expression is false, or false
|
4429
|
+
* if the expression is empty
|
4429
4430
|
*/
|
4430
|
-
rb_define_method(rb_cIF, "
|
4431
|
-
rb_ary_push(members, rb_str_new2("
|
4431
|
+
rb_define_method(rb_cIF, "else", node_else, 0);
|
4432
|
+
rb_ary_push(members, rb_str_new2("else"));
|
4432
4433
|
}
|
4433
4434
|
|
4434
4435
|
/* Document-class: Node::IFUNC
|
@@ -4448,18 +4449,18 @@ void define_node_subclass_methods()
|
|
4448
4449
|
rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
|
4449
4450
|
rb_ary_push(members, rb_str_new2("cfnc"));
|
4450
4451
|
|
4451
|
-
/* Document-method: state
|
4452
|
-
* always 0
|
4453
|
-
*/
|
4454
|
-
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
4455
|
-
rb_ary_push(members, rb_str_new2("state"));
|
4456
|
-
|
4457
4452
|
/* Document-method: tval
|
4458
4453
|
* the user-specified data to be passed as the second argument to
|
4459
4454
|
* cfnc
|
4460
4455
|
*/
|
4461
4456
|
rb_define_method(rb_cIFUNC, "tval", node_tval, 0);
|
4462
4457
|
rb_ary_push(members, rb_str_new2("tval"));
|
4458
|
+
|
4459
|
+
/* Document-method: state
|
4460
|
+
* always 0
|
4461
|
+
*/
|
4462
|
+
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
4463
|
+
rb_ary_push(members, rb_str_new2("state"));
|
4463
4464
|
}
|
4464
4465
|
|
4465
4466
|
/* Document-class: Node::ITER
|
@@ -4537,17 +4538,17 @@ void define_node_subclass_methods()
|
|
4537
4538
|
rb_iv_set(rb_cLASGN, "__type__", INT2NUM(NODE_LASGN));
|
4538
4539
|
rb_define_singleton_method(rb_cLASGN, "members", node_s_members, 0);
|
4539
4540
|
|
4540
|
-
/* Document-method: vid
|
4541
|
-
* the name of the local variable
|
4542
|
-
*/
|
4543
|
-
rb_define_method(rb_cLASGN, "vid", node_vid, 0);
|
4544
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
4545
|
-
|
4546
4541
|
/* Document-method: value
|
4547
4542
|
* the value to assign to the local variable
|
4548
4543
|
*/
|
4549
4544
|
rb_define_method(rb_cLASGN, "value", node_value, 0);
|
4550
4545
|
rb_ary_push(members, rb_str_new2("value"));
|
4546
|
+
|
4547
|
+
/* Document-method: vid
|
4548
|
+
* the name of the local variable
|
4549
|
+
*/
|
4550
|
+
rb_define_method(rb_cLASGN, "vid", node_vid, 0);
|
4551
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
4551
4552
|
rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
|
4552
4553
|
rb_ary_push(members, rb_str_new2("cnt"));
|
4553
4554
|
}
|
@@ -4602,6 +4603,12 @@ void define_node_subclass_methods()
|
|
4602
4603
|
rb_iv_set(rb_cMASGN, "__type__", INT2NUM(NODE_MASGN));
|
4603
4604
|
rb_define_singleton_method(rb_cMASGN, "members", node_s_members, 0);
|
4604
4605
|
|
4606
|
+
/* Document-method: args
|
4607
|
+
* TODO
|
4608
|
+
*/
|
4609
|
+
rb_define_method(rb_cMASGN, "args", node_args, 0);
|
4610
|
+
rb_ary_push(members, rb_str_new2("args"));
|
4611
|
+
|
4605
4612
|
/* Document-method: head
|
4606
4613
|
* TODO
|
4607
4614
|
*/
|
@@ -4613,12 +4620,6 @@ void define_node_subclass_methods()
|
|
4613
4620
|
*/
|
4614
4621
|
rb_define_method(rb_cMASGN, "value", node_value, 0);
|
4615
4622
|
rb_ary_push(members, rb_str_new2("value"));
|
4616
|
-
|
4617
|
-
/* Document-method: args
|
4618
|
-
* TODO
|
4619
|
-
*/
|
4620
|
-
rb_define_method(rb_cMASGN, "args", node_args, 0);
|
4621
|
-
rb_ary_push(members, rb_str_new2("args"));
|
4622
4623
|
}
|
4623
4624
|
|
4624
4625
|
/* Document-class: Node::MATCH
|
@@ -4643,17 +4644,17 @@ void define_node_subclass_methods()
|
|
4643
4644
|
rb_iv_set(rb_cMATCH, "__type__", INT2NUM(NODE_MATCH));
|
4644
4645
|
rb_define_singleton_method(rb_cMATCH, "members", node_s_members, 0);
|
4645
4646
|
|
4646
|
-
/* Document-method: value
|
4647
|
-
* the value to compare against
|
4648
|
-
*/
|
4649
|
-
rb_define_method(rb_cMATCH, "value", node_value, 0);
|
4650
|
-
rb_ary_push(members, rb_str_new2("value"));
|
4651
|
-
|
4652
4647
|
/* Document-method: lit
|
4653
4648
|
* the regular expression to use in the condition.
|
4654
4649
|
*/
|
4655
4650
|
rb_define_method(rb_cMATCH, "lit", node_lit, 0);
|
4656
4651
|
rb_ary_push(members, rb_str_new2("lit"));
|
4652
|
+
|
4653
|
+
/* Document-method: value
|
4654
|
+
* the value to compare against
|
4655
|
+
*/
|
4656
|
+
rb_define_method(rb_cMATCH, "value", node_value, 0);
|
4657
|
+
rb_ary_push(members, rb_str_new2("value"));
|
4657
4658
|
}
|
4658
4659
|
|
4659
4660
|
/* Document-class: Node::MATCH2
|
@@ -4759,17 +4760,17 @@ void define_node_subclass_methods()
|
|
4759
4760
|
rb_iv_set(rb_cMETHOD, "__type__", INT2NUM(NODE_METHOD));
|
4760
4761
|
rb_define_singleton_method(rb_cMETHOD, "members", node_s_members, 0);
|
4761
4762
|
|
4762
|
-
/* Document-method: body
|
4763
|
-
* the body of the method
|
4764
|
-
*/
|
4765
|
-
rb_define_method(rb_cMETHOD, "body", node_body, 0);
|
4766
|
-
rb_ary_push(members, rb_str_new2("body"));
|
4767
|
-
|
4768
4763
|
/* Document-method: noex
|
4769
4764
|
* the method's flags
|
4770
4765
|
*/
|
4771
4766
|
rb_define_method(rb_cMETHOD, "noex", node_noex, 0);
|
4772
4767
|
rb_ary_push(members, rb_str_new2("noex"));
|
4768
|
+
|
4769
|
+
/* Document-method: body
|
4770
|
+
* the body of the method
|
4771
|
+
*/
|
4772
|
+
rb_define_method(rb_cMETHOD, "body", node_body, 0);
|
4773
|
+
rb_ary_push(members, rb_str_new2("body"));
|
4773
4774
|
}
|
4774
4775
|
|
4775
4776
|
/* Document-class: Node::MODULE
|
@@ -4791,17 +4792,17 @@ void define_node_subclass_methods()
|
|
4791
4792
|
rb_iv_set(rb_cMODULE, "__type__", INT2NUM(NODE_MODULE));
|
4792
4793
|
rb_define_singleton_method(rb_cMODULE, "members", node_s_members, 0);
|
4793
4794
|
|
4794
|
-
/* Document-method: body
|
4795
|
-
* the body of the module definition
|
4796
|
-
*/
|
4797
|
-
rb_define_method(rb_cMODULE, "body", node_body, 0);
|
4798
|
-
rb_ary_push(members, rb_str_new2("body"));
|
4799
|
-
|
4800
4795
|
/* Document-method: cpath
|
4801
4796
|
* the name of the module to define
|
4802
4797
|
*/
|
4803
4798
|
rb_define_method(rb_cMODULE, "cpath", node_cpath, 0);
|
4804
4799
|
rb_ary_push(members, rb_str_new2("cpath"));
|
4800
|
+
|
4801
|
+
/* Document-method: body
|
4802
|
+
* the body of the module definition
|
4803
|
+
*/
|
4804
|
+
rb_define_method(rb_cMODULE, "body", node_body, 0);
|
4805
|
+
rb_ary_push(members, rb_str_new2("body"));
|
4805
4806
|
}
|
4806
4807
|
|
4807
4808
|
/* Document-class: Node::NEWLINE
|
@@ -4943,12 +4944,6 @@ void define_node_subclass_methods()
|
|
4943
4944
|
rb_iv_set(rb_cOP_ASGN1, "__type__", INT2NUM(NODE_OP_ASGN1));
|
4944
4945
|
rb_define_singleton_method(rb_cOP_ASGN1, "members", node_s_members, 0);
|
4945
4946
|
|
4946
|
-
/* Document-method: recv
|
4947
|
-
* the receiver of the assignment
|
4948
|
-
*/
|
4949
|
-
rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
|
4950
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
4951
|
-
|
4952
4947
|
/* Document-method: args
|
4953
4948
|
* the arguments to the assigment
|
4954
4949
|
*/
|
@@ -4961,6 +4956,12 @@ void define_node_subclass_methods()
|
|
4961
4956
|
*/
|
4962
4957
|
rb_define_method(rb_cOP_ASGN1, "mid", node_mid, 0);
|
4963
4958
|
rb_ary_push(members, rb_str_new2("mid"));
|
4959
|
+
|
4960
|
+
/* Document-method: recv
|
4961
|
+
* the receiver of the assignment
|
4962
|
+
*/
|
4963
|
+
rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
|
4964
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
4964
4965
|
}
|
4965
4966
|
|
4966
4967
|
/* Document-class: Node::OP_ASGN2
|
@@ -4989,18 +4990,18 @@ void define_node_subclass_methods()
|
|
4989
4990
|
rb_define_method(rb_cOP_ASGN2, "recv", node_recv, 0);
|
4990
4991
|
rb_ary_push(members, rb_str_new2("recv"));
|
4991
4992
|
|
4992
|
-
/* Document-method: value
|
4993
|
-
* the value to assign to the attribute
|
4994
|
-
*/
|
4995
|
-
rb_define_method(rb_cOP_ASGN2, "value", node_value, 0);
|
4996
|
-
rb_ary_push(members, rb_str_new2("value"));
|
4997
|
-
|
4998
4993
|
/* Document-method: next
|
4999
4994
|
* another node of type OP_ASGN2 which contains more information
|
5000
4995
|
* about the assignment operation than can fit in this node alone
|
5001
4996
|
*/
|
5002
4997
|
rb_define_method(rb_cOP_ASGN2, "next", node_next, 0);
|
5003
4998
|
rb_ary_push(members, rb_str_new2("next"));
|
4999
|
+
|
5000
|
+
/* Document-method: value
|
5001
|
+
* the value to assign to the attribute
|
5002
|
+
*/
|
5003
|
+
rb_define_method(rb_cOP_ASGN2, "value", node_value, 0);
|
5004
|
+
rb_ary_push(members, rb_str_new2("value"));
|
5004
5005
|
}
|
5005
5006
|
|
5006
5007
|
/* Document-class: Node::OP_ASGN2_ARG
|
@@ -5083,11 +5084,13 @@ void define_node_subclass_methods()
|
|
5083
5084
|
rb_iv_set(rb_cOP_ASGN_OR, "__type__", INT2NUM(NODE_OP_ASGN_OR));
|
5084
5085
|
rb_define_singleton_method(rb_cOP_ASGN_OR, "members", node_s_members, 0);
|
5085
5086
|
|
5086
|
-
/* Document-method:
|
5087
|
-
*
|
5087
|
+
/* Document-method: aid
|
5088
|
+
* if this indicator is nonzero, ruby will check to see if the
|
5089
|
+
* provided expression is defined, otherwise it will assume that
|
5090
|
+
* the provided expression is defined.
|
5088
5091
|
*/
|
5089
|
-
rb_define_method(rb_cOP_ASGN_OR, "
|
5090
|
-
rb_ary_push(members, rb_str_new2("
|
5092
|
+
rb_define_method(rb_cOP_ASGN_OR, "aid", node_aid, 0);
|
5093
|
+
rb_ary_push(members, rb_str_new2("aid"));
|
5091
5094
|
|
5092
5095
|
/* Document-method: value
|
5093
5096
|
* the right hand side of the assignment
|
@@ -5095,13 +5098,11 @@ void define_node_subclass_methods()
|
|
5095
5098
|
rb_define_method(rb_cOP_ASGN_OR, "value", node_value, 0);
|
5096
5099
|
rb_ary_push(members, rb_str_new2("value"));
|
5097
5100
|
|
5098
|
-
/* Document-method:
|
5099
|
-
*
|
5100
|
-
* provided expression is defined, otherwise it will assume that
|
5101
|
-
* the provided expression is defined.
|
5101
|
+
/* Document-method: recv
|
5102
|
+
* the receiver of the assignment
|
5102
5103
|
*/
|
5103
|
-
rb_define_method(rb_cOP_ASGN_OR, "
|
5104
|
-
rb_ary_push(members, rb_str_new2("
|
5104
|
+
rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
|
5105
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
5105
5106
|
}
|
5106
5107
|
|
5107
5108
|
/* Document-class: Node::OR
|
@@ -5237,12 +5238,6 @@ void define_node_subclass_methods()
|
|
5237
5238
|
rb_iv_set(rb_cRESCUE, "__type__", INT2NUM(NODE_RESCUE));
|
5238
5239
|
rb_define_singleton_method(rb_cRESCUE, "members", node_s_members, 0);
|
5239
5240
|
|
5240
|
-
/* Document-method: else
|
5241
|
-
* the expression to be evaluated if no exception is raised
|
5242
|
-
*/
|
5243
|
-
rb_define_method(rb_cRESCUE, "else", node_else, 0);
|
5244
|
-
rb_ary_push(members, rb_str_new2("else"));
|
5245
|
-
|
5246
5241
|
/* Document-method: head
|
5247
5242
|
* the body of the block to evaluate
|
5248
5243
|
*/
|
@@ -5254,6 +5249,12 @@ void define_node_subclass_methods()
|
|
5254
5249
|
*/
|
5255
5250
|
rb_define_method(rb_cRESCUE, "resq", node_resq, 0);
|
5256
5251
|
rb_ary_push(members, rb_str_new2("resq"));
|
5252
|
+
|
5253
|
+
/* Document-method: else
|
5254
|
+
* the expression to be evaluated if no exception is raised
|
5255
|
+
*/
|
5256
|
+
rb_define_method(rb_cRESCUE, "else", node_else, 0);
|
5257
|
+
rb_ary_push(members, rb_str_new2("else"));
|
5257
5258
|
}
|
5258
5259
|
|
5259
5260
|
/* Document-class: Node::RETRY
|
@@ -5343,13 +5344,6 @@ void define_node_subclass_methods()
|
|
5343
5344
|
rb_iv_set(rb_cSCOPE, "__type__", INT2NUM(NODE_SCOPE));
|
5344
5345
|
rb_define_singleton_method(rb_cSCOPE, "members", node_s_members, 0);
|
5345
5346
|
|
5346
|
-
/* Document-method: rval
|
5347
|
-
* holds information about which class(es) to search for constants
|
5348
|
-
* in this scope
|
5349
|
-
*/
|
5350
|
-
rb_define_method(rb_cSCOPE, "rval", node_rval, 0);
|
5351
|
-
rb_ary_push(members, rb_str_new2("rval"));
|
5352
|
-
|
5353
5347
|
/* Document-method: tbl
|
5354
5348
|
* the names of the local variables* next the first expression in
|
5355
5349
|
* the scope
|
@@ -5357,6 +5351,13 @@ void define_node_subclass_methods()
|
|
5357
5351
|
rb_define_method(rb_cSCOPE, "tbl", node_tbl, 0);
|
5358
5352
|
rb_ary_push(members, rb_str_new2("tbl"));
|
5359
5353
|
|
5354
|
+
/* Document-method: rval
|
5355
|
+
* holds information about which class(es) to search for constants
|
5356
|
+
* in this scope
|
5357
|
+
*/
|
5358
|
+
rb_define_method(rb_cSCOPE, "rval", node_rval, 0);
|
5359
|
+
rb_ary_push(members, rb_str_new2("rval"));
|
5360
|
+
|
5360
5361
|
/* Document-method: next
|
5361
5362
|
* the body of the lexical scope
|
5362
5363
|
*/
|
@@ -5557,10 +5558,10 @@ void define_node_subclass_methods()
|
|
5557
5558
|
rb_iv_set(rb_cVALIAS, "__member__", members);
|
5558
5559
|
rb_iv_set(rb_cVALIAS, "__type__", INT2NUM(NODE_VALIAS));
|
5559
5560
|
rb_define_singleton_method(rb_cVALIAS, "members", node_s_members, 0);
|
5560
|
-
rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
|
5561
|
-
rb_ary_push(members, rb_str_new2("second"));
|
5562
5561
|
rb_define_method(rb_cVALIAS, "first", node_1st, 0);
|
5563
5562
|
rb_ary_push(members, rb_str_new2("first"));
|
5563
|
+
rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
|
5564
|
+
rb_ary_push(members, rb_str_new2("second"));
|
5564
5565
|
}
|
5565
5566
|
|
5566
5567
|
/* Document-class: Node::VCALL
|