rice 1.0.2 → 1.1.0
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/COPYING +2 -2
- data/Doxyfile +1 -1
- data/Makefile.in +8 -3
- data/Rakefile +3 -3
- data/config.guess +30 -49
- data/config.sub +4 -22
- data/configure +319 -104
- data/configure.ac +6 -2
- data/doxygen.ac +2 -2
- data/extconf.rb +22 -0
- data/post-autoconf.rb +3 -3
- data/post-automake.rb +2 -2
- data/rice/Array.ipp +7 -6
- data/rice/Critical_Guard.hpp +6 -0
- data/rice/Critical_Guard.ipp +6 -0
- data/rice/Data_Object.hpp +1 -120
- data/rice/Data_Object.ipp +5 -1
- data/rice/Data_Object_defn.hpp +132 -0
- data/rice/Data_Type.ipp +18 -2
- data/rice/Enum.ipp +3 -3
- data/rice/Exception.hpp +1 -61
- data/rice/Exception_Base.hpp +2 -24
- data/rice/Exception_Base.ipp +2 -0
- data/rice/Exception_Base_defn.hpp +27 -0
- data/rice/Exception_defn.hpp +69 -0
- data/rice/Hash.hpp +5 -1
- data/rice/Hash.ipp +7 -7
- data/rice/Makefile.am +20 -3
- data/rice/Makefile.in +39 -4
- data/rice/Module.cpp +11 -3
- data/rice/Module_impl.hpp +20 -9
- data/rice/Module_impl.ipp +84 -87
- data/rice/Object.cpp +1 -1
- data/rice/VM.cpp +14 -1
- data/rice/VM.hpp +6 -1
- data/rice/config.hpp +24 -3
- data/rice/config.hpp.in +21 -0
- data/rice/detail/Auto_Function_Wrapper.hpp +97 -65
- data/rice/detail/Auto_Function_Wrapper.ipp +160 -128
- data/rice/detail/Auto_Member_Function_Wrapper.hpp +96 -64
- data/rice/detail/Auto_Member_Function_Wrapper.ipp +160 -128
- data/rice/detail/Exception_Handler.hpp +2 -112
- data/rice/detail/Exception_Handler.ipp +68 -0
- data/rice/detail/Exception_Handler_defn.hpp +96 -0
- data/rice/detail/Iterator.hpp +93 -0
- data/rice/detail/check_ruby_type.cpp +8 -2
- data/rice/detail/creation_funcs.ipp +2 -2
- data/rice/detail/define_method_and_auto_wrap.hpp +4 -2
- data/rice/detail/define_method_and_auto_wrap.ipp +14 -5
- data/rice/detail/env.hpp +4 -0
- data/rice/detail/method_data.cpp +362 -75
- data/rice/detail/method_data.cpp.rpp +301 -0
- data/rice/detail/method_data.hpp +6 -18
- data/rice/detail/mininode.cpp +1220 -0
- data/rice/detail/mininode.cpp.rpp +62 -0
- data/rice/detail/mininode.hpp +320 -0
- data/rice/detail/mininode.hpp.rpp +119 -0
- data/rice/detail/protect.cpp +4 -2
- data/rice/detail/ruby.hpp +44 -18
- data/rice/detail/ruby_version_code.hpp +6 -0
- data/rice/detail/ruby_version_code.hpp.in +6 -0
- data/rice/detail/rubysig.hpp +6 -0
- data/rice/detail/st.hpp +6 -2
- data/rice/detail/wrap_function.hpp +50 -48
- data/rice/detail/wrap_function.ipp +48 -48
- data/rice/generate_code.rb +43 -293
- data/rice/global_function.hpp +10 -4
- data/rice/global_function.ipp +1 -2
- data/rice/ruby_mark.hpp +13 -0
- data/rice/ruby_try_catch.hpp +1 -1
- data/rice/rubypp.rb +97 -0
- data/rice/to_from_ruby.ipp +3 -3
- data/ruby.ac +44 -8
- data/ruby/Makefile.in +2 -0
- data/ruby/lib/Makefile.in +2 -0
- data/ruby/lib/mkmf-rice.rb.in +4 -1
- data/ruby/lib/version.rb +3 -0
- data/sample/Makefile.am +2 -2
- data/sample/Makefile.in +4 -2
- data/test/Makefile.am +2 -1
- data/test/Makefile.in +7 -2
- data/test/test_Array.cpp +2 -2
- data/test/test_Class.cpp +4 -1
- data/test/test_Critical_Guard.cpp +4 -0
- data/test/test_Data_Object.cpp +43 -3
- data/test/test_Hash.cpp +3 -3
- data/test/test_String.cpp +8 -8
- data/test/test_VM.cpp +1 -1
- data/test/test_global_functions.cpp +45 -0
- data/test/test_rice.rb +5 -0
- metadata +115 -98
- data/rice/detail/Iterator_Definer.hpp +0 -98
@@ -0,0 +1,301 @@
|
|
1
|
+
#include "method_data.hpp"
|
2
|
+
|
3
|
+
// TODO: This is silly, autoconf...
|
4
|
+
#undef PACKAGE_NAME
|
5
|
+
#undef PACKAGE_STRING
|
6
|
+
#undef PACKAGE_TARNAME
|
7
|
+
#undef PACKAGE_VERSION
|
8
|
+
|
9
|
+
#include "../config.hpp"
|
10
|
+
|
11
|
+
#ruby <<END
|
12
|
+
MAX_ARGS = 15
|
13
|
+
nil
|
14
|
+
END
|
15
|
+
|
16
|
+
#if defined(HAVE_NODE_H)
|
17
|
+
/* pre-YARV */
|
18
|
+
#include <node.h>
|
19
|
+
#elif defined(REALLY_HAVE_RUBY_NODE_H)
|
20
|
+
/* YARV */
|
21
|
+
#include <ruby/node.h>
|
22
|
+
#else
|
23
|
+
/* YARV without node.h */
|
24
|
+
#include "mininode.hpp"
|
25
|
+
using namespace Rice::detail::Mininode;
|
26
|
+
#endif
|
27
|
+
|
28
|
+
#include "env.hpp"
|
29
|
+
|
30
|
+
#ifdef RUBY_VM
|
31
|
+
|
32
|
+
/* YARV */
|
33
|
+
|
34
|
+
namespace
|
35
|
+
{
|
36
|
+
|
37
|
+
struct rb_thread_struct
|
38
|
+
{
|
39
|
+
VALUE self;
|
40
|
+
void *vm;
|
41
|
+
VALUE *stack;
|
42
|
+
unsigned long stack_size;
|
43
|
+
VALUE *cfp;
|
44
|
+
/* ... */
|
45
|
+
};
|
46
|
+
|
47
|
+
typedef struct rb_thread_struct rb_thread_t;
|
48
|
+
|
49
|
+
} // namespace
|
50
|
+
|
51
|
+
extern "C" rb_thread_t * ruby_current_thread;
|
52
|
+
|
53
|
+
#endif
|
54
|
+
|
55
|
+
namespace
|
56
|
+
{
|
57
|
+
|
58
|
+
#ifdef RUBY_VM
|
59
|
+
|
60
|
+
/* YARV */
|
61
|
+
|
62
|
+
#define CFP_DATA_MEMO_NODE_AND_PC cfp[0]
|
63
|
+
#define CFP_METHOD_CLASS cfp[11]
|
64
|
+
|
65
|
+
/* On YARV, we store the method data on the stack. We don't have to pop
|
66
|
+
* it off the stack, because the stack pointer will be reset to the
|
67
|
+
* previous frame's stack pointer when the function returns.
|
68
|
+
*/
|
69
|
+
static void fix_frame()
|
70
|
+
{
|
71
|
+
do {
|
72
|
+
VALUE * cfp = ruby_current_thread->cfp;
|
73
|
+
CFP_DATA_MEMO_NODE_AND_PC = RBASIC(CFP_METHOD_CLASS)->klass;
|
74
|
+
|
75
|
+
if(rb_type(CFP_DATA_MEMO_NODE_AND_PC) != T_NODE)
|
76
|
+
{
|
77
|
+
/* This can happen for module functions that are created after
|
78
|
+
* the stub function */
|
79
|
+
rb_raise(
|
80
|
+
rb_eRuntimeError,
|
81
|
+
"Cannot find method data for module function");
|
82
|
+
}
|
83
|
+
else
|
84
|
+
{
|
85
|
+
CFP_METHOD_CLASS = RCLASS_SUPER(CFP_METHOD_CLASS);
|
86
|
+
}
|
87
|
+
} while(0);
|
88
|
+
}
|
89
|
+
|
90
|
+
#define FIX_FRAME() \
|
91
|
+
fix_frame()
|
92
|
+
|
93
|
+
static NODE * data_memo_node()
|
94
|
+
{
|
95
|
+
VALUE * cfp = ruby_current_thread->cfp;
|
96
|
+
return (NODE *)CFP_DATA_MEMO_NODE_AND_PC;
|
97
|
+
}
|
98
|
+
|
99
|
+
#else
|
100
|
+
|
101
|
+
/* pre-YARV */
|
102
|
+
|
103
|
+
/* Okay to not pop this temporary frame, since it will be popped by the
|
104
|
+
* caller
|
105
|
+
*/
|
106
|
+
#define FIX_FRAME() \
|
107
|
+
struct FRAME _frame = *ruby_frame; \
|
108
|
+
_frame.last_class = RCLASS(ruby_frame->last_class)->super; \
|
109
|
+
_frame.prev = ruby_frame; \
|
110
|
+
ruby_frame = &_frame; \
|
111
|
+
|
112
|
+
static NODE * data_memo_node()
|
113
|
+
{
|
114
|
+
return (NODE *)(RBASIC(ruby_frame->prev->last_class)->klass);
|
115
|
+
}
|
116
|
+
|
117
|
+
#endif
|
118
|
+
|
119
|
+
typedef VALUE (*Method_Func)(ANYARGS);
|
120
|
+
|
121
|
+
static Method_Func actual_cfunc()
|
122
|
+
{
|
123
|
+
return data_memo_node()->nd_cfnc;
|
124
|
+
}
|
125
|
+
|
126
|
+
static VALUE data_wrapper_m1(int argc, VALUE * argv, VALUE self)
|
127
|
+
{
|
128
|
+
VALUE result;
|
129
|
+
FIX_FRAME();
|
130
|
+
result = (*actual_cfunc())(argc, argv, self);
|
131
|
+
return result;
|
132
|
+
}
|
133
|
+
|
134
|
+
static VALUE data_wrapper_0(VALUE self)
|
135
|
+
{
|
136
|
+
VALUE result;
|
137
|
+
FIX_FRAME();
|
138
|
+
result = (*actual_cfunc())(self);
|
139
|
+
return result;
|
140
|
+
}
|
141
|
+
|
142
|
+
#ruby <<END
|
143
|
+
(1..MAX_ARGS).each do |i|
|
144
|
+
params = (1..i).map { |j| "VALUE arg#{j}" }.join(', ')
|
145
|
+
args = (1..i).map { |j| "arg#{j}" }.join(', ')
|
146
|
+
|
147
|
+
puts <<-END
|
148
|
+
static VALUE data_wrapper_#{i}(VALUE self, #{params})
|
149
|
+
{
|
150
|
+
VALUE result;
|
151
|
+
FIX_FRAME();
|
152
|
+
result = (*actual_cfunc())(self, #{args});
|
153
|
+
return result;
|
154
|
+
}
|
155
|
+
END
|
156
|
+
end
|
157
|
+
|
158
|
+
nil
|
159
|
+
END
|
160
|
+
|
161
|
+
} // namespace
|
162
|
+
|
163
|
+
/* Define a method and attach data to it.
|
164
|
+
*
|
165
|
+
* The method looks to ruby like a normal aliased CFUNC, with a modified
|
166
|
+
* origin class:
|
167
|
+
*
|
168
|
+
* NODE_FBODY
|
169
|
+
* |- (u1) orig - origin class
|
170
|
+
* | |- basic
|
171
|
+
* | | |- flags - origin class flags + FL_SINGLETON
|
172
|
+
* | | +- klass - NODE_MEMO
|
173
|
+
* | | |- (u1) cfnc - actual C function to call
|
174
|
+
* | | |- (u2) rval - stored data
|
175
|
+
* | | +- (u3) 0
|
176
|
+
* | |- iv_tbl - 0
|
177
|
+
* | |- m_tbl - 0
|
178
|
+
* | +- super - actual origin class
|
179
|
+
* |- (u2) mid - name of the method
|
180
|
+
* +- (u3) head - NODE_CFUNC
|
181
|
+
* |- (u1) cfnc - wrapper function to call
|
182
|
+
* +- (u2) argc - function arity
|
183
|
+
*
|
184
|
+
* Or, on YARV:
|
185
|
+
*
|
186
|
+
* NODE_FBODY
|
187
|
+
* |- (u1) oid - name of the method
|
188
|
+
* +- (u2) body - NODE_METHOD
|
189
|
+
* |- (u1) clss - origin class
|
190
|
+
* | |- basic
|
191
|
+
* | | |- flags - origin class flags + FL_SINGLETON
|
192
|
+
* | | +- klass - NODE_MEMO
|
193
|
+
* | | |- (u1) cfnc - actual C function to call
|
194
|
+
* | | |- (u2) rval - stored data
|
195
|
+
* | | +- (u3) 0
|
196
|
+
* | |- ptr - rb_classext_t
|
197
|
+
* | | |- super - actual origin class
|
198
|
+
* | | +- iv_tbl - 0
|
199
|
+
* | |- m_tbl - 0
|
200
|
+
* | +- iv_index_tbl - 0?
|
201
|
+
* |- (u2) body - NODE_CFUNC
|
202
|
+
* | |- (u1) cfnc - wrapper function to call
|
203
|
+
* | |- (u2) argc - function arity
|
204
|
+
* +- (u3) noex - NOEX_PUBLIC
|
205
|
+
*
|
206
|
+
* When the wrapper function is called, last_class is set to the origin
|
207
|
+
* class found in the FBODY node. So that the method data will be
|
208
|
+
* accessible, and so last_class will point to klass and not to our MEMO
|
209
|
+
* node, it is necessary to "fix" the current frame.
|
210
|
+
*
|
211
|
+
* Pre-YARV, this means we duplicate the current frame and set last_class:
|
212
|
+
*
|
213
|
+
* ruby_frame
|
214
|
+
* |- last_class - klass
|
215
|
+
* |- prev
|
216
|
+
* | |- last_class - NODE_MEMO
|
217
|
+
* | | |- (u1) cfnc - actual C function to call
|
218
|
+
* | | |- (u2) rval - stored data
|
219
|
+
* | | +- (u3) 0
|
220
|
+
* | |- prev - the real previous frame
|
221
|
+
* | +- ...
|
222
|
+
* +- ...
|
223
|
+
*
|
224
|
+
* The method data is then accessible via
|
225
|
+
* ruby_frame->prev->last_class->rval.
|
226
|
+
*
|
227
|
+
* On YARV, the current frame is not duplicated; rather, the method data
|
228
|
+
* is placed on the stack and is referenced by one of the unused members
|
229
|
+
* of the control frame (the program counter):
|
230
|
+
*
|
231
|
+
* ruby_current_thread->cfp
|
232
|
+
* |- pc - NODE_MEMO
|
233
|
+
* | |- (u1) cfnc - actual C function to call
|
234
|
+
* | |- (u2) rval - stored data
|
235
|
+
* | +- (u3) 0
|
236
|
+
* |- method_class - klass
|
237
|
+
* +- ...
|
238
|
+
*
|
239
|
+
*/
|
240
|
+
VALUE
|
241
|
+
Rice::detail::
|
242
|
+
define_method_with_data(
|
243
|
+
VALUE klass, ID id, VALUE (*cfunc)(ANYARGS), int arity, VALUE data)
|
244
|
+
{
|
245
|
+
/* TODO: origin should have #to_s and #inspect methods defined */
|
246
|
+
#ifdef HAVE_RB_CLASS_BOOT
|
247
|
+
VALUE origin = rb_class_boot(klass);
|
248
|
+
#else
|
249
|
+
VALUE origin = rb_class_new(klass);
|
250
|
+
#endif
|
251
|
+
NODE * node;
|
252
|
+
|
253
|
+
VALUE (*data_wrapper)(ANYARGS);
|
254
|
+
switch(arity)
|
255
|
+
{
|
256
|
+
#ruby <<END
|
257
|
+
(0..MAX_ARGS).each do |i|
|
258
|
+
puts <<-END
|
259
|
+
case #{i}: data_wrapper = RUBY_METHOD_FUNC(data_wrapper_#{i}); break;
|
260
|
+
END
|
261
|
+
end
|
262
|
+
nil
|
263
|
+
END
|
264
|
+
case -1: data_wrapper = RUBY_METHOD_FUNC(data_wrapper_m1); break;
|
265
|
+
default: rb_raise(rb_eArgError, "unsupported arity %d", arity);
|
266
|
+
}
|
267
|
+
|
268
|
+
FL_SET(origin, FL_SINGLETON);
|
269
|
+
rb_singleton_class_attached(origin, klass);
|
270
|
+
rb_name_class(origin, SYM2ID(rb_class_name(klass)));
|
271
|
+
|
272
|
+
RBASIC(origin)->klass = (VALUE)NEW_NODE(NODE_MEMO, cfunc, data, 0);
|
273
|
+
|
274
|
+
#ifdef RUBY_VM
|
275
|
+
/* YARV */
|
276
|
+
node = NEW_FBODY(
|
277
|
+
NEW_METHOD(
|
278
|
+
NEW_CFUNC(data_wrapper, arity),
|
279
|
+
origin,
|
280
|
+
NOEX_PUBLIC),
|
281
|
+
id);
|
282
|
+
st_insert(RCLASS_M_TBL(klass), id, (st_data_t)node);
|
283
|
+
#else
|
284
|
+
/* pre-YARV */
|
285
|
+
node = NEW_FBODY(
|
286
|
+
NEW_CFUNC(data_wrapper, arity),
|
287
|
+
id,
|
288
|
+
origin);
|
289
|
+
rb_add_method(klass, id, node, NOEX_PUBLIC);
|
290
|
+
#endif
|
291
|
+
|
292
|
+
return Qnil;
|
293
|
+
}
|
294
|
+
|
295
|
+
VALUE
|
296
|
+
Rice::detail::
|
297
|
+
method_data()
|
298
|
+
{
|
299
|
+
return data_memo_node()->nd_rval;
|
300
|
+
}
|
301
|
+
|
data/rice/detail/method_data.hpp
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
#ifndef
|
2
|
-
#define
|
1
|
+
#ifndef Rice__detail__method_data__hpp
|
2
|
+
#define Rice__detail__method_data__hpp
|
3
3
|
|
4
4
|
#include "ruby.hpp"
|
5
5
|
|
@@ -9,25 +9,13 @@ namespace Rice
|
|
9
9
|
namespace detail
|
10
10
|
{
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
VALUE define_method_with_data(
|
13
|
+
VALUE klass, ID id, VALUE (*cfunc)(ANYARGS), int arity, VALUE data);
|
14
14
|
|
15
|
-
|
16
|
-
void define_method_with_data(
|
17
|
-
VALUE klass,
|
18
|
-
char const * name,
|
19
|
-
RUBY_METHOD_FUNC func,
|
20
|
-
int num_args,
|
21
|
-
void * data);
|
22
|
-
|
23
|
-
// Set the data associated with a method.
|
24
|
-
void set_method_data(
|
25
|
-
VALUE klass,
|
26
|
-
char const * name,
|
27
|
-
void * data);
|
15
|
+
VALUE method_data();
|
28
16
|
|
29
17
|
} // namespace detail
|
30
18
|
|
31
19
|
} // namespace Rice
|
32
20
|
|
33
|
-
#endif //
|
21
|
+
#endif // Rice__detail__method_data__hpp
|
@@ -0,0 +1,1220 @@
|
|
1
|
+
// TODO: This is silly, autoconf...
|
2
|
+
#undef PACKAGE_NAME
|
3
|
+
#undef PACKAGE_STRING
|
4
|
+
#undef PACKAGE_TARNAME
|
5
|
+
#undef PACKAGE_VERSION
|
6
|
+
|
7
|
+
#include "../config.hpp"
|
8
|
+
|
9
|
+
// TODO: This is silly, autoconf...
|
10
|
+
#undef PACKAGE_NAME
|
11
|
+
#undef PACKAGE_STRING
|
12
|
+
#undef PACKAGE_TARNAME
|
13
|
+
#undef PACKAGE_VERSION
|
14
|
+
|
15
|
+
#if !defined(HAVE_NODE_H) && !defined(REALLY_HAVE_RUBY_NODE_H)
|
16
|
+
|
17
|
+
#include "mininode.hpp"
|
18
|
+
#include <cstring>
|
19
|
+
|
20
|
+
extern "C"
|
21
|
+
char const * ruby_node_name(int node);
|
22
|
+
|
23
|
+
namespace
|
24
|
+
{
|
25
|
+
|
26
|
+
int node_value(char const * name)
|
27
|
+
{
|
28
|
+
/* TODO: any way to end the block? */
|
29
|
+
int j;
|
30
|
+
for(j = 0; ; ++j)
|
31
|
+
{
|
32
|
+
if(!std::strcmp(name, ruby_node_name(j)))
|
33
|
+
{
|
34
|
+
return j;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
} // namespace
|
40
|
+
|
41
|
+
static int NODE_METHOD_ = -1;
|
42
|
+
|
43
|
+
int Rice::detail::Mininode::get_NODE_METHOD()
|
44
|
+
{
|
45
|
+
if(NODE_METHOD_ == -1)
|
46
|
+
{
|
47
|
+
NODE_METHOD_ = node_value("NODE_METHOD");
|
48
|
+
}
|
49
|
+
|
50
|
+
return NODE_METHOD_;
|
51
|
+
}
|
52
|
+
static int NODE_FBODY_ = -1;
|
53
|
+
|
54
|
+
int Rice::detail::Mininode::get_NODE_FBODY()
|
55
|
+
{
|
56
|
+
if(NODE_FBODY_ == -1)
|
57
|
+
{
|
58
|
+
NODE_FBODY_ = node_value("NODE_FBODY");
|
59
|
+
}
|
60
|
+
|
61
|
+
return NODE_FBODY_;
|
62
|
+
}
|
63
|
+
static int NODE_CFUNC_ = -1;
|
64
|
+
|
65
|
+
int Rice::detail::Mininode::get_NODE_CFUNC()
|
66
|
+
{
|
67
|
+
if(NODE_CFUNC_ == -1)
|
68
|
+
{
|
69
|
+
NODE_CFUNC_ = node_value("NODE_CFUNC");
|
70
|
+
}
|
71
|
+
|
72
|
+
return NODE_CFUNC_;
|
73
|
+
}
|
74
|
+
static int NODE_SCOPE_ = -1;
|
75
|
+
|
76
|
+
int Rice::detail::Mininode::get_NODE_SCOPE()
|
77
|
+
{
|
78
|
+
if(NODE_SCOPE_ == -1)
|
79
|
+
{
|
80
|
+
NODE_SCOPE_ = node_value("NODE_SCOPE");
|
81
|
+
}
|
82
|
+
|
83
|
+
return NODE_SCOPE_;
|
84
|
+
}
|
85
|
+
static int NODE_BLOCK_ = -1;
|
86
|
+
|
87
|
+
int Rice::detail::Mininode::get_NODE_BLOCK()
|
88
|
+
{
|
89
|
+
if(NODE_BLOCK_ == -1)
|
90
|
+
{
|
91
|
+
NODE_BLOCK_ = node_value("NODE_BLOCK");
|
92
|
+
}
|
93
|
+
|
94
|
+
return NODE_BLOCK_;
|
95
|
+
}
|
96
|
+
static int NODE_IF_ = -1;
|
97
|
+
|
98
|
+
int Rice::detail::Mininode::get_NODE_IF()
|
99
|
+
{
|
100
|
+
if(NODE_IF_ == -1)
|
101
|
+
{
|
102
|
+
NODE_IF_ = node_value("NODE_IF");
|
103
|
+
}
|
104
|
+
|
105
|
+
return NODE_IF_;
|
106
|
+
}
|
107
|
+
static int NODE_CASE_ = -1;
|
108
|
+
|
109
|
+
int Rice::detail::Mininode::get_NODE_CASE()
|
110
|
+
{
|
111
|
+
if(NODE_CASE_ == -1)
|
112
|
+
{
|
113
|
+
NODE_CASE_ = node_value("NODE_CASE");
|
114
|
+
}
|
115
|
+
|
116
|
+
return NODE_CASE_;
|
117
|
+
}
|
118
|
+
static int NODE_WHEN_ = -1;
|
119
|
+
|
120
|
+
int Rice::detail::Mininode::get_NODE_WHEN()
|
121
|
+
{
|
122
|
+
if(NODE_WHEN_ == -1)
|
123
|
+
{
|
124
|
+
NODE_WHEN_ = node_value("NODE_WHEN");
|
125
|
+
}
|
126
|
+
|
127
|
+
return NODE_WHEN_;
|
128
|
+
}
|
129
|
+
static int NODE_OPT_N_ = -1;
|
130
|
+
|
131
|
+
int Rice::detail::Mininode::get_NODE_OPT_N()
|
132
|
+
{
|
133
|
+
if(NODE_OPT_N_ == -1)
|
134
|
+
{
|
135
|
+
NODE_OPT_N_ = node_value("NODE_OPT_N");
|
136
|
+
}
|
137
|
+
|
138
|
+
return NODE_OPT_N_;
|
139
|
+
}
|
140
|
+
static int NODE_WHILE_ = -1;
|
141
|
+
|
142
|
+
int Rice::detail::Mininode::get_NODE_WHILE()
|
143
|
+
{
|
144
|
+
if(NODE_WHILE_ == -1)
|
145
|
+
{
|
146
|
+
NODE_WHILE_ = node_value("NODE_WHILE");
|
147
|
+
}
|
148
|
+
|
149
|
+
return NODE_WHILE_;
|
150
|
+
}
|
151
|
+
static int NODE_UNTIL_ = -1;
|
152
|
+
|
153
|
+
int Rice::detail::Mininode::get_NODE_UNTIL()
|
154
|
+
{
|
155
|
+
if(NODE_UNTIL_ == -1)
|
156
|
+
{
|
157
|
+
NODE_UNTIL_ = node_value("NODE_UNTIL");
|
158
|
+
}
|
159
|
+
|
160
|
+
return NODE_UNTIL_;
|
161
|
+
}
|
162
|
+
static int NODE_ITER_ = -1;
|
163
|
+
|
164
|
+
int Rice::detail::Mininode::get_NODE_ITER()
|
165
|
+
{
|
166
|
+
if(NODE_ITER_ == -1)
|
167
|
+
{
|
168
|
+
NODE_ITER_ = node_value("NODE_ITER");
|
169
|
+
}
|
170
|
+
|
171
|
+
return NODE_ITER_;
|
172
|
+
}
|
173
|
+
static int NODE_FOR_ = -1;
|
174
|
+
|
175
|
+
int Rice::detail::Mininode::get_NODE_FOR()
|
176
|
+
{
|
177
|
+
if(NODE_FOR_ == -1)
|
178
|
+
{
|
179
|
+
NODE_FOR_ = node_value("NODE_FOR");
|
180
|
+
}
|
181
|
+
|
182
|
+
return NODE_FOR_;
|
183
|
+
}
|
184
|
+
static int NODE_BREAK_ = -1;
|
185
|
+
|
186
|
+
int Rice::detail::Mininode::get_NODE_BREAK()
|
187
|
+
{
|
188
|
+
if(NODE_BREAK_ == -1)
|
189
|
+
{
|
190
|
+
NODE_BREAK_ = node_value("NODE_BREAK");
|
191
|
+
}
|
192
|
+
|
193
|
+
return NODE_BREAK_;
|
194
|
+
}
|
195
|
+
static int NODE_NEXT_ = -1;
|
196
|
+
|
197
|
+
int Rice::detail::Mininode::get_NODE_NEXT()
|
198
|
+
{
|
199
|
+
if(NODE_NEXT_ == -1)
|
200
|
+
{
|
201
|
+
NODE_NEXT_ = node_value("NODE_NEXT");
|
202
|
+
}
|
203
|
+
|
204
|
+
return NODE_NEXT_;
|
205
|
+
}
|
206
|
+
static int NODE_REDO_ = -1;
|
207
|
+
|
208
|
+
int Rice::detail::Mininode::get_NODE_REDO()
|
209
|
+
{
|
210
|
+
if(NODE_REDO_ == -1)
|
211
|
+
{
|
212
|
+
NODE_REDO_ = node_value("NODE_REDO");
|
213
|
+
}
|
214
|
+
|
215
|
+
return NODE_REDO_;
|
216
|
+
}
|
217
|
+
static int NODE_RETRY_ = -1;
|
218
|
+
|
219
|
+
int Rice::detail::Mininode::get_NODE_RETRY()
|
220
|
+
{
|
221
|
+
if(NODE_RETRY_ == -1)
|
222
|
+
{
|
223
|
+
NODE_RETRY_ = node_value("NODE_RETRY");
|
224
|
+
}
|
225
|
+
|
226
|
+
return NODE_RETRY_;
|
227
|
+
}
|
228
|
+
static int NODE_BEGIN_ = -1;
|
229
|
+
|
230
|
+
int Rice::detail::Mininode::get_NODE_BEGIN()
|
231
|
+
{
|
232
|
+
if(NODE_BEGIN_ == -1)
|
233
|
+
{
|
234
|
+
NODE_BEGIN_ = node_value("NODE_BEGIN");
|
235
|
+
}
|
236
|
+
|
237
|
+
return NODE_BEGIN_;
|
238
|
+
}
|
239
|
+
static int NODE_RESCUE_ = -1;
|
240
|
+
|
241
|
+
int Rice::detail::Mininode::get_NODE_RESCUE()
|
242
|
+
{
|
243
|
+
if(NODE_RESCUE_ == -1)
|
244
|
+
{
|
245
|
+
NODE_RESCUE_ = node_value("NODE_RESCUE");
|
246
|
+
}
|
247
|
+
|
248
|
+
return NODE_RESCUE_;
|
249
|
+
}
|
250
|
+
static int NODE_RESBODY_ = -1;
|
251
|
+
|
252
|
+
int Rice::detail::Mininode::get_NODE_RESBODY()
|
253
|
+
{
|
254
|
+
if(NODE_RESBODY_ == -1)
|
255
|
+
{
|
256
|
+
NODE_RESBODY_ = node_value("NODE_RESBODY");
|
257
|
+
}
|
258
|
+
|
259
|
+
return NODE_RESBODY_;
|
260
|
+
}
|
261
|
+
static int NODE_ENSURE_ = -1;
|
262
|
+
|
263
|
+
int Rice::detail::Mininode::get_NODE_ENSURE()
|
264
|
+
{
|
265
|
+
if(NODE_ENSURE_ == -1)
|
266
|
+
{
|
267
|
+
NODE_ENSURE_ = node_value("NODE_ENSURE");
|
268
|
+
}
|
269
|
+
|
270
|
+
return NODE_ENSURE_;
|
271
|
+
}
|
272
|
+
static int NODE_AND_ = -1;
|
273
|
+
|
274
|
+
int Rice::detail::Mininode::get_NODE_AND()
|
275
|
+
{
|
276
|
+
if(NODE_AND_ == -1)
|
277
|
+
{
|
278
|
+
NODE_AND_ = node_value("NODE_AND");
|
279
|
+
}
|
280
|
+
|
281
|
+
return NODE_AND_;
|
282
|
+
}
|
283
|
+
static int NODE_OR_ = -1;
|
284
|
+
|
285
|
+
int Rice::detail::Mininode::get_NODE_OR()
|
286
|
+
{
|
287
|
+
if(NODE_OR_ == -1)
|
288
|
+
{
|
289
|
+
NODE_OR_ = node_value("NODE_OR");
|
290
|
+
}
|
291
|
+
|
292
|
+
return NODE_OR_;
|
293
|
+
}
|
294
|
+
static int NODE_MASGN_ = -1;
|
295
|
+
|
296
|
+
int Rice::detail::Mininode::get_NODE_MASGN()
|
297
|
+
{
|
298
|
+
if(NODE_MASGN_ == -1)
|
299
|
+
{
|
300
|
+
NODE_MASGN_ = node_value("NODE_MASGN");
|
301
|
+
}
|
302
|
+
|
303
|
+
return NODE_MASGN_;
|
304
|
+
}
|
305
|
+
static int NODE_LASGN_ = -1;
|
306
|
+
|
307
|
+
int Rice::detail::Mininode::get_NODE_LASGN()
|
308
|
+
{
|
309
|
+
if(NODE_LASGN_ == -1)
|
310
|
+
{
|
311
|
+
NODE_LASGN_ = node_value("NODE_LASGN");
|
312
|
+
}
|
313
|
+
|
314
|
+
return NODE_LASGN_;
|
315
|
+
}
|
316
|
+
static int NODE_DASGN_ = -1;
|
317
|
+
|
318
|
+
int Rice::detail::Mininode::get_NODE_DASGN()
|
319
|
+
{
|
320
|
+
if(NODE_DASGN_ == -1)
|
321
|
+
{
|
322
|
+
NODE_DASGN_ = node_value("NODE_DASGN");
|
323
|
+
}
|
324
|
+
|
325
|
+
return NODE_DASGN_;
|
326
|
+
}
|
327
|
+
static int NODE_DASGN_CURR_ = -1;
|
328
|
+
|
329
|
+
int Rice::detail::Mininode::get_NODE_DASGN_CURR()
|
330
|
+
{
|
331
|
+
if(NODE_DASGN_CURR_ == -1)
|
332
|
+
{
|
333
|
+
NODE_DASGN_CURR_ = node_value("NODE_DASGN_CURR");
|
334
|
+
}
|
335
|
+
|
336
|
+
return NODE_DASGN_CURR_;
|
337
|
+
}
|
338
|
+
static int NODE_GASGN_ = -1;
|
339
|
+
|
340
|
+
int Rice::detail::Mininode::get_NODE_GASGN()
|
341
|
+
{
|
342
|
+
if(NODE_GASGN_ == -1)
|
343
|
+
{
|
344
|
+
NODE_GASGN_ = node_value("NODE_GASGN");
|
345
|
+
}
|
346
|
+
|
347
|
+
return NODE_GASGN_;
|
348
|
+
}
|
349
|
+
static int NODE_IASGN_ = -1;
|
350
|
+
|
351
|
+
int Rice::detail::Mininode::get_NODE_IASGN()
|
352
|
+
{
|
353
|
+
if(NODE_IASGN_ == -1)
|
354
|
+
{
|
355
|
+
NODE_IASGN_ = node_value("NODE_IASGN");
|
356
|
+
}
|
357
|
+
|
358
|
+
return NODE_IASGN_;
|
359
|
+
}
|
360
|
+
static int NODE_IASGN2_ = -1;
|
361
|
+
|
362
|
+
int Rice::detail::Mininode::get_NODE_IASGN2()
|
363
|
+
{
|
364
|
+
if(NODE_IASGN2_ == -1)
|
365
|
+
{
|
366
|
+
NODE_IASGN2_ = node_value("NODE_IASGN2");
|
367
|
+
}
|
368
|
+
|
369
|
+
return NODE_IASGN2_;
|
370
|
+
}
|
371
|
+
static int NODE_CDECL_ = -1;
|
372
|
+
|
373
|
+
int Rice::detail::Mininode::get_NODE_CDECL()
|
374
|
+
{
|
375
|
+
if(NODE_CDECL_ == -1)
|
376
|
+
{
|
377
|
+
NODE_CDECL_ = node_value("NODE_CDECL");
|
378
|
+
}
|
379
|
+
|
380
|
+
return NODE_CDECL_;
|
381
|
+
}
|
382
|
+
static int NODE_CVDECL_ = -1;
|
383
|
+
|
384
|
+
int Rice::detail::Mininode::get_NODE_CVDECL()
|
385
|
+
{
|
386
|
+
if(NODE_CVDECL_ == -1)
|
387
|
+
{
|
388
|
+
NODE_CVDECL_ = node_value("NODE_CVDECL");
|
389
|
+
}
|
390
|
+
|
391
|
+
return NODE_CVDECL_;
|
392
|
+
}
|
393
|
+
static int NODE_OP_ASGN1_ = -1;
|
394
|
+
|
395
|
+
int Rice::detail::Mininode::get_NODE_OP_ASGN1()
|
396
|
+
{
|
397
|
+
if(NODE_OP_ASGN1_ == -1)
|
398
|
+
{
|
399
|
+
NODE_OP_ASGN1_ = node_value("NODE_OP_ASGN1");
|
400
|
+
}
|
401
|
+
|
402
|
+
return NODE_OP_ASGN1_;
|
403
|
+
}
|
404
|
+
static int NODE_OP_ASGN2_ = -1;
|
405
|
+
|
406
|
+
int Rice::detail::Mininode::get_NODE_OP_ASGN2()
|
407
|
+
{
|
408
|
+
if(NODE_OP_ASGN2_ == -1)
|
409
|
+
{
|
410
|
+
NODE_OP_ASGN2_ = node_value("NODE_OP_ASGN2");
|
411
|
+
}
|
412
|
+
|
413
|
+
return NODE_OP_ASGN2_;
|
414
|
+
}
|
415
|
+
static int NODE_OP_ASGN_AND_ = -1;
|
416
|
+
|
417
|
+
int Rice::detail::Mininode::get_NODE_OP_ASGN_AND()
|
418
|
+
{
|
419
|
+
if(NODE_OP_ASGN_AND_ == -1)
|
420
|
+
{
|
421
|
+
NODE_OP_ASGN_AND_ = node_value("NODE_OP_ASGN_AND");
|
422
|
+
}
|
423
|
+
|
424
|
+
return NODE_OP_ASGN_AND_;
|
425
|
+
}
|
426
|
+
static int NODE_OP_ASGN_OR_ = -1;
|
427
|
+
|
428
|
+
int Rice::detail::Mininode::get_NODE_OP_ASGN_OR()
|
429
|
+
{
|
430
|
+
if(NODE_OP_ASGN_OR_ == -1)
|
431
|
+
{
|
432
|
+
NODE_OP_ASGN_OR_ = node_value("NODE_OP_ASGN_OR");
|
433
|
+
}
|
434
|
+
|
435
|
+
return NODE_OP_ASGN_OR_;
|
436
|
+
}
|
437
|
+
static int NODE_CALL_ = -1;
|
438
|
+
|
439
|
+
int Rice::detail::Mininode::get_NODE_CALL()
|
440
|
+
{
|
441
|
+
if(NODE_CALL_ == -1)
|
442
|
+
{
|
443
|
+
NODE_CALL_ = node_value("NODE_CALL");
|
444
|
+
}
|
445
|
+
|
446
|
+
return NODE_CALL_;
|
447
|
+
}
|
448
|
+
static int NODE_FCALL_ = -1;
|
449
|
+
|
450
|
+
int Rice::detail::Mininode::get_NODE_FCALL()
|
451
|
+
{
|
452
|
+
if(NODE_FCALL_ == -1)
|
453
|
+
{
|
454
|
+
NODE_FCALL_ = node_value("NODE_FCALL");
|
455
|
+
}
|
456
|
+
|
457
|
+
return NODE_FCALL_;
|
458
|
+
}
|
459
|
+
static int NODE_VCALL_ = -1;
|
460
|
+
|
461
|
+
int Rice::detail::Mininode::get_NODE_VCALL()
|
462
|
+
{
|
463
|
+
if(NODE_VCALL_ == -1)
|
464
|
+
{
|
465
|
+
NODE_VCALL_ = node_value("NODE_VCALL");
|
466
|
+
}
|
467
|
+
|
468
|
+
return NODE_VCALL_;
|
469
|
+
}
|
470
|
+
static int NODE_SUPER_ = -1;
|
471
|
+
|
472
|
+
int Rice::detail::Mininode::get_NODE_SUPER()
|
473
|
+
{
|
474
|
+
if(NODE_SUPER_ == -1)
|
475
|
+
{
|
476
|
+
NODE_SUPER_ = node_value("NODE_SUPER");
|
477
|
+
}
|
478
|
+
|
479
|
+
return NODE_SUPER_;
|
480
|
+
}
|
481
|
+
static int NODE_ZSUPER_ = -1;
|
482
|
+
|
483
|
+
int Rice::detail::Mininode::get_NODE_ZSUPER()
|
484
|
+
{
|
485
|
+
if(NODE_ZSUPER_ == -1)
|
486
|
+
{
|
487
|
+
NODE_ZSUPER_ = node_value("NODE_ZSUPER");
|
488
|
+
}
|
489
|
+
|
490
|
+
return NODE_ZSUPER_;
|
491
|
+
}
|
492
|
+
static int NODE_ARRAY_ = -1;
|
493
|
+
|
494
|
+
int Rice::detail::Mininode::get_NODE_ARRAY()
|
495
|
+
{
|
496
|
+
if(NODE_ARRAY_ == -1)
|
497
|
+
{
|
498
|
+
NODE_ARRAY_ = node_value("NODE_ARRAY");
|
499
|
+
}
|
500
|
+
|
501
|
+
return NODE_ARRAY_;
|
502
|
+
}
|
503
|
+
static int NODE_ZARRAY_ = -1;
|
504
|
+
|
505
|
+
int Rice::detail::Mininode::get_NODE_ZARRAY()
|
506
|
+
{
|
507
|
+
if(NODE_ZARRAY_ == -1)
|
508
|
+
{
|
509
|
+
NODE_ZARRAY_ = node_value("NODE_ZARRAY");
|
510
|
+
}
|
511
|
+
|
512
|
+
return NODE_ZARRAY_;
|
513
|
+
}
|
514
|
+
static int NODE_VALUES_ = -1;
|
515
|
+
|
516
|
+
int Rice::detail::Mininode::get_NODE_VALUES()
|
517
|
+
{
|
518
|
+
if(NODE_VALUES_ == -1)
|
519
|
+
{
|
520
|
+
NODE_VALUES_ = node_value("NODE_VALUES");
|
521
|
+
}
|
522
|
+
|
523
|
+
return NODE_VALUES_;
|
524
|
+
}
|
525
|
+
static int NODE_HASH_ = -1;
|
526
|
+
|
527
|
+
int Rice::detail::Mininode::get_NODE_HASH()
|
528
|
+
{
|
529
|
+
if(NODE_HASH_ == -1)
|
530
|
+
{
|
531
|
+
NODE_HASH_ = node_value("NODE_HASH");
|
532
|
+
}
|
533
|
+
|
534
|
+
return NODE_HASH_;
|
535
|
+
}
|
536
|
+
static int NODE_RETURN_ = -1;
|
537
|
+
|
538
|
+
int Rice::detail::Mininode::get_NODE_RETURN()
|
539
|
+
{
|
540
|
+
if(NODE_RETURN_ == -1)
|
541
|
+
{
|
542
|
+
NODE_RETURN_ = node_value("NODE_RETURN");
|
543
|
+
}
|
544
|
+
|
545
|
+
return NODE_RETURN_;
|
546
|
+
}
|
547
|
+
static int NODE_YIELD_ = -1;
|
548
|
+
|
549
|
+
int Rice::detail::Mininode::get_NODE_YIELD()
|
550
|
+
{
|
551
|
+
if(NODE_YIELD_ == -1)
|
552
|
+
{
|
553
|
+
NODE_YIELD_ = node_value("NODE_YIELD");
|
554
|
+
}
|
555
|
+
|
556
|
+
return NODE_YIELD_;
|
557
|
+
}
|
558
|
+
static int NODE_LVAR_ = -1;
|
559
|
+
|
560
|
+
int Rice::detail::Mininode::get_NODE_LVAR()
|
561
|
+
{
|
562
|
+
if(NODE_LVAR_ == -1)
|
563
|
+
{
|
564
|
+
NODE_LVAR_ = node_value("NODE_LVAR");
|
565
|
+
}
|
566
|
+
|
567
|
+
return NODE_LVAR_;
|
568
|
+
}
|
569
|
+
static int NODE_DVAR_ = -1;
|
570
|
+
|
571
|
+
int Rice::detail::Mininode::get_NODE_DVAR()
|
572
|
+
{
|
573
|
+
if(NODE_DVAR_ == -1)
|
574
|
+
{
|
575
|
+
NODE_DVAR_ = node_value("NODE_DVAR");
|
576
|
+
}
|
577
|
+
|
578
|
+
return NODE_DVAR_;
|
579
|
+
}
|
580
|
+
static int NODE_GVAR_ = -1;
|
581
|
+
|
582
|
+
int Rice::detail::Mininode::get_NODE_GVAR()
|
583
|
+
{
|
584
|
+
if(NODE_GVAR_ == -1)
|
585
|
+
{
|
586
|
+
NODE_GVAR_ = node_value("NODE_GVAR");
|
587
|
+
}
|
588
|
+
|
589
|
+
return NODE_GVAR_;
|
590
|
+
}
|
591
|
+
static int NODE_IVAR_ = -1;
|
592
|
+
|
593
|
+
int Rice::detail::Mininode::get_NODE_IVAR()
|
594
|
+
{
|
595
|
+
if(NODE_IVAR_ == -1)
|
596
|
+
{
|
597
|
+
NODE_IVAR_ = node_value("NODE_IVAR");
|
598
|
+
}
|
599
|
+
|
600
|
+
return NODE_IVAR_;
|
601
|
+
}
|
602
|
+
static int NODE_CONST_ = -1;
|
603
|
+
|
604
|
+
int Rice::detail::Mininode::get_NODE_CONST()
|
605
|
+
{
|
606
|
+
if(NODE_CONST_ == -1)
|
607
|
+
{
|
608
|
+
NODE_CONST_ = node_value("NODE_CONST");
|
609
|
+
}
|
610
|
+
|
611
|
+
return NODE_CONST_;
|
612
|
+
}
|
613
|
+
static int NODE_CVAR_ = -1;
|
614
|
+
|
615
|
+
int Rice::detail::Mininode::get_NODE_CVAR()
|
616
|
+
{
|
617
|
+
if(NODE_CVAR_ == -1)
|
618
|
+
{
|
619
|
+
NODE_CVAR_ = node_value("NODE_CVAR");
|
620
|
+
}
|
621
|
+
|
622
|
+
return NODE_CVAR_;
|
623
|
+
}
|
624
|
+
static int NODE_NTH_REF_ = -1;
|
625
|
+
|
626
|
+
int Rice::detail::Mininode::get_NODE_NTH_REF()
|
627
|
+
{
|
628
|
+
if(NODE_NTH_REF_ == -1)
|
629
|
+
{
|
630
|
+
NODE_NTH_REF_ = node_value("NODE_NTH_REF");
|
631
|
+
}
|
632
|
+
|
633
|
+
return NODE_NTH_REF_;
|
634
|
+
}
|
635
|
+
static int NODE_BACK_REF_ = -1;
|
636
|
+
|
637
|
+
int Rice::detail::Mininode::get_NODE_BACK_REF()
|
638
|
+
{
|
639
|
+
if(NODE_BACK_REF_ == -1)
|
640
|
+
{
|
641
|
+
NODE_BACK_REF_ = node_value("NODE_BACK_REF");
|
642
|
+
}
|
643
|
+
|
644
|
+
return NODE_BACK_REF_;
|
645
|
+
}
|
646
|
+
static int NODE_MATCH_ = -1;
|
647
|
+
|
648
|
+
int Rice::detail::Mininode::get_NODE_MATCH()
|
649
|
+
{
|
650
|
+
if(NODE_MATCH_ == -1)
|
651
|
+
{
|
652
|
+
NODE_MATCH_ = node_value("NODE_MATCH");
|
653
|
+
}
|
654
|
+
|
655
|
+
return NODE_MATCH_;
|
656
|
+
}
|
657
|
+
static int NODE_MATCH2_ = -1;
|
658
|
+
|
659
|
+
int Rice::detail::Mininode::get_NODE_MATCH2()
|
660
|
+
{
|
661
|
+
if(NODE_MATCH2_ == -1)
|
662
|
+
{
|
663
|
+
NODE_MATCH2_ = node_value("NODE_MATCH2");
|
664
|
+
}
|
665
|
+
|
666
|
+
return NODE_MATCH2_;
|
667
|
+
}
|
668
|
+
static int NODE_MATCH3_ = -1;
|
669
|
+
|
670
|
+
int Rice::detail::Mininode::get_NODE_MATCH3()
|
671
|
+
{
|
672
|
+
if(NODE_MATCH3_ == -1)
|
673
|
+
{
|
674
|
+
NODE_MATCH3_ = node_value("NODE_MATCH3");
|
675
|
+
}
|
676
|
+
|
677
|
+
return NODE_MATCH3_;
|
678
|
+
}
|
679
|
+
static int NODE_LIT_ = -1;
|
680
|
+
|
681
|
+
int Rice::detail::Mininode::get_NODE_LIT()
|
682
|
+
{
|
683
|
+
if(NODE_LIT_ == -1)
|
684
|
+
{
|
685
|
+
NODE_LIT_ = node_value("NODE_LIT");
|
686
|
+
}
|
687
|
+
|
688
|
+
return NODE_LIT_;
|
689
|
+
}
|
690
|
+
static int NODE_STR_ = -1;
|
691
|
+
|
692
|
+
int Rice::detail::Mininode::get_NODE_STR()
|
693
|
+
{
|
694
|
+
if(NODE_STR_ == -1)
|
695
|
+
{
|
696
|
+
NODE_STR_ = node_value("NODE_STR");
|
697
|
+
}
|
698
|
+
|
699
|
+
return NODE_STR_;
|
700
|
+
}
|
701
|
+
static int NODE_DSTR_ = -1;
|
702
|
+
|
703
|
+
int Rice::detail::Mininode::get_NODE_DSTR()
|
704
|
+
{
|
705
|
+
if(NODE_DSTR_ == -1)
|
706
|
+
{
|
707
|
+
NODE_DSTR_ = node_value("NODE_DSTR");
|
708
|
+
}
|
709
|
+
|
710
|
+
return NODE_DSTR_;
|
711
|
+
}
|
712
|
+
static int NODE_XSTR_ = -1;
|
713
|
+
|
714
|
+
int Rice::detail::Mininode::get_NODE_XSTR()
|
715
|
+
{
|
716
|
+
if(NODE_XSTR_ == -1)
|
717
|
+
{
|
718
|
+
NODE_XSTR_ = node_value("NODE_XSTR");
|
719
|
+
}
|
720
|
+
|
721
|
+
return NODE_XSTR_;
|
722
|
+
}
|
723
|
+
static int NODE_DXSTR_ = -1;
|
724
|
+
|
725
|
+
int Rice::detail::Mininode::get_NODE_DXSTR()
|
726
|
+
{
|
727
|
+
if(NODE_DXSTR_ == -1)
|
728
|
+
{
|
729
|
+
NODE_DXSTR_ = node_value("NODE_DXSTR");
|
730
|
+
}
|
731
|
+
|
732
|
+
return NODE_DXSTR_;
|
733
|
+
}
|
734
|
+
static int NODE_EVSTR_ = -1;
|
735
|
+
|
736
|
+
int Rice::detail::Mininode::get_NODE_EVSTR()
|
737
|
+
{
|
738
|
+
if(NODE_EVSTR_ == -1)
|
739
|
+
{
|
740
|
+
NODE_EVSTR_ = node_value("NODE_EVSTR");
|
741
|
+
}
|
742
|
+
|
743
|
+
return NODE_EVSTR_;
|
744
|
+
}
|
745
|
+
static int NODE_DREGX_ = -1;
|
746
|
+
|
747
|
+
int Rice::detail::Mininode::get_NODE_DREGX()
|
748
|
+
{
|
749
|
+
if(NODE_DREGX_ == -1)
|
750
|
+
{
|
751
|
+
NODE_DREGX_ = node_value("NODE_DREGX");
|
752
|
+
}
|
753
|
+
|
754
|
+
return NODE_DREGX_;
|
755
|
+
}
|
756
|
+
static int NODE_DREGX_ONCE_ = -1;
|
757
|
+
|
758
|
+
int Rice::detail::Mininode::get_NODE_DREGX_ONCE()
|
759
|
+
{
|
760
|
+
if(NODE_DREGX_ONCE_ == -1)
|
761
|
+
{
|
762
|
+
NODE_DREGX_ONCE_ = node_value("NODE_DREGX_ONCE");
|
763
|
+
}
|
764
|
+
|
765
|
+
return NODE_DREGX_ONCE_;
|
766
|
+
}
|
767
|
+
static int NODE_ARGS_ = -1;
|
768
|
+
|
769
|
+
int Rice::detail::Mininode::get_NODE_ARGS()
|
770
|
+
{
|
771
|
+
if(NODE_ARGS_ == -1)
|
772
|
+
{
|
773
|
+
NODE_ARGS_ = node_value("NODE_ARGS");
|
774
|
+
}
|
775
|
+
|
776
|
+
return NODE_ARGS_;
|
777
|
+
}
|
778
|
+
static int NODE_ARGS_AUX_ = -1;
|
779
|
+
|
780
|
+
int Rice::detail::Mininode::get_NODE_ARGS_AUX()
|
781
|
+
{
|
782
|
+
if(NODE_ARGS_AUX_ == -1)
|
783
|
+
{
|
784
|
+
NODE_ARGS_AUX_ = node_value("NODE_ARGS_AUX");
|
785
|
+
}
|
786
|
+
|
787
|
+
return NODE_ARGS_AUX_;
|
788
|
+
}
|
789
|
+
static int NODE_OPT_ARG_ = -1;
|
790
|
+
|
791
|
+
int Rice::detail::Mininode::get_NODE_OPT_ARG()
|
792
|
+
{
|
793
|
+
if(NODE_OPT_ARG_ == -1)
|
794
|
+
{
|
795
|
+
NODE_OPT_ARG_ = node_value("NODE_OPT_ARG");
|
796
|
+
}
|
797
|
+
|
798
|
+
return NODE_OPT_ARG_;
|
799
|
+
}
|
800
|
+
static int NODE_POSTARG_ = -1;
|
801
|
+
|
802
|
+
int Rice::detail::Mininode::get_NODE_POSTARG()
|
803
|
+
{
|
804
|
+
if(NODE_POSTARG_ == -1)
|
805
|
+
{
|
806
|
+
NODE_POSTARG_ = node_value("NODE_POSTARG");
|
807
|
+
}
|
808
|
+
|
809
|
+
return NODE_POSTARG_;
|
810
|
+
}
|
811
|
+
static int NODE_ARGSCAT_ = -1;
|
812
|
+
|
813
|
+
int Rice::detail::Mininode::get_NODE_ARGSCAT()
|
814
|
+
{
|
815
|
+
if(NODE_ARGSCAT_ == -1)
|
816
|
+
{
|
817
|
+
NODE_ARGSCAT_ = node_value("NODE_ARGSCAT");
|
818
|
+
}
|
819
|
+
|
820
|
+
return NODE_ARGSCAT_;
|
821
|
+
}
|
822
|
+
static int NODE_ARGSPUSH_ = -1;
|
823
|
+
|
824
|
+
int Rice::detail::Mininode::get_NODE_ARGSPUSH()
|
825
|
+
{
|
826
|
+
if(NODE_ARGSPUSH_ == -1)
|
827
|
+
{
|
828
|
+
NODE_ARGSPUSH_ = node_value("NODE_ARGSPUSH");
|
829
|
+
}
|
830
|
+
|
831
|
+
return NODE_ARGSPUSH_;
|
832
|
+
}
|
833
|
+
static int NODE_SPLAT_ = -1;
|
834
|
+
|
835
|
+
int Rice::detail::Mininode::get_NODE_SPLAT()
|
836
|
+
{
|
837
|
+
if(NODE_SPLAT_ == -1)
|
838
|
+
{
|
839
|
+
NODE_SPLAT_ = node_value("NODE_SPLAT");
|
840
|
+
}
|
841
|
+
|
842
|
+
return NODE_SPLAT_;
|
843
|
+
}
|
844
|
+
static int NODE_TO_ARY_ = -1;
|
845
|
+
|
846
|
+
int Rice::detail::Mininode::get_NODE_TO_ARY()
|
847
|
+
{
|
848
|
+
if(NODE_TO_ARY_ == -1)
|
849
|
+
{
|
850
|
+
NODE_TO_ARY_ = node_value("NODE_TO_ARY");
|
851
|
+
}
|
852
|
+
|
853
|
+
return NODE_TO_ARY_;
|
854
|
+
}
|
855
|
+
static int NODE_BLOCK_ARG_ = -1;
|
856
|
+
|
857
|
+
int Rice::detail::Mininode::get_NODE_BLOCK_ARG()
|
858
|
+
{
|
859
|
+
if(NODE_BLOCK_ARG_ == -1)
|
860
|
+
{
|
861
|
+
NODE_BLOCK_ARG_ = node_value("NODE_BLOCK_ARG");
|
862
|
+
}
|
863
|
+
|
864
|
+
return NODE_BLOCK_ARG_;
|
865
|
+
}
|
866
|
+
static int NODE_BLOCK_PASS_ = -1;
|
867
|
+
|
868
|
+
int Rice::detail::Mininode::get_NODE_BLOCK_PASS()
|
869
|
+
{
|
870
|
+
if(NODE_BLOCK_PASS_ == -1)
|
871
|
+
{
|
872
|
+
NODE_BLOCK_PASS_ = node_value("NODE_BLOCK_PASS");
|
873
|
+
}
|
874
|
+
|
875
|
+
return NODE_BLOCK_PASS_;
|
876
|
+
}
|
877
|
+
static int NODE_DEFN_ = -1;
|
878
|
+
|
879
|
+
int Rice::detail::Mininode::get_NODE_DEFN()
|
880
|
+
{
|
881
|
+
if(NODE_DEFN_ == -1)
|
882
|
+
{
|
883
|
+
NODE_DEFN_ = node_value("NODE_DEFN");
|
884
|
+
}
|
885
|
+
|
886
|
+
return NODE_DEFN_;
|
887
|
+
}
|
888
|
+
static int NODE_ALIAS_ = -1;
|
889
|
+
|
890
|
+
int Rice::detail::Mininode::get_NODE_ALIAS()
|
891
|
+
{
|
892
|
+
if(NODE_ALIAS_ == -1)
|
893
|
+
{
|
894
|
+
NODE_ALIAS_ = node_value("NODE_ALIAS");
|
895
|
+
}
|
896
|
+
|
897
|
+
return NODE_ALIAS_;
|
898
|
+
}
|
899
|
+
static int NODE_VALIAS_ = -1;
|
900
|
+
|
901
|
+
int Rice::detail::Mininode::get_NODE_VALIAS()
|
902
|
+
{
|
903
|
+
if(NODE_VALIAS_ == -1)
|
904
|
+
{
|
905
|
+
NODE_VALIAS_ = node_value("NODE_VALIAS");
|
906
|
+
}
|
907
|
+
|
908
|
+
return NODE_VALIAS_;
|
909
|
+
}
|
910
|
+
static int NODE_UNDEF_ = -1;
|
911
|
+
|
912
|
+
int Rice::detail::Mininode::get_NODE_UNDEF()
|
913
|
+
{
|
914
|
+
if(NODE_UNDEF_ == -1)
|
915
|
+
{
|
916
|
+
NODE_UNDEF_ = node_value("NODE_UNDEF");
|
917
|
+
}
|
918
|
+
|
919
|
+
return NODE_UNDEF_;
|
920
|
+
}
|
921
|
+
static int NODE_CLASS_ = -1;
|
922
|
+
|
923
|
+
int Rice::detail::Mininode::get_NODE_CLASS()
|
924
|
+
{
|
925
|
+
if(NODE_CLASS_ == -1)
|
926
|
+
{
|
927
|
+
NODE_CLASS_ = node_value("NODE_CLASS");
|
928
|
+
}
|
929
|
+
|
930
|
+
return NODE_CLASS_;
|
931
|
+
}
|
932
|
+
static int NODE_MODULE_ = -1;
|
933
|
+
|
934
|
+
int Rice::detail::Mininode::get_NODE_MODULE()
|
935
|
+
{
|
936
|
+
if(NODE_MODULE_ == -1)
|
937
|
+
{
|
938
|
+
NODE_MODULE_ = node_value("NODE_MODULE");
|
939
|
+
}
|
940
|
+
|
941
|
+
return NODE_MODULE_;
|
942
|
+
}
|
943
|
+
static int NODE_SCLASS_ = -1;
|
944
|
+
|
945
|
+
int Rice::detail::Mininode::get_NODE_SCLASS()
|
946
|
+
{
|
947
|
+
if(NODE_SCLASS_ == -1)
|
948
|
+
{
|
949
|
+
NODE_SCLASS_ = node_value("NODE_SCLASS");
|
950
|
+
}
|
951
|
+
|
952
|
+
return NODE_SCLASS_;
|
953
|
+
}
|
954
|
+
static int NODE_COLON2_ = -1;
|
955
|
+
|
956
|
+
int Rice::detail::Mininode::get_NODE_COLON2()
|
957
|
+
{
|
958
|
+
if(NODE_COLON2_ == -1)
|
959
|
+
{
|
960
|
+
NODE_COLON2_ = node_value("NODE_COLON2");
|
961
|
+
}
|
962
|
+
|
963
|
+
return NODE_COLON2_;
|
964
|
+
}
|
965
|
+
static int NODE_COLON3_ = -1;
|
966
|
+
|
967
|
+
int Rice::detail::Mininode::get_NODE_COLON3()
|
968
|
+
{
|
969
|
+
if(NODE_COLON3_ == -1)
|
970
|
+
{
|
971
|
+
NODE_COLON3_ = node_value("NODE_COLON3");
|
972
|
+
}
|
973
|
+
|
974
|
+
return NODE_COLON3_;
|
975
|
+
}
|
976
|
+
static int NODE_DOT2_ = -1;
|
977
|
+
|
978
|
+
int Rice::detail::Mininode::get_NODE_DOT2()
|
979
|
+
{
|
980
|
+
if(NODE_DOT2_ == -1)
|
981
|
+
{
|
982
|
+
NODE_DOT2_ = node_value("NODE_DOT2");
|
983
|
+
}
|
984
|
+
|
985
|
+
return NODE_DOT2_;
|
986
|
+
}
|
987
|
+
static int NODE_DOT3_ = -1;
|
988
|
+
|
989
|
+
int Rice::detail::Mininode::get_NODE_DOT3()
|
990
|
+
{
|
991
|
+
if(NODE_DOT3_ == -1)
|
992
|
+
{
|
993
|
+
NODE_DOT3_ = node_value("NODE_DOT3");
|
994
|
+
}
|
995
|
+
|
996
|
+
return NODE_DOT3_;
|
997
|
+
}
|
998
|
+
static int NODE_FLIP2_ = -1;
|
999
|
+
|
1000
|
+
int Rice::detail::Mininode::get_NODE_FLIP2()
|
1001
|
+
{
|
1002
|
+
if(NODE_FLIP2_ == -1)
|
1003
|
+
{
|
1004
|
+
NODE_FLIP2_ = node_value("NODE_FLIP2");
|
1005
|
+
}
|
1006
|
+
|
1007
|
+
return NODE_FLIP2_;
|
1008
|
+
}
|
1009
|
+
static int NODE_FLIP3_ = -1;
|
1010
|
+
|
1011
|
+
int Rice::detail::Mininode::get_NODE_FLIP3()
|
1012
|
+
{
|
1013
|
+
if(NODE_FLIP3_ == -1)
|
1014
|
+
{
|
1015
|
+
NODE_FLIP3_ = node_value("NODE_FLIP3");
|
1016
|
+
}
|
1017
|
+
|
1018
|
+
return NODE_FLIP3_;
|
1019
|
+
}
|
1020
|
+
static int NODE_ATTRSET_ = -1;
|
1021
|
+
|
1022
|
+
int Rice::detail::Mininode::get_NODE_ATTRSET()
|
1023
|
+
{
|
1024
|
+
if(NODE_ATTRSET_ == -1)
|
1025
|
+
{
|
1026
|
+
NODE_ATTRSET_ = node_value("NODE_ATTRSET");
|
1027
|
+
}
|
1028
|
+
|
1029
|
+
return NODE_ATTRSET_;
|
1030
|
+
}
|
1031
|
+
static int NODE_SELF_ = -1;
|
1032
|
+
|
1033
|
+
int Rice::detail::Mininode::get_NODE_SELF()
|
1034
|
+
{
|
1035
|
+
if(NODE_SELF_ == -1)
|
1036
|
+
{
|
1037
|
+
NODE_SELF_ = node_value("NODE_SELF");
|
1038
|
+
}
|
1039
|
+
|
1040
|
+
return NODE_SELF_;
|
1041
|
+
}
|
1042
|
+
static int NODE_NIL_ = -1;
|
1043
|
+
|
1044
|
+
int Rice::detail::Mininode::get_NODE_NIL()
|
1045
|
+
{
|
1046
|
+
if(NODE_NIL_ == -1)
|
1047
|
+
{
|
1048
|
+
NODE_NIL_ = node_value("NODE_NIL");
|
1049
|
+
}
|
1050
|
+
|
1051
|
+
return NODE_NIL_;
|
1052
|
+
}
|
1053
|
+
static int NODE_TRUE_ = -1;
|
1054
|
+
|
1055
|
+
int Rice::detail::Mininode::get_NODE_TRUE()
|
1056
|
+
{
|
1057
|
+
if(NODE_TRUE_ == -1)
|
1058
|
+
{
|
1059
|
+
NODE_TRUE_ = node_value("NODE_TRUE");
|
1060
|
+
}
|
1061
|
+
|
1062
|
+
return NODE_TRUE_;
|
1063
|
+
}
|
1064
|
+
static int NODE_FALSE_ = -1;
|
1065
|
+
|
1066
|
+
int Rice::detail::Mininode::get_NODE_FALSE()
|
1067
|
+
{
|
1068
|
+
if(NODE_FALSE_ == -1)
|
1069
|
+
{
|
1070
|
+
NODE_FALSE_ = node_value("NODE_FALSE");
|
1071
|
+
}
|
1072
|
+
|
1073
|
+
return NODE_FALSE_;
|
1074
|
+
}
|
1075
|
+
static int NODE_ERRINFO_ = -1;
|
1076
|
+
|
1077
|
+
int Rice::detail::Mininode::get_NODE_ERRINFO()
|
1078
|
+
{
|
1079
|
+
if(NODE_ERRINFO_ == -1)
|
1080
|
+
{
|
1081
|
+
NODE_ERRINFO_ = node_value("NODE_ERRINFO");
|
1082
|
+
}
|
1083
|
+
|
1084
|
+
return NODE_ERRINFO_;
|
1085
|
+
}
|
1086
|
+
static int NODE_DEFINED_ = -1;
|
1087
|
+
|
1088
|
+
int Rice::detail::Mininode::get_NODE_DEFINED()
|
1089
|
+
{
|
1090
|
+
if(NODE_DEFINED_ == -1)
|
1091
|
+
{
|
1092
|
+
NODE_DEFINED_ = node_value("NODE_DEFINED");
|
1093
|
+
}
|
1094
|
+
|
1095
|
+
return NODE_DEFINED_;
|
1096
|
+
}
|
1097
|
+
static int NODE_POSTEXE_ = -1;
|
1098
|
+
|
1099
|
+
int Rice::detail::Mininode::get_NODE_POSTEXE()
|
1100
|
+
{
|
1101
|
+
if(NODE_POSTEXE_ == -1)
|
1102
|
+
{
|
1103
|
+
NODE_POSTEXE_ = node_value("NODE_POSTEXE");
|
1104
|
+
}
|
1105
|
+
|
1106
|
+
return NODE_POSTEXE_;
|
1107
|
+
}
|
1108
|
+
static int NODE_ALLOCA_ = -1;
|
1109
|
+
|
1110
|
+
int Rice::detail::Mininode::get_NODE_ALLOCA()
|
1111
|
+
{
|
1112
|
+
if(NODE_ALLOCA_ == -1)
|
1113
|
+
{
|
1114
|
+
NODE_ALLOCA_ = node_value("NODE_ALLOCA");
|
1115
|
+
}
|
1116
|
+
|
1117
|
+
return NODE_ALLOCA_;
|
1118
|
+
}
|
1119
|
+
static int NODE_BMETHOD_ = -1;
|
1120
|
+
|
1121
|
+
int Rice::detail::Mininode::get_NODE_BMETHOD()
|
1122
|
+
{
|
1123
|
+
if(NODE_BMETHOD_ == -1)
|
1124
|
+
{
|
1125
|
+
NODE_BMETHOD_ = node_value("NODE_BMETHOD");
|
1126
|
+
}
|
1127
|
+
|
1128
|
+
return NODE_BMETHOD_;
|
1129
|
+
}
|
1130
|
+
static int NODE_MEMO_ = -1;
|
1131
|
+
|
1132
|
+
int Rice::detail::Mininode::get_NODE_MEMO()
|
1133
|
+
{
|
1134
|
+
if(NODE_MEMO_ == -1)
|
1135
|
+
{
|
1136
|
+
NODE_MEMO_ = node_value("NODE_MEMO");
|
1137
|
+
}
|
1138
|
+
|
1139
|
+
return NODE_MEMO_;
|
1140
|
+
}
|
1141
|
+
static int NODE_IFUNC_ = -1;
|
1142
|
+
|
1143
|
+
int Rice::detail::Mininode::get_NODE_IFUNC()
|
1144
|
+
{
|
1145
|
+
if(NODE_IFUNC_ == -1)
|
1146
|
+
{
|
1147
|
+
NODE_IFUNC_ = node_value("NODE_IFUNC");
|
1148
|
+
}
|
1149
|
+
|
1150
|
+
return NODE_IFUNC_;
|
1151
|
+
}
|
1152
|
+
static int NODE_DSYM_ = -1;
|
1153
|
+
|
1154
|
+
int Rice::detail::Mininode::get_NODE_DSYM()
|
1155
|
+
{
|
1156
|
+
if(NODE_DSYM_ == -1)
|
1157
|
+
{
|
1158
|
+
NODE_DSYM_ = node_value("NODE_DSYM");
|
1159
|
+
}
|
1160
|
+
|
1161
|
+
return NODE_DSYM_;
|
1162
|
+
}
|
1163
|
+
static int NODE_ATTRASGN_ = -1;
|
1164
|
+
|
1165
|
+
int Rice::detail::Mininode::get_NODE_ATTRASGN()
|
1166
|
+
{
|
1167
|
+
if(NODE_ATTRASGN_ == -1)
|
1168
|
+
{
|
1169
|
+
NODE_ATTRASGN_ = node_value("NODE_ATTRASGN");
|
1170
|
+
}
|
1171
|
+
|
1172
|
+
return NODE_ATTRASGN_;
|
1173
|
+
}
|
1174
|
+
static int NODE_PRELUDE_ = -1;
|
1175
|
+
|
1176
|
+
int Rice::detail::Mininode::get_NODE_PRELUDE()
|
1177
|
+
{
|
1178
|
+
if(NODE_PRELUDE_ == -1)
|
1179
|
+
{
|
1180
|
+
NODE_PRELUDE_ = node_value("NODE_PRELUDE");
|
1181
|
+
}
|
1182
|
+
|
1183
|
+
return NODE_PRELUDE_;
|
1184
|
+
}
|
1185
|
+
static int NODE_LAMBDA_ = -1;
|
1186
|
+
|
1187
|
+
int Rice::detail::Mininode::get_NODE_LAMBDA()
|
1188
|
+
{
|
1189
|
+
if(NODE_LAMBDA_ == -1)
|
1190
|
+
{
|
1191
|
+
NODE_LAMBDA_ = node_value("NODE_LAMBDA");
|
1192
|
+
}
|
1193
|
+
|
1194
|
+
return NODE_LAMBDA_;
|
1195
|
+
}
|
1196
|
+
static int NODE_OPTBLOCK_ = -1;
|
1197
|
+
|
1198
|
+
int Rice::detail::Mininode::get_NODE_OPTBLOCK()
|
1199
|
+
{
|
1200
|
+
if(NODE_OPTBLOCK_ == -1)
|
1201
|
+
{
|
1202
|
+
NODE_OPTBLOCK_ = node_value("NODE_OPTBLOCK");
|
1203
|
+
}
|
1204
|
+
|
1205
|
+
return NODE_OPTBLOCK_;
|
1206
|
+
}
|
1207
|
+
static int NODE_LAST_ = -1;
|
1208
|
+
|
1209
|
+
int Rice::detail::Mininode::get_NODE_LAST()
|
1210
|
+
{
|
1211
|
+
if(NODE_LAST_ == -1)
|
1212
|
+
{
|
1213
|
+
NODE_LAST_ = node_value("NODE_LAST");
|
1214
|
+
}
|
1215
|
+
|
1216
|
+
return NODE_LAST_;
|
1217
|
+
}
|
1218
|
+
|
1219
|
+
#endif
|
1220
|
+
|