ruby-internal 0.7.3 → 0.8.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/bin/ruby-internal-node-dump +1 -1
- data/bin/ruby-internal-obfuscate +1 -1
- data/ext/cached/ruby-1.8.4/internal/method/{method.h → internal_method.h} +12 -0
- data/ext/cached/ruby-1.8.4/internal/module/getcfp.h +13 -0
- data/ext/cached/ruby-1.8.4/internal/node/global_entry.h +94 -0
- data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +41 -41
- data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +288 -273
- data/ext/cached/ruby-1.8.4/internal/vm/instruction/insns_info.c +3 -0
- data/ext/cached/ruby-1.8.4/internal/vm/iseq/iseq_load.inc +21 -2
- data/ext/cached/{ruby-1.8.3/internal/method/method.h → ruby-1.8.5/internal/method/internal_method.h} +12 -0
- data/ext/cached/ruby-1.8.5/internal/module/getcfp.h +13 -0
- data/ext/cached/ruby-1.8.5/internal/node/global_entry.h +94 -0
- data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +45 -45
- data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +310 -295
- data/ext/cached/ruby-1.8.5/internal/vm/instruction/insns_info.c +3 -0
- data/ext/cached/ruby-1.8.5/internal/vm/iseq/iseq_load.inc +21 -2
- data/ext/cached/{ruby-1.8.5/internal/method/method.h → ruby-1.8.6/internal/method/internal_method.h} +12 -0
- data/ext/cached/ruby-1.8.6/internal/module/getcfp.h +13 -0
- data/ext/cached/ruby-1.8.6/internal/node/global_entry.h +94 -0
- data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +48 -48
- data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +323 -308
- data/ext/cached/ruby-1.8.6/internal/vm/instruction/insns_info.c +3 -0
- data/ext/cached/ruby-1.8.6/internal/vm/iseq/iseq_load.inc +21 -2
- data/ext/cached/{ruby-1.8.6/internal/method/method.h → ruby-1.8.7/internal/method/internal_method.h} +12 -0
- data/ext/cached/ruby-1.8.7/internal/module/getcfp.h +13 -0
- data/ext/cached/ruby-1.8.7/internal/node/global_entry.h +98 -0
- data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +42 -42
- data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +276 -261
- data/ext/cached/ruby-1.8.7/internal/vm/instruction/insns_info.c +3 -0
- data/ext/cached/ruby-1.8.7/internal/vm/iseq/iseq_load.inc +21 -2
- data/ext/cached/{ruby-1.9.0/internal/method/method.h → ruby-1.9.1/internal/method/internal_method.h} +12 -0
- data/ext/cached/ruby-1.9.1/internal/module/classpath.c +12 -14
- data/ext/cached/ruby-1.9.1/internal/module/getcfp.h +25 -0
- data/ext/cached/ruby-1.9.1/internal/node/global_entry.h +86 -0
- data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +46 -48
- data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +311 -412
- data/ext/cached/ruby-1.9.1/internal/vm/instruction/insns_info.c +3 -0
- data/ext/cached/ruby-1.9.1/internal/vm/iseq/iseq_load.inc +28 -6
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/iseq.h +1 -0
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/parse.h +6 -6
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/revision.h +1 -1
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/version.h +6 -5
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_core.h +3 -2
- data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_insnhelper.h +1 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/binding/block.h +0 -0
- data/ext/cached/{ruby-1.9.1/internal/method/method.h → ruby-1.9.2/internal/method/internal_method.h} +16 -5
- data/ext/cached/ruby-1.9.2/internal/module/classpath.c +40 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/module/classpath.h +0 -0
- data/ext/cached/ruby-1.9.2/internal/module/getcfp.h +25 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/block.h +0 -0
- data/ext/cached/ruby-1.9.2/internal/node/global_entry.h +93 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/node_type_descrip.c +44 -48
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/nodeinfo.c +291 -439
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/nodeinfo.h +0 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/proc/block.h +0 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/tag/tag.h +0 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/instruction/insns_info.c +141 -64
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/instruction/insns_info.h +88 -80
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/iseq/insns_info.inc +77 -70
- data/ext/cached/ruby-1.9.2/internal/vm/iseq/iseq_load.inc +426 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/debug.h +1 -1
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/dln.h +3 -3
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/encdb.h +18 -2
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/eval_intern.h +39 -28
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/gc.h +7 -5
- data/ext/cached/ruby-1.9.2/internal/yarv-headers/id.h +170 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/iseq.h +20 -10
- data/ext/cached/ruby-1.9.2/internal/yarv-headers/method.h +103 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/node.h +14 -47
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/parse.h +31 -148
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regenc.h +7 -3
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regint.h +16 -17
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regparse.h +4 -1
- data/ext/cached/ruby-1.9.2/internal/yarv-headers/revision.h +1 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/thread_pthread.h +4 -1
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/thread_win32.h +1 -1
- data/ext/cached/ruby-1.9.2/internal/yarv-headers/timev.h +21 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/transcode_data.h +20 -10
- data/ext/cached/ruby-1.9.2/internal/yarv-headers/transdb.h +179 -0
- data/ext/cached/ruby-1.9.2/internal/yarv-headers/version.h +55 -0
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_core.h +127 -84
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_exec.h +4 -7
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_insnhelper.h +53 -36
- data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_opts.h +1 -1
- data/ext/cached/ruby-1.9.3/internal/binding/block.h +12 -0
- data/ext/cached/ruby-1.9.3/internal/method/internal_method.h +32 -0
- data/ext/cached/ruby-1.9.3/internal/module/classpath.c +40 -0
- data/ext/cached/{ruby-1.8.0 → ruby-1.9.3}/internal/module/classpath.h +5 -2
- data/ext/cached/ruby-1.9.3/internal/module/getcfp.h +25 -0
- data/ext/cached/ruby-1.9.3/internal/node/block.h +12 -0
- data/ext/cached/ruby-1.9.3/internal/node/global_entry.h +93 -0
- data/ext/cached/{ruby-1.8.3 → ruby-1.9.3}/internal/node/node_type_descrip.c +48 -57
- data/ext/cached/{ruby-1.6.8 → ruby-1.9.3}/internal/node/nodeinfo.c +589 -740
- data/ext/cached/{ruby-1.8.0 → ruby-1.9.3}/internal/node/nodeinfo.h +4 -3
- data/ext/cached/ruby-1.9.3/internal/proc/block.h +12 -0
- data/ext/cached/ruby-1.9.3/internal/tag/tag.h +6 -0
- data/ext/cached/ruby-1.9.3/internal/vm/instruction/insns_info.c +6013 -0
- data/ext/cached/ruby-1.9.3/internal/vm/instruction/insns_info.h +899 -0
- data/ext/cached/ruby-1.9.3/internal/vm/iseq/insns_info.inc +707 -0
- data/ext/cached/ruby-1.9.3/internal/vm/iseq/iseq_load.inc +423 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/addr2line.h +21 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/atomic.h +56 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/constant.h +34 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/debug.h +41 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/dln.h +50 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/encdb.h +167 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/eval_intern.h +234 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/gc.h +98 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/id.h +175 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/internal.h +232 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/iseq.h +125 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/method.h +105 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/node.h +503 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/parse.h +186 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/regenc.h +219 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/regint.h +850 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/regparse.h +362 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/revision.h +1 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/thread_pthread.h +51 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/thread_win32.h +40 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/timev.h +21 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/transcode_data.h +117 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/transdb.h +189 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/version.h +52 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_core.h +756 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_exec.h +184 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_insnhelper.h +220 -0
- data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_opts.h +51 -0
- data/ext/internal/binding/block.h +20 -0
- data/ext/internal/method/internal_method.h +5 -38
- data/ext/internal/method/internal_method.h.rpp +0 -7
- data/ext/internal/method/method.c +52 -32
- data/ext/internal/module/classpath.c +18 -13
- data/ext/internal/module/classpath.h +3 -3
- data/ext/internal/module/extconf.rb +3 -2
- data/ext/internal/module/getcfp.h +13 -0
- data/ext/internal/module/getcfp.h.rpp +44 -0
- data/ext/internal/module/module.c +58 -21
- data/ext/internal/node/block.h +20 -0
- data/ext/internal/node/extconf.rb +2 -0
- data/ext/internal/node/global_entry.h +69 -13
- data/ext/internal/node/global_entry.h.rpp +11 -2
- data/ext/internal/node/node.c +30 -3
- data/ext/internal/node/node_type_descrip.c +47 -38
- data/ext/internal/node/nodeinfo.c +622 -306
- data/ext/internal/node/nodeinfo.h +1 -4
- data/ext/internal/proc/block.h +20 -0
- data/ext/internal/tag/tag.h +10 -0
- data/ext/internal/thread/thread.c +9 -3
- data/ext/internal/vm/extconf.rb +1 -0
- data/ext/internal/vm/instruction/insns_info.c +3 -5974
- data/ext/internal/vm/instruction/insns_info.h +0 -878
- data/ext/internal/vm/iseq/extconf.rb +1 -0
- data/ext/internal/vm/iseq/iseq.c +38 -4
- data/ext/internal/vm/iseq/iseq_load.inc.rpp +23 -5
- data/ext/internal/vm/vm.c +28 -0
- data/lib/internal/classtree.rb +28 -0
- data/lib/internal/debug.rb +10 -2
- data/lib/internal/method/as_code.rb +25 -0
- data/lib/internal/method/as_expression.rb +2 -3
- data/lib/internal/method/origin.rb +29 -0
- data/lib/internal/method/signature.rb +5 -300
- data/lib/internal/method/signature/argument.rb +102 -0
- data/lib/internal/method/signature/iseq.rb +52 -0
- data/lib/internal/method/signature/node.rb +160 -0
- data/lib/internal/method/signature/signature.rb +23 -0
- data/lib/internal/proc/as_code.rb +2 -0
- data/lib/internal/proc/as_expression.rb +2 -0
- data/lib/internal/vm/bytedecoder.rb +5 -5
- data/lib/internal/vm/iseq/as_code.rb +2 -2
- data/lib/internal/vm/iseq/as_expression.rb +2 -2
- data/test/test_dump_method.rb +1 -1
- data/test/test_method.rb +21 -3
- data/test/test_node.rb +20 -4
- metadata +152 -155
- data/ext/cached/ruby-1.6.8/internal/binding/block.h +0 -35
- data/ext/cached/ruby-1.6.8/internal/method/method.h +0 -19
- data/ext/cached/ruby-1.6.8/internal/module/classpath.c +0 -3
- data/ext/cached/ruby-1.6.8/internal/module/classpath.h +0 -8
- data/ext/cached/ruby-1.6.8/internal/node/block.h +0 -35
- data/ext/cached/ruby-1.6.8/internal/node/global_entry.h +0 -15
- data/ext/cached/ruby-1.6.8/internal/node/node_type_descrip.c +0 -149
- data/ext/cached/ruby-1.6.8/internal/node/nodeinfo.h +0 -69
- data/ext/cached/ruby-1.6.8/internal/proc/block.h +0 -35
- data/ext/cached/ruby-1.6.8/internal/tag/tag.h +0 -15
- data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.c +0 -39
- data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.h +0 -21
- data/ext/cached/ruby-1.6.8/internal/vm/iseq/insns_info.inc +0 -12
- data/ext/cached/ruby-1.6.8/internal/vm/iseq/iseq_load.inc +0 -9
- data/ext/cached/ruby-1.8.0/internal/binding/block.h +0 -37
- data/ext/cached/ruby-1.8.0/internal/method/method.h +0 -19
- data/ext/cached/ruby-1.8.0/internal/module/classpath.c +0 -27
- data/ext/cached/ruby-1.8.0/internal/node/block.h +0 -37
- data/ext/cached/ruby-1.8.0/internal/node/global_entry.h +0 -10
- data/ext/cached/ruby-1.8.0/internal/node/node_type_descrip.c +0 -155
- data/ext/cached/ruby-1.8.0/internal/node/nodeinfo.c +0 -5744
- data/ext/cached/ruby-1.8.0/internal/proc/block.h +0 -37
- data/ext/cached/ruby-1.8.0/internal/tag/tag.h +0 -15
- data/ext/cached/ruby-1.8.0/internal/vm/instruction/insns_info.c +0 -39
- data/ext/cached/ruby-1.8.0/internal/vm/instruction/insns_info.h +0 -21
- data/ext/cached/ruby-1.8.0/internal/vm/iseq/insns_info.inc +0 -12
- data/ext/cached/ruby-1.8.0/internal/vm/iseq/iseq_load.inc +0 -9
- data/ext/cached/ruby-1.8.1/internal/binding/block.h +0 -31
- data/ext/cached/ruby-1.8.1/internal/method/method.h +0 -19
- data/ext/cached/ruby-1.8.1/internal/module/classpath.c +0 -27
- data/ext/cached/ruby-1.8.1/internal/module/classpath.h +0 -14
- data/ext/cached/ruby-1.8.1/internal/node/block.h +0 -31
- data/ext/cached/ruby-1.8.1/internal/node/global_entry.h +0 -10
- data/ext/cached/ruby-1.8.1/internal/node/node_type_descrip.c +0 -154
- data/ext/cached/ruby-1.8.1/internal/node/nodeinfo.c +0 -5736
- data/ext/cached/ruby-1.8.1/internal/node/nodeinfo.h +0 -69
- data/ext/cached/ruby-1.8.1/internal/proc/block.h +0 -31
- data/ext/cached/ruby-1.8.1/internal/tag/tag.h +0 -16
- data/ext/cached/ruby-1.8.1/internal/vm/instruction/insns_info.c +0 -39
- data/ext/cached/ruby-1.8.1/internal/vm/instruction/insns_info.h +0 -21
- data/ext/cached/ruby-1.8.1/internal/vm/iseq/insns_info.inc +0 -12
- data/ext/cached/ruby-1.8.1/internal/vm/iseq/iseq_load.inc +0 -9
- data/ext/cached/ruby-1.8.2/internal/binding/block.h +0 -32
- data/ext/cached/ruby-1.8.2/internal/method/method.h +0 -19
- data/ext/cached/ruby-1.8.2/internal/module/classpath.c +0 -45
- data/ext/cached/ruby-1.8.2/internal/module/classpath.h +0 -17
- data/ext/cached/ruby-1.8.2/internal/node/block.h +0 -32
- data/ext/cached/ruby-1.8.2/internal/node/global_entry.h +0 -10
- data/ext/cached/ruby-1.8.2/internal/node/node_type_descrip.c +0 -154
- data/ext/cached/ruby-1.8.2/internal/node/nodeinfo.c +0 -5736
- data/ext/cached/ruby-1.8.2/internal/node/nodeinfo.h +0 -69
- data/ext/cached/ruby-1.8.2/internal/proc/block.h +0 -32
- data/ext/cached/ruby-1.8.2/internal/tag/tag.h +0 -16
- data/ext/cached/ruby-1.8.2/internal/vm/instruction/insns_info.c +0 -39
- data/ext/cached/ruby-1.8.2/internal/vm/instruction/insns_info.h +0 -21
- data/ext/cached/ruby-1.8.2/internal/vm/iseq/insns_info.inc +0 -12
- data/ext/cached/ruby-1.8.2/internal/vm/iseq/iseq_load.inc +0 -9
- data/ext/cached/ruby-1.8.3/internal/binding/block.h +0 -32
- data/ext/cached/ruby-1.8.3/internal/module/classpath.c +0 -45
- data/ext/cached/ruby-1.8.3/internal/module/classpath.h +0 -17
- data/ext/cached/ruby-1.8.3/internal/node/block.h +0 -32
- data/ext/cached/ruby-1.8.3/internal/node/global_entry.h +0 -10
- data/ext/cached/ruby-1.8.3/internal/node/nodeinfo.c +0 -5736
- data/ext/cached/ruby-1.8.3/internal/node/nodeinfo.h +0 -69
- data/ext/cached/ruby-1.8.3/internal/proc/block.h +0 -32
- data/ext/cached/ruby-1.8.3/internal/tag/tag.h +0 -16
- data/ext/cached/ruby-1.8.3/internal/vm/instruction/insns_info.c +0 -39
- data/ext/cached/ruby-1.8.3/internal/vm/instruction/insns_info.h +0 -21
- data/ext/cached/ruby-1.8.3/internal/vm/iseq/insns_info.inc +0 -12
- data/ext/cached/ruby-1.8.3/internal/vm/iseq/iseq_load.inc +0 -9
- data/ext/cached/ruby-1.8.7/internal/method/method.h +0 -20
- data/ext/cached/ruby-1.9.0/internal/module/classpath.c +0 -42
- data/ext/cached/ruby-1.9.0/internal/node/global_entry.h +0 -10
- data/ext/cached/ruby-1.9.0/internal/vm/iseq/iseq_load.inc +0 -13
- data/ext/cached/ruby-1.9.0/internal/yarv-headers/id.h +0 -83
- data/ext/cached/ruby-1.9.0/internal/yarv-headers/revision.h +0 -1
- data/ext/cached/ruby-1.9.0/internal/yarv-headers/transdb.h +0 -67
- data/ext/cached/ruby-1.9.0/internal/yarv-headers/version.h +0 -57
- data/ext/internal/module/cfp.h +0 -13
|
@@ -1,9 +1,28 @@
|
|
|
1
1
|
#ifndef ruby_internal_iseq_load__inc_
|
|
2
2
|
#define ruby_internal_iseq_load__inc_
|
|
3
3
|
|
|
4
|
-
#
|
|
5
|
-
#include "internal/yarv-headers/iseq.h"
|
|
4
|
+
#ifdef HAVE_TYPE_STRUCT_RTYPEDDATA
|
|
6
5
|
|
|
6
|
+
static rb_data_type_t const * p_iseq_data_type;
|
|
7
|
+
|
|
8
|
+
static void init_iseq_data_type()
|
|
9
|
+
{
|
|
10
|
+
rb_proc_t * p;
|
|
11
|
+
VALUE body;
|
|
12
|
+
|
|
13
|
+
VALUE binding = rb_binding_new();
|
|
14
|
+
VALUE new_proc = rb_funcall(
|
|
15
|
+
rb_cObject, rb_intern("eval"), 2, rb_str_new2("proc { }"), binding);
|
|
16
|
+
GetProcPtr(new_proc, p);
|
|
17
|
+
body = p->block.iseq->self;
|
|
18
|
+
|
|
19
|
+
p_iseq_data_type = RTYPEDDATA_TYPE(body);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#else
|
|
23
|
+
|
|
24
|
+
#endif
|
|
25
|
+
#
|
|
7
26
|
|
|
8
27
|
#endif
|
|
9
28
|
|
data/ext/cached/{ruby-1.8.3/internal/method/method.h → ruby-1.8.5/internal/method/internal_method.h}
RENAMED
|
@@ -3,8 +3,20 @@
|
|
|
3
3
|
|
|
4
4
|
#include <ruby.h>
|
|
5
5
|
|
|
6
|
+
#ifdef RUBY_VM
|
|
7
|
+
#include "method.h"
|
|
8
|
+
#endif
|
|
9
|
+
|
|
6
10
|
#include "internal/node/ruby_internal_node.h"
|
|
7
11
|
|
|
12
|
+
#ifndef FALSE
|
|
13
|
+
#define FALSE 0
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
#ifndef TRUE
|
|
17
|
+
#define TRUE (!FALSE)
|
|
18
|
+
#endif
|
|
19
|
+
|
|
8
20
|
struct METHOD {
|
|
9
21
|
VALUE klass, rklass;
|
|
10
22
|
VALUE recv;
|
|
@@ -1,10 +1,104 @@
|
|
|
1
1
|
#ifndef global_entry__h_
|
|
2
2
|
#define global_entry__h_
|
|
3
3
|
|
|
4
|
+
st_table * rb_global_tbl;
|
|
5
|
+
|
|
6
|
+
struct trace_var {
|
|
7
|
+
int removed;
|
|
8
|
+
void (*func)();
|
|
9
|
+
VALUE data;
|
|
10
|
+
struct trace_var *next;
|
|
11
|
+
};
|
|
12
|
+
struct global_variable {
|
|
13
|
+
int counter;
|
|
14
|
+
void *data;
|
|
15
|
+
VALUE (*getter)();
|
|
16
|
+
void (*setter)();
|
|
17
|
+
void (*marker)();
|
|
18
|
+
int block_trace;
|
|
19
|
+
struct trace_var *trace;
|
|
20
|
+
};
|
|
4
21
|
struct global_entry {
|
|
5
22
|
struct global_variable *var;
|
|
6
23
|
ID id;
|
|
7
24
|
};
|
|
25
|
+
static VALUE undef_getter();
|
|
26
|
+
static void undef_setter();
|
|
27
|
+
static void undef_marker();
|
|
28
|
+
static VALUE val_getter();
|
|
29
|
+
static void val_setter();
|
|
30
|
+
static void val_marker();
|
|
31
|
+
struct global_entry*
|
|
32
|
+
rb_global_entry(id)
|
|
33
|
+
ID id;
|
|
34
|
+
{
|
|
35
|
+
struct global_entry *entry;
|
|
36
|
+
|
|
37
|
+
if (!st_lookup(rb_global_tbl, id, (st_data_t *)&entry)) {
|
|
38
|
+
struct global_variable *var;
|
|
39
|
+
entry = ALLOC(struct global_entry);
|
|
40
|
+
var = ALLOC(struct global_variable);
|
|
41
|
+
entry->id = id;
|
|
42
|
+
entry->var = var;
|
|
43
|
+
var->counter = 1;
|
|
44
|
+
var->data = 0;
|
|
45
|
+
var->getter = undef_getter;
|
|
46
|
+
var->setter = undef_setter;
|
|
47
|
+
var->marker = undef_marker;
|
|
48
|
+
|
|
49
|
+
var->block_trace = 0;
|
|
50
|
+
var->trace = 0;
|
|
51
|
+
st_add_direct(rb_global_tbl, id, (st_data_t)entry);
|
|
52
|
+
}
|
|
53
|
+
return entry;
|
|
54
|
+
}
|
|
55
|
+
static VALUE
|
|
56
|
+
undef_getter(id)
|
|
57
|
+
ID id;
|
|
58
|
+
{
|
|
59
|
+
rb_warning("global variable `%s' not initialized", rb_id2name(id));
|
|
60
|
+
|
|
61
|
+
return Qnil;
|
|
62
|
+
}
|
|
63
|
+
static void
|
|
64
|
+
undef_setter(val, id, data, var)
|
|
65
|
+
VALUE val;
|
|
66
|
+
ID id;
|
|
67
|
+
void *data;
|
|
68
|
+
struct global_variable *var;
|
|
69
|
+
{
|
|
70
|
+
var->getter = val_getter;
|
|
71
|
+
var->setter = val_setter;
|
|
72
|
+
var->marker = val_marker;
|
|
73
|
+
|
|
74
|
+
var->data = (void*)val;
|
|
75
|
+
}
|
|
76
|
+
static void
|
|
77
|
+
undef_marker()
|
|
78
|
+
{
|
|
79
|
+
}
|
|
80
|
+
static VALUE
|
|
81
|
+
val_getter(id, val)
|
|
82
|
+
ID id;
|
|
83
|
+
VALUE val;
|
|
84
|
+
{
|
|
85
|
+
return val;
|
|
86
|
+
}
|
|
87
|
+
static void
|
|
88
|
+
val_setter(val, id, data, var)
|
|
89
|
+
VALUE val;
|
|
90
|
+
ID id;
|
|
91
|
+
void *data;
|
|
92
|
+
struct global_variable *var;
|
|
93
|
+
{
|
|
94
|
+
var->data = (void*)val;
|
|
95
|
+
}
|
|
96
|
+
static void
|
|
97
|
+
val_marker(data)
|
|
98
|
+
VALUE data;
|
|
99
|
+
{
|
|
100
|
+
if (data) rb_gc_mark_maybe(data);
|
|
101
|
+
}
|
|
8
102
|
|
|
9
103
|
#endif
|
|
10
104
|
|
|
@@ -4,42 +4,42 @@
|
|
|
4
4
|
Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
5
5
|
{ NODE_ALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "ALIAS" },
|
|
6
6
|
#ifdef HAVE_NODE_ALLOCA
|
|
7
|
-
{ NODE_ALLOCA,
|
|
7
|
+
{ NODE_ALLOCA, NEN_VALUE, NEN_CFNC, NEN_CNT, "ALLOCA" },
|
|
8
8
|
#endif
|
|
9
9
|
{ NODE_AND, NEN_1ST, NEN_2ND, NEN_NONE, "AND" },
|
|
10
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,
|
|
14
|
-
{ NODE_ATTRASGN,
|
|
13
|
+
{ NODE_ARRAY, NEN_ALEN, NEN_NEXT, NEN_HEAD, "ARRAY" },
|
|
14
|
+
{ NODE_ATTRASGN, NEN_RECV, NEN_MID, NEN_ARGS, "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" },
|
|
17
17
|
{ NODE_BEGIN, NEN_BODY, NEN_NONE, NEN_NONE, "BEGIN" },
|
|
18
|
-
{ NODE_BLOCK,
|
|
18
|
+
{ NODE_BLOCK, NEN_NEXT, NEN_HEAD, NEN_NONE, "BLOCK" },
|
|
19
19
|
{ NODE_BLOCK_ARG, NEN_CNT, NEN_NONE, NEN_NONE, "BLOCK_ARG" },
|
|
20
|
-
{ NODE_BLOCK_PASS,
|
|
20
|
+
{ NODE_BLOCK_PASS, NEN_ITER, NEN_BODY, 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,
|
|
24
|
-
{ NODE_CASE, NEN_HEAD, NEN_BODY,
|
|
25
|
-
{ NODE_CDECL,
|
|
26
|
-
{ NODE_CFUNC,
|
|
27
|
-
{ NODE_CLASS, NEN_CPATH,
|
|
28
|
-
{ NODE_COLON2,
|
|
23
|
+
{ NODE_CALL, NEN_MID, NEN_RECV, NEN_ARGS, "CALL" },
|
|
24
|
+
{ NODE_CASE, NEN_NEXT, NEN_HEAD, NEN_BODY, "CASE" },
|
|
25
|
+
{ NODE_CDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CDECL" },
|
|
26
|
+
{ NODE_CFUNC, NEN_ARGC, NEN_CFNC, NEN_NONE, "CFUNC" },
|
|
27
|
+
{ NODE_CLASS, NEN_CPATH, NEN_SUPER, NEN_BODY, "CLASS" },
|
|
28
|
+
{ NODE_COLON2, NEN_MID, NEN_HEAD, 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_NEXT, NEN_BODY, "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_VID, NEN_VALUE, NEN_NONE, "CVASGN" },
|
|
34
|
+
{ NODE_CVDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CVDECL" },
|
|
35
|
+
{ NODE_DASGN, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN" },
|
|
36
|
+
{ NODE_DASGN_CURR, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN_CURR" },
|
|
37
37
|
{ NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
|
|
38
38
|
{ NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
|
|
39
|
-
{ NODE_DEFS, NEN_DEFN,
|
|
39
|
+
{ NODE_DEFS, NEN_DEFN, NEN_RECV, NEN_MID, "DEFS" },
|
|
40
40
|
{ NODE_DMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "DMETHOD" },
|
|
41
|
-
{ NODE_DOT2,
|
|
42
|
-
{ NODE_DOT3,
|
|
41
|
+
{ NODE_DOT2, NEN_END, NEN_BEG, NEN_STATE, "DOT2" },
|
|
42
|
+
{ NODE_DOT3, NEN_END, NEN_BEG, NEN_STATE, "DOT3" },
|
|
43
43
|
{ NODE_DREGX, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX" },
|
|
44
44
|
{ NODE_DREGX_ONCE, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX_ONCE" },
|
|
45
45
|
{ NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
|
|
@@ -49,28 +49,28 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
|
49
49
|
{ NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
|
|
50
50
|
{ NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
|
|
51
51
|
{ NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
|
|
52
|
-
{ NODE_FBODY,
|
|
53
|
-
{ NODE_FCALL,
|
|
54
|
-
{ NODE_FLIP2,
|
|
55
|
-
{ NODE_FLIP3,
|
|
56
|
-
{ NODE_FOR,
|
|
57
|
-
{ NODE_GASGN,
|
|
52
|
+
{ NODE_FBODY, NEN_MID, NEN_ORIG, NEN_HEAD, "FBODY" },
|
|
53
|
+
{ NODE_FCALL, NEN_MID, NEN_ARGS, NEN_NONE, "FCALL" },
|
|
54
|
+
{ NODE_FLIP2, NEN_END, NEN_BEG, NEN_CNT, "FLIP2" },
|
|
55
|
+
{ NODE_FLIP3, NEN_END, NEN_BEG, NEN_CNT, "FLIP3" },
|
|
56
|
+
{ NODE_FOR, NEN_ITER, NEN_VAR, NEN_BODY, "FOR" },
|
|
57
|
+
{ NODE_GASGN, NEN_VID, NEN_ENTRY, NEN_VALUE, "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,
|
|
60
|
+
{ NODE_IASGN, NEN_VID, NEN_VALUE, NEN_NONE, "IASGN" },
|
|
61
61
|
{ NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
|
|
62
|
-
{ NODE_IFUNC,
|
|
63
|
-
{ NODE_ITER,
|
|
62
|
+
{ NODE_IFUNC, NEN_STATE, NEN_TVAL, NEN_CFNC, "IFUNC" },
|
|
63
|
+
{ NODE_ITER, NEN_ITER, NEN_VAR, NEN_BODY, "ITER" },
|
|
64
64
|
{ NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
|
|
65
|
-
{ NODE_LASGN,
|
|
65
|
+
{ NODE_LASGN, NEN_VID, NEN_VALUE, 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_ARGS,
|
|
68
|
+
{ NODE_MASGN, NEN_ARGS, NEN_VALUE, NEN_HEAD, "MASGN" },
|
|
69
69
|
{ NODE_MATCH, NEN_LIT, NEN_VALUE, NEN_NONE, "MATCH" },
|
|
70
|
-
{ NODE_MATCH2,
|
|
71
|
-
{ NODE_MATCH3,
|
|
70
|
+
{ NODE_MATCH2, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH2" },
|
|
71
|
+
{ NODE_MATCH3, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH3" },
|
|
72
72
|
{ NODE_MEMO, NEN_NONE, NEN_NONE, NEN_NONE, "MEMO" },
|
|
73
|
-
{ NODE_METHOD,
|
|
73
|
+
{ NODE_METHOD, NEN_NOEX, NEN_BODY, NEN_NONE, "METHOD" },
|
|
74
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" },
|
|
@@ -78,19 +78,19 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
|
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,
|
|
83
|
-
{ NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID,
|
|
84
|
-
{ NODE_OP_ASGN_AND,
|
|
85
|
-
{ NODE_OP_ASGN_OR, NEN_AID, NEN_VALUE,
|
|
81
|
+
{ NODE_OP_ASGN1, NEN_MID, NEN_RECV, NEN_ARGS, "OP_ASGN1" },
|
|
82
|
+
{ NODE_OP_ASGN2, NEN_RECV, NEN_NEXT, NEN_VALUE, "OP_ASGN2" },
|
|
83
|
+
{ NODE_OP_ASGN2_ARG, NEN_MID, NEN_VID, NEN_AID, "OP_ASGN2_ARG" },
|
|
84
|
+
{ NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
|
|
85
|
+
{ NODE_OP_ASGN_OR, NEN_RECV, NEN_AID, NEN_VALUE, "OP_ASGN_OR" },
|
|
86
86
|
{ NODE_OR, NEN_1ST, NEN_2ND, NEN_NONE, "OR" },
|
|
87
87
|
{ NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
|
|
88
88
|
{ NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
|
|
89
|
-
{ NODE_RESBODY,
|
|
90
|
-
{ NODE_RESCUE, NEN_HEAD, NEN_ELSE,
|
|
89
|
+
{ NODE_RESBODY, NEN_ARGS, NEN_HEAD, NEN_BODY, "RESBODY" },
|
|
90
|
+
{ NODE_RESCUE, NEN_RESQ, NEN_HEAD, 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
|
-
{ NODE_SCLASS,
|
|
93
|
+
{ NODE_SCLASS, NEN_RECV, NEN_BODY, NEN_NONE, "SCLASS" },
|
|
94
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" },
|
|
@@ -100,13 +100,13 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
|
100
100
|
{ NODE_TO_ARY, NEN_HEAD, NEN_NONE, NEN_NONE, "TO_ARY" },
|
|
101
101
|
{ NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
|
|
102
102
|
{ NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
|
|
103
|
-
{ NODE_UNTIL,
|
|
103
|
+
{ NODE_UNTIL, NEN_COND, NEN_STATE, NEN_BODY, "UNTIL" },
|
|
104
104
|
{ NODE_VALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "VALIAS" },
|
|
105
105
|
{ NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
|
|
106
|
-
{ NODE_WHEN, NEN_HEAD, NEN_BODY,
|
|
107
|
-
{ NODE_WHILE,
|
|
106
|
+
{ NODE_WHEN, NEN_NEXT, NEN_HEAD, NEN_BODY, "WHEN" },
|
|
107
|
+
{ NODE_WHILE, NEN_COND, NEN_STATE, NEN_BODY, "WHILE" },
|
|
108
108
|
{ NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
|
|
109
|
-
{ NODE_YIELD,
|
|
109
|
+
{ NODE_YIELD, NEN_STATE, NEN_HEAD, NEN_NONE, "YIELD" },
|
|
110
110
|
{ NODE_ZARRAY, NEN_NONE, NEN_NONE, NEN_NONE, "ZARRAY" },
|
|
111
111
|
{ NODE_ZSUPER, NEN_NONE, NEN_NONE, NEN_NONE, "ZSUPER" },
|
|
112
112
|
{ NODE_LAST, NEN_NONE, NEN_NONE, NEN_NONE, "LAST" },
|
|
@@ -228,7 +228,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
228
228
|
else
|
|
229
229
|
{
|
|
230
230
|
path = rb_class_path(klass);
|
|
231
|
-
if(
|
|
231
|
+
if(StringValuePtr(path)[0] == '#')
|
|
232
232
|
{
|
|
233
233
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
234
234
|
}
|
|
@@ -322,7 +322,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
322
322
|
else
|
|
323
323
|
{
|
|
324
324
|
path = rb_class_path(klass);
|
|
325
|
-
if(
|
|
325
|
+
if(StringValuePtr(path)[0] == '#')
|
|
326
326
|
{
|
|
327
327
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
328
328
|
}
|
|
@@ -565,7 +565,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
565
565
|
else
|
|
566
566
|
{
|
|
567
567
|
path = rb_class_path(klass);
|
|
568
|
-
if(
|
|
568
|
+
if(StringValuePtr(path)[0] == '#')
|
|
569
569
|
{
|
|
570
570
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
571
571
|
}
|
|
@@ -689,7 +689,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
689
689
|
else
|
|
690
690
|
{
|
|
691
691
|
path = rb_class_path(klass);
|
|
692
|
-
if(
|
|
692
|
+
if(StringValuePtr(path)[0] == '#')
|
|
693
693
|
{
|
|
694
694
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
695
695
|
}
|
|
@@ -897,7 +897,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
897
897
|
else
|
|
898
898
|
{
|
|
899
899
|
path = rb_class_path(klass);
|
|
900
|
-
if(
|
|
900
|
+
if(StringValuePtr(path)[0] == '#')
|
|
901
901
|
{
|
|
902
902
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
903
903
|
}
|
|
@@ -1152,20 +1152,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1152
1152
|
}
|
|
1153
1153
|
case NEN_CLSS:
|
|
1154
1154
|
{
|
|
1155
|
+
int flags;
|
|
1155
1156
|
Check_Type(v, T_ARRAY);
|
|
1156
1157
|
if(RARRAY_LEN(v) != 2)
|
|
1157
1158
|
{
|
|
1158
1159
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1159
1160
|
}
|
|
1160
|
-
|
|
1161
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1161
1162
|
switch(flags & T_MASK)
|
|
1162
1163
|
{
|
|
1163
1164
|
case T_CLASS:
|
|
1164
1165
|
case T_MODULE:
|
|
1165
1166
|
{
|
|
1166
|
-
VALUE str
|
|
1167
|
+
VALUE str, klass;
|
|
1168
|
+
|
|
1169
|
+
str = RARRAY_PTR(v)[1];
|
|
1167
1170
|
Check_Type(str, T_STRING);
|
|
1168
|
-
|
|
1171
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1169
1172
|
if(flags & FL_SINGLETON)
|
|
1170
1173
|
{
|
|
1171
1174
|
*(VALUE *)(&n->nd_clss) =
|
|
@@ -1241,20 +1244,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1241
1244
|
}
|
|
1242
1245
|
case NEN_CVAL:
|
|
1243
1246
|
{
|
|
1247
|
+
int flags;
|
|
1244
1248
|
Check_Type(v, T_ARRAY);
|
|
1245
1249
|
if(RARRAY_LEN(v) != 2)
|
|
1246
1250
|
{
|
|
1247
1251
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1248
1252
|
}
|
|
1249
|
-
|
|
1253
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1250
1254
|
switch(flags & T_MASK)
|
|
1251
1255
|
{
|
|
1252
1256
|
case T_CLASS:
|
|
1253
1257
|
case T_MODULE:
|
|
1254
1258
|
{
|
|
1255
|
-
VALUE str
|
|
1259
|
+
VALUE str, klass;
|
|
1260
|
+
|
|
1261
|
+
str = RARRAY_PTR(v)[1];
|
|
1256
1262
|
Check_Type(str, T_STRING);
|
|
1257
|
-
|
|
1263
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1258
1264
|
if(flags & FL_SINGLETON)
|
|
1259
1265
|
{
|
|
1260
1266
|
*(VALUE *)(&n->nd_cval) =
|
|
@@ -1480,20 +1486,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1480
1486
|
}
|
|
1481
1487
|
case NEN_LIT:
|
|
1482
1488
|
{
|
|
1489
|
+
int flags;
|
|
1483
1490
|
Check_Type(v, T_ARRAY);
|
|
1484
1491
|
if(RARRAY_LEN(v) != 2)
|
|
1485
1492
|
{
|
|
1486
1493
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1487
1494
|
}
|
|
1488
|
-
|
|
1495
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1489
1496
|
switch(flags & T_MASK)
|
|
1490
1497
|
{
|
|
1491
1498
|
case T_CLASS:
|
|
1492
1499
|
case T_MODULE:
|
|
1493
1500
|
{
|
|
1494
|
-
VALUE str
|
|
1501
|
+
VALUE str, klass;
|
|
1502
|
+
|
|
1503
|
+
str = RARRAY_PTR(v)[1];
|
|
1495
1504
|
Check_Type(str, T_STRING);
|
|
1496
|
-
|
|
1505
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1497
1506
|
if(flags & FL_SINGLETON)
|
|
1498
1507
|
{
|
|
1499
1508
|
*(VALUE *)(&n->nd_lit) =
|
|
@@ -1606,20 +1615,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1606
1615
|
}
|
|
1607
1616
|
case NEN_ORIG:
|
|
1608
1617
|
{
|
|
1618
|
+
int flags;
|
|
1609
1619
|
Check_Type(v, T_ARRAY);
|
|
1610
1620
|
if(RARRAY_LEN(v) != 2)
|
|
1611
1621
|
{
|
|
1612
1622
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1613
1623
|
}
|
|
1614
|
-
|
|
1624
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1615
1625
|
switch(flags & T_MASK)
|
|
1616
1626
|
{
|
|
1617
1627
|
case T_CLASS:
|
|
1618
1628
|
case T_MODULE:
|
|
1619
1629
|
{
|
|
1620
|
-
VALUE str
|
|
1630
|
+
VALUE str, klass;
|
|
1631
|
+
|
|
1632
|
+
str = RARRAY_PTR(v)[1];
|
|
1621
1633
|
Check_Type(str, T_STRING);
|
|
1622
|
-
|
|
1634
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1623
1635
|
if(flags & FL_SINGLETON)
|
|
1624
1636
|
{
|
|
1625
1637
|
*(VALUE *)(&n->nd_orig) =
|
|
@@ -1846,20 +1858,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1846
1858
|
}
|
|
1847
1859
|
case NEN_TVAL:
|
|
1848
1860
|
{
|
|
1861
|
+
int flags;
|
|
1849
1862
|
Check_Type(v, T_ARRAY);
|
|
1850
1863
|
if(RARRAY_LEN(v) != 2)
|
|
1851
1864
|
{
|
|
1852
1865
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1853
1866
|
}
|
|
1854
|
-
|
|
1867
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1855
1868
|
switch(flags & T_MASK)
|
|
1856
1869
|
{
|
|
1857
1870
|
case T_CLASS:
|
|
1858
1871
|
case T_MODULE:
|
|
1859
1872
|
{
|
|
1860
|
-
VALUE str
|
|
1873
|
+
VALUE str, klass;
|
|
1874
|
+
|
|
1875
|
+
str = RARRAY_PTR(v)[1];
|
|
1861
1876
|
Check_Type(str, T_STRING);
|
|
1862
|
-
|
|
1877
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1863
1878
|
if(flags & FL_SINGLETON)
|
|
1864
1879
|
{
|
|
1865
1880
|
*(VALUE *)(&n->nd_tval) =
|
|
@@ -2931,18 +2946,18 @@ void define_node_subclass_methods()
|
|
|
2931
2946
|
rb_iv_set(rb_cALLOCA, "__type__", INT2NUM(NODE_ALLOCA));
|
|
2932
2947
|
rb_define_singleton_method(rb_cALLOCA, "members", node_s_members, 0);
|
|
2933
2948
|
|
|
2934
|
-
/* Document-method: cfnc
|
|
2935
|
-
* a pointer to the allocated memory
|
|
2936
|
-
*/
|
|
2937
|
-
rb_define_method(rb_cALLOCA, "cfnc", node_cfnc, 0);
|
|
2938
|
-
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
2939
|
-
|
|
2940
2949
|
/* Document-method: value
|
|
2941
2950
|
* a pointer to the previously allocated temporary node
|
|
2942
2951
|
*/
|
|
2943
2952
|
rb_define_method(rb_cALLOCA, "value", node_value, 0);
|
|
2944
2953
|
rb_ary_push(members, rb_str_new2("value"));
|
|
2945
2954
|
|
|
2955
|
+
/* Document-method: cfnc
|
|
2956
|
+
* a pointer to the allocated memory
|
|
2957
|
+
*/
|
|
2958
|
+
rb_define_method(rb_cALLOCA, "cfnc", node_cfnc, 0);
|
|
2959
|
+
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
2960
|
+
|
|
2946
2961
|
/* Document-method: cnt
|
|
2947
2962
|
* the number of bytes allocated
|
|
2948
2963
|
*/
|
|
@@ -3073,12 +3088,6 @@ void define_node_subclass_methods()
|
|
|
3073
3088
|
rb_iv_set(rb_cARRAY, "__member__", members);
|
|
3074
3089
|
rb_iv_set(rb_cARRAY, "__type__", INT2NUM(NODE_ARRAY));
|
|
3075
3090
|
rb_define_singleton_method(rb_cARRAY, "members", node_s_members, 0);
|
|
3076
|
-
|
|
3077
|
-
/* Document-method: head
|
|
3078
|
-
* the first element of the array
|
|
3079
|
-
*/
|
|
3080
|
-
rb_define_method(rb_cARRAY, "head", node_head, 0);
|
|
3081
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3082
3091
|
rb_define_method(rb_cARRAY, "alen", node_alen, 0);
|
|
3083
3092
|
rb_ary_push(members, rb_str_new2("alen"));
|
|
3084
3093
|
|
|
@@ -3087,6 +3096,12 @@ void define_node_subclass_methods()
|
|
|
3087
3096
|
*/
|
|
3088
3097
|
rb_define_method(rb_cARRAY, "next", node_next, 0);
|
|
3089
3098
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3099
|
+
|
|
3100
|
+
/* Document-method: head
|
|
3101
|
+
* the first element of the array
|
|
3102
|
+
*/
|
|
3103
|
+
rb_define_method(rb_cARRAY, "head", node_head, 0);
|
|
3104
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3090
3105
|
}
|
|
3091
3106
|
|
|
3092
3107
|
/* Document-class: Node::ATTRASGN
|
|
@@ -3103,11 +3118,11 @@ void define_node_subclass_methods()
|
|
|
3103
3118
|
rb_iv_set(rb_cATTRASGN, "__type__", INT2NUM(NODE_ATTRASGN));
|
|
3104
3119
|
rb_define_singleton_method(rb_cATTRASGN, "members", node_s_members, 0);
|
|
3105
3120
|
|
|
3106
|
-
/* Document-method:
|
|
3107
|
-
* the
|
|
3121
|
+
/* Document-method: recv
|
|
3122
|
+
* the receiver of the method
|
|
3108
3123
|
*/
|
|
3109
|
-
rb_define_method(rb_cATTRASGN, "
|
|
3110
|
-
rb_ary_push(members, rb_str_new2("
|
|
3124
|
+
rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
|
|
3125
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
3111
3126
|
|
|
3112
3127
|
/* Document-method: mid
|
|
3113
3128
|
* the id of the attribute, with a trailing '=' sign
|
|
@@ -3115,11 +3130,11 @@ void define_node_subclass_methods()
|
|
|
3115
3130
|
rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
|
|
3116
3131
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3117
3132
|
|
|
3118
|
-
/* Document-method:
|
|
3119
|
-
* the
|
|
3133
|
+
/* Document-method: args
|
|
3134
|
+
* the arguments to the method
|
|
3120
3135
|
*/
|
|
3121
|
-
rb_define_method(rb_cATTRASGN, "
|
|
3122
|
-
rb_ary_push(members, rb_str_new2("
|
|
3136
|
+
rb_define_method(rb_cATTRASGN, "args", node_args, 0);
|
|
3137
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
3123
3138
|
}
|
|
3124
3139
|
|
|
3125
3140
|
/* Document-class: Node::ATTRSET
|
|
@@ -3207,17 +3222,17 @@ void define_node_subclass_methods()
|
|
|
3207
3222
|
rb_iv_set(rb_cBLOCK, "__type__", INT2NUM(NODE_BLOCK));
|
|
3208
3223
|
rb_define_singleton_method(rb_cBLOCK, "members", node_s_members, 0);
|
|
3209
3224
|
|
|
3210
|
-
/* Document-method: head
|
|
3211
|
-
* the first expression in the block of code
|
|
3212
|
-
*/
|
|
3213
|
-
rb_define_method(rb_cBLOCK, "head", node_head, 0);
|
|
3214
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3215
|
-
|
|
3216
3225
|
/* Document-method: next
|
|
3217
3226
|
* the second expression in the block of code
|
|
3218
3227
|
*/
|
|
3219
3228
|
rb_define_method(rb_cBLOCK, "next", node_next, 0);
|
|
3220
3229
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3230
|
+
|
|
3231
|
+
/* Document-method: head
|
|
3232
|
+
* the first expression in the block of code
|
|
3233
|
+
*/
|
|
3234
|
+
rb_define_method(rb_cBLOCK, "head", node_head, 0);
|
|
3235
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3221
3236
|
}
|
|
3222
3237
|
|
|
3223
3238
|
/* Document-class: Node::BLOCK_ARG
|
|
@@ -3258,17 +3273,17 @@ void define_node_subclass_methods()
|
|
|
3258
3273
|
rb_iv_set(rb_cBLOCK_PASS, "__type__", INT2NUM(NODE_BLOCK_PASS));
|
|
3259
3274
|
rb_define_singleton_method(rb_cBLOCK_PASS, "members", node_s_members, 0);
|
|
3260
3275
|
|
|
3261
|
-
/* Document-method: body
|
|
3262
|
-
* the object to pass as a block
|
|
3263
|
-
*/
|
|
3264
|
-
rb_define_method(rb_cBLOCK_PASS, "body", node_body, 0);
|
|
3265
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
3266
|
-
|
|
3267
3276
|
/* Document-method: iter
|
|
3268
3277
|
* an expression which calls a method
|
|
3269
3278
|
*/
|
|
3270
3279
|
rb_define_method(rb_cBLOCK_PASS, "iter", node_iter, 0);
|
|
3271
3280
|
rb_ary_push(members, rb_str_new2("iter"));
|
|
3281
|
+
|
|
3282
|
+
/* Document-method: body
|
|
3283
|
+
* the object to pass as a block
|
|
3284
|
+
*/
|
|
3285
|
+
rb_define_method(rb_cBLOCK_PASS, "body", node_body, 0);
|
|
3286
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
3272
3287
|
}
|
|
3273
3288
|
|
|
3274
3289
|
/* Document-class: Node::BMETHOD
|
|
@@ -3325,12 +3340,6 @@ void define_node_subclass_methods()
|
|
|
3325
3340
|
rb_iv_set(rb_cCALL, "__type__", INT2NUM(NODE_CALL));
|
|
3326
3341
|
rb_define_singleton_method(rb_cCALL, "members", node_s_members, 0);
|
|
3327
3342
|
|
|
3328
|
-
/* Document-method: args
|
|
3329
|
-
* the arguments to the method
|
|
3330
|
-
*/
|
|
3331
|
-
rb_define_method(rb_cCALL, "args", node_args, 0);
|
|
3332
|
-
rb_ary_push(members, rb_str_new2("args"));
|
|
3333
|
-
|
|
3334
3343
|
/* Document-method: mid
|
|
3335
3344
|
* the method id
|
|
3336
3345
|
*/
|
|
@@ -3342,6 +3351,12 @@ void define_node_subclass_methods()
|
|
|
3342
3351
|
*/
|
|
3343
3352
|
rb_define_method(rb_cCALL, "recv", node_recv, 0);
|
|
3344
3353
|
rb_ary_push(members, rb_str_new2("recv"));
|
|
3354
|
+
|
|
3355
|
+
/* Document-method: args
|
|
3356
|
+
* the arguments to the method
|
|
3357
|
+
*/
|
|
3358
|
+
rb_define_method(rb_cCALL, "args", node_args, 0);
|
|
3359
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
3345
3360
|
}
|
|
3346
3361
|
|
|
3347
3362
|
/* Document-class: Node::CASE
|
|
@@ -3358,6 +3373,8 @@ void define_node_subclass_methods()
|
|
|
3358
3373
|
rb_iv_set(rb_cCASE, "__member__", members);
|
|
3359
3374
|
rb_iv_set(rb_cCASE, "__type__", INT2NUM(NODE_CASE));
|
|
3360
3375
|
rb_define_singleton_method(rb_cCASE, "members", node_s_members, 0);
|
|
3376
|
+
rb_define_method(rb_cCASE, "next", node_next, 0);
|
|
3377
|
+
rb_ary_push(members, rb_str_new2("next"));
|
|
3361
3378
|
|
|
3362
3379
|
/* Document-method: head
|
|
3363
3380
|
* the value to select on
|
|
@@ -3371,8 +3388,6 @@ void define_node_subclass_methods()
|
|
|
3371
3388
|
*/
|
|
3372
3389
|
rb_define_method(rb_cCASE, "body", node_body, 0);
|
|
3373
3390
|
rb_ary_push(members, rb_str_new2("body"));
|
|
3374
|
-
rb_define_method(rb_cCASE, "next", node_next, 0);
|
|
3375
|
-
rb_ary_push(members, rb_str_new2("next"));
|
|
3376
3391
|
}
|
|
3377
3392
|
|
|
3378
3393
|
/* Document-class: Node::CDECL
|
|
@@ -3387,17 +3402,17 @@ void define_node_subclass_methods()
|
|
|
3387
3402
|
rb_iv_set(rb_cCDECL, "__type__", INT2NUM(NODE_CDECL));
|
|
3388
3403
|
rb_define_singleton_method(rb_cCDECL, "members", node_s_members, 0);
|
|
3389
3404
|
|
|
3390
|
-
/* Document-method: value
|
|
3391
|
-
* the value to be assigned to the constant
|
|
3392
|
-
*/
|
|
3393
|
-
rb_define_method(rb_cCDECL, "value", node_value, 0);
|
|
3394
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
3395
|
-
|
|
3396
3405
|
/* Document-method: vid
|
|
3397
3406
|
* the name of the constant to be assigned, all uppercase
|
|
3398
3407
|
*/
|
|
3399
3408
|
rb_define_method(rb_cCDECL, "vid", node_vid, 0);
|
|
3400
3409
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
3410
|
+
|
|
3411
|
+
/* Document-method: value
|
|
3412
|
+
* the value to be assigned to the constant
|
|
3413
|
+
*/
|
|
3414
|
+
rb_define_method(rb_cCDECL, "value", node_value, 0);
|
|
3415
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
3401
3416
|
}
|
|
3402
3417
|
|
|
3403
3418
|
/* Document-class: Node::CFUNC
|
|
@@ -3410,10 +3425,10 @@ void define_node_subclass_methods()
|
|
|
3410
3425
|
rb_iv_set(rb_cCFUNC, "__member__", members);
|
|
3411
3426
|
rb_iv_set(rb_cCFUNC, "__type__", INT2NUM(NODE_CFUNC));
|
|
3412
3427
|
rb_define_singleton_method(rb_cCFUNC, "members", node_s_members, 0);
|
|
3413
|
-
rb_define_method(rb_cCFUNC, "cfnc", node_cfnc, 0);
|
|
3414
|
-
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
3415
3428
|
rb_define_method(rb_cCFUNC, "argc", node_argc, 0);
|
|
3416
3429
|
rb_ary_push(members, rb_str_new2("argc"));
|
|
3430
|
+
rb_define_method(rb_cCFUNC, "cfnc", node_cfnc, 0);
|
|
3431
|
+
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
3417
3432
|
}
|
|
3418
3433
|
|
|
3419
3434
|
/* Document-class: Node::CLASS
|
|
@@ -3446,18 +3461,18 @@ void define_node_subclass_methods()
|
|
|
3446
3461
|
rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
|
|
3447
3462
|
rb_ary_push(members, rb_str_new2("cpath"));
|
|
3448
3463
|
|
|
3449
|
-
/* Document-method: body
|
|
3450
|
-
* the body of the class definition
|
|
3451
|
-
*/
|
|
3452
|
-
rb_define_method(rb_cCLASS, "body", node_body, 0);
|
|
3453
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
3454
|
-
|
|
3455
3464
|
/* Document-method: super
|
|
3456
3465
|
* an expression returning the base class, or false if there is no
|
|
3457
3466
|
* base class specified
|
|
3458
3467
|
*/
|
|
3459
3468
|
rb_define_method(rb_cCLASS, "super", node_super, 0);
|
|
3460
3469
|
rb_ary_push(members, rb_str_new2("super"));
|
|
3470
|
+
|
|
3471
|
+
/* Document-method: body
|
|
3472
|
+
* the body of the class definition
|
|
3473
|
+
*/
|
|
3474
|
+
rb_define_method(rb_cCLASS, "body", node_body, 0);
|
|
3475
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
3461
3476
|
}
|
|
3462
3477
|
|
|
3463
3478
|
/* Document-class: Node::COLON2
|
|
@@ -3476,17 +3491,17 @@ void define_node_subclass_methods()
|
|
|
3476
3491
|
rb_iv_set(rb_cCOLON2, "__type__", INT2NUM(NODE_COLON2));
|
|
3477
3492
|
rb_define_singleton_method(rb_cCOLON2, "members", node_s_members, 0);
|
|
3478
3493
|
|
|
3479
|
-
/* Document-method: head
|
|
3480
|
-
* an expression specifying the class in which to do the lookup
|
|
3481
|
-
*/
|
|
3482
|
-
rb_define_method(rb_cCOLON2, "head", node_head, 0);
|
|
3483
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3484
|
-
|
|
3485
3494
|
/* Document-method: mid
|
|
3486
3495
|
* the name of the method or constant to call/look up
|
|
3487
3496
|
*/
|
|
3488
3497
|
rb_define_method(rb_cCOLON2, "mid", node_mid, 0);
|
|
3489
3498
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3499
|
+
|
|
3500
|
+
/* Document-method: head
|
|
3501
|
+
* an expression specifying the class in which to do the lookup
|
|
3502
|
+
*/
|
|
3503
|
+
rb_define_method(rb_cCOLON2, "head", node_head, 0);
|
|
3504
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3490
3505
|
}
|
|
3491
3506
|
|
|
3492
3507
|
/* Document-class: Node::COLON3
|
|
@@ -3545,11 +3560,11 @@ void define_node_subclass_methods()
|
|
|
3545
3560
|
rb_iv_set(rb_cCREF, "__type__", INT2NUM(NODE_CREF));
|
|
3546
3561
|
rb_define_singleton_method(rb_cCREF, "members", node_s_members, 0);
|
|
3547
3562
|
|
|
3548
|
-
/* Document-method:
|
|
3549
|
-
*
|
|
3563
|
+
/* Document-method: clss
|
|
3564
|
+
* the new class to use for the cbase.
|
|
3550
3565
|
*/
|
|
3551
|
-
rb_define_method(rb_cCREF, "
|
|
3552
|
-
rb_ary_push(members, rb_str_new2("
|
|
3566
|
+
rb_define_method(rb_cCREF, "clss", node_clss, 0);
|
|
3567
|
+
rb_ary_push(members, rb_str_new2("clss"));
|
|
3553
3568
|
|
|
3554
3569
|
/* Document-method: next
|
|
3555
3570
|
* the previous value of ruby_cref or ruby_top_cref
|
|
@@ -3557,11 +3572,11 @@ void define_node_subclass_methods()
|
|
|
3557
3572
|
rb_define_method(rb_cCREF, "next", node_next, 0);
|
|
3558
3573
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3559
3574
|
|
|
3560
|
-
/* Document-method:
|
|
3561
|
-
*
|
|
3575
|
+
/* Document-method: body
|
|
3576
|
+
* always 0 (false)
|
|
3562
3577
|
*/
|
|
3563
|
-
rb_define_method(rb_cCREF, "
|
|
3564
|
-
rb_ary_push(members, rb_str_new2("
|
|
3578
|
+
rb_define_method(rb_cCREF, "body", node_body, 0);
|
|
3579
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
3565
3580
|
}
|
|
3566
3581
|
|
|
3567
3582
|
/* Document-class: Node::CVAR
|
|
@@ -3594,18 +3609,18 @@ void define_node_subclass_methods()
|
|
|
3594
3609
|
rb_iv_set(rb_cCVASGN, "__type__", INT2NUM(NODE_CVASGN));
|
|
3595
3610
|
rb_define_singleton_method(rb_cCVASGN, "members", node_s_members, 0);
|
|
3596
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
|
+
|
|
3597
3618
|
/* Document-method: value
|
|
3598
3619
|
* an expression whose result is the new value of the class
|
|
3599
3620
|
* variable
|
|
3600
3621
|
*/
|
|
3601
3622
|
rb_define_method(rb_cCVASGN, "value", node_value, 0);
|
|
3602
3623
|
rb_ary_push(members, rb_str_new2("value"));
|
|
3603
|
-
|
|
3604
|
-
/* Document-method: vid
|
|
3605
|
-
* the name of the class variable to assign
|
|
3606
|
-
*/
|
|
3607
|
-
rb_define_method(rb_cCVASGN, "vid", node_vid, 0);
|
|
3608
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
|
3609
3624
|
}
|
|
3610
3625
|
|
|
3611
3626
|
/* Document-class: Node::CVDECL
|
|
@@ -3621,18 +3636,18 @@ void define_node_subclass_methods()
|
|
|
3621
3636
|
rb_iv_set(rb_cCVDECL, "__type__", INT2NUM(NODE_CVDECL));
|
|
3622
3637
|
rb_define_singleton_method(rb_cCVDECL, "members", node_s_members, 0);
|
|
3623
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
|
+
|
|
3624
3645
|
/* Document-method: value
|
|
3625
3646
|
* an expression whose result is the new value of the class
|
|
3626
3647
|
* variable
|
|
3627
3648
|
*/
|
|
3628
3649
|
rb_define_method(rb_cCVDECL, "value", node_value, 0);
|
|
3629
3650
|
rb_ary_push(members, rb_str_new2("value"));
|
|
3630
|
-
|
|
3631
|
-
/* Document-method: vid
|
|
3632
|
-
* the name of the class variable to assign
|
|
3633
|
-
*/
|
|
3634
|
-
rb_define_method(rb_cCVDECL, "vid", node_vid, 0);
|
|
3635
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
|
3636
3651
|
}
|
|
3637
3652
|
|
|
3638
3653
|
/* Document-class: Node::DASGN
|
|
@@ -3655,17 +3670,17 @@ void define_node_subclass_methods()
|
|
|
3655
3670
|
rb_iv_set(rb_cDASGN, "__type__", INT2NUM(NODE_DASGN));
|
|
3656
3671
|
rb_define_singleton_method(rb_cDASGN, "members", node_s_members, 0);
|
|
3657
3672
|
|
|
3658
|
-
/* Document-method: value
|
|
3659
|
-
* the value to assign to the local variable
|
|
3660
|
-
*/
|
|
3661
|
-
rb_define_method(rb_cDASGN, "value", node_value, 0);
|
|
3662
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
3663
|
-
|
|
3664
3673
|
/* Document-method: vid
|
|
3665
3674
|
* the name of the local variable
|
|
3666
3675
|
*/
|
|
3667
3676
|
rb_define_method(rb_cDASGN, "vid", node_vid, 0);
|
|
3668
3677
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
3678
|
+
|
|
3679
|
+
/* Document-method: value
|
|
3680
|
+
* the value to assign to the local variable
|
|
3681
|
+
*/
|
|
3682
|
+
rb_define_method(rb_cDASGN, "value", node_value, 0);
|
|
3683
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
3669
3684
|
}
|
|
3670
3685
|
|
|
3671
3686
|
/* Document-class: Node::DASGN_CURR
|
|
@@ -3680,17 +3695,17 @@ void define_node_subclass_methods()
|
|
|
3680
3695
|
rb_iv_set(rb_cDASGN_CURR, "__type__", INT2NUM(NODE_DASGN_CURR));
|
|
3681
3696
|
rb_define_singleton_method(rb_cDASGN_CURR, "members", node_s_members, 0);
|
|
3682
3697
|
|
|
3683
|
-
/* Document-method: value
|
|
3684
|
-
* the value to assign to the local variable
|
|
3685
|
-
*/
|
|
3686
|
-
rb_define_method(rb_cDASGN_CURR, "value", node_value, 0);
|
|
3687
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
3688
|
-
|
|
3689
3698
|
/* Document-method: vid
|
|
3690
3699
|
* the name of the local variable
|
|
3691
3700
|
*/
|
|
3692
3701
|
rb_define_method(rb_cDASGN_CURR, "vid", node_vid, 0);
|
|
3693
3702
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
3703
|
+
|
|
3704
|
+
/* Document-method: value
|
|
3705
|
+
* the value to assign to the local variable
|
|
3706
|
+
*/
|
|
3707
|
+
rb_define_method(rb_cDASGN_CURR, "value", node_value, 0);
|
|
3708
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
3694
3709
|
}
|
|
3695
3710
|
|
|
3696
3711
|
/* Document-class: Node::DEFINED
|
|
@@ -3761,17 +3776,17 @@ void define_node_subclass_methods()
|
|
|
3761
3776
|
rb_define_method(rb_cDEFS, "defn", node_defn, 0);
|
|
3762
3777
|
rb_ary_push(members, rb_str_new2("defn"));
|
|
3763
3778
|
|
|
3764
|
-
/* Document-method: mid
|
|
3765
|
-
* the name of the method* defn the body of the method
|
|
3766
|
-
*/
|
|
3767
|
-
rb_define_method(rb_cDEFS, "mid", node_mid, 0);
|
|
3768
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
|
3769
|
-
|
|
3770
3779
|
/* Document-method: recv
|
|
3771
3780
|
* the object to whose singleton class the new method is to be added
|
|
3772
3781
|
*/
|
|
3773
3782
|
rb_define_method(rb_cDEFS, "recv", node_recv, 0);
|
|
3774
3783
|
rb_ary_push(members, rb_str_new2("recv"));
|
|
3784
|
+
|
|
3785
|
+
/* Document-method: mid
|
|
3786
|
+
* the name of the method* defn the body of the method
|
|
3787
|
+
*/
|
|
3788
|
+
rb_define_method(rb_cDEFS, "mid", node_mid, 0);
|
|
3789
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
|
3775
3790
|
}
|
|
3776
3791
|
|
|
3777
3792
|
/* Document-class: Node::DMETHOD
|
|
@@ -3810,17 +3825,17 @@ void define_node_subclass_methods()
|
|
|
3810
3825
|
rb_iv_set(rb_cDOT2, "__type__", INT2NUM(NODE_DOT2));
|
|
3811
3826
|
rb_define_singleton_method(rb_cDOT2, "members", node_s_members, 0);
|
|
3812
3827
|
|
|
3813
|
-
/* Document-method: beg
|
|
3814
|
-
* the beginning of the range
|
|
3815
|
-
*/
|
|
3816
|
-
rb_define_method(rb_cDOT2, "beg", node_beg, 0);
|
|
3817
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
|
3818
|
-
|
|
3819
3828
|
/* Document-method: end
|
|
3820
3829
|
* the end of the range
|
|
3821
3830
|
*/
|
|
3822
3831
|
rb_define_method(rb_cDOT2, "end", node_end, 0);
|
|
3823
3832
|
rb_ary_push(members, rb_str_new2("end"));
|
|
3833
|
+
|
|
3834
|
+
/* Document-method: beg
|
|
3835
|
+
* the beginning of the range
|
|
3836
|
+
*/
|
|
3837
|
+
rb_define_method(rb_cDOT2, "beg", node_beg, 0);
|
|
3838
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
3824
3839
|
rb_define_method(rb_cDOT2, "state", node_state, 0);
|
|
3825
3840
|
rb_ary_push(members, rb_str_new2("state"));
|
|
3826
3841
|
}
|
|
@@ -3838,17 +3853,17 @@ void define_node_subclass_methods()
|
|
|
3838
3853
|
rb_iv_set(rb_cDOT3, "__type__", INT2NUM(NODE_DOT3));
|
|
3839
3854
|
rb_define_singleton_method(rb_cDOT3, "members", node_s_members, 0);
|
|
3840
3855
|
|
|
3841
|
-
/* Document-method: beg
|
|
3842
|
-
* the beginning of the range
|
|
3843
|
-
*/
|
|
3844
|
-
rb_define_method(rb_cDOT3, "beg", node_beg, 0);
|
|
3845
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
|
3846
|
-
|
|
3847
3856
|
/* Document-method: end
|
|
3848
3857
|
* the end of the range
|
|
3849
3858
|
*/
|
|
3850
3859
|
rb_define_method(rb_cDOT3, "end", node_end, 0);
|
|
3851
3860
|
rb_ary_push(members, rb_str_new2("end"));
|
|
3861
|
+
|
|
3862
|
+
/* Document-method: beg
|
|
3863
|
+
* the beginning of the range
|
|
3864
|
+
*/
|
|
3865
|
+
rb_define_method(rb_cDOT3, "beg", node_beg, 0);
|
|
3866
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
3852
3867
|
rb_define_method(rb_cDOT3, "state", node_state, 0);
|
|
3853
3868
|
rb_ary_push(members, rb_str_new2("state"));
|
|
3854
3869
|
}
|
|
@@ -4119,11 +4134,11 @@ void define_node_subclass_methods()
|
|
|
4119
4134
|
rb_iv_set(rb_cFBODY, "__type__", INT2NUM(NODE_FBODY));
|
|
4120
4135
|
rb_define_singleton_method(rb_cFBODY, "members", node_s_members, 0);
|
|
4121
4136
|
|
|
4122
|
-
/* Document-method:
|
|
4123
|
-
* the method
|
|
4137
|
+
/* Document-method: mid
|
|
4138
|
+
* the name of the method
|
|
4124
4139
|
*/
|
|
4125
|
-
rb_define_method(rb_cFBODY, "
|
|
4126
|
-
rb_ary_push(members, rb_str_new2("
|
|
4140
|
+
rb_define_method(rb_cFBODY, "mid", node_mid, 0);
|
|
4141
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
|
4127
4142
|
|
|
4128
4143
|
/* Document-method: orig
|
|
4129
4144
|
* the origin class
|
|
@@ -4131,11 +4146,11 @@ void define_node_subclass_methods()
|
|
|
4131
4146
|
rb_define_method(rb_cFBODY, "orig", node_orig, 0);
|
|
4132
4147
|
rb_ary_push(members, rb_str_new2("orig"));
|
|
4133
4148
|
|
|
4134
|
-
/* Document-method:
|
|
4135
|
-
* the
|
|
4149
|
+
/* Document-method: head
|
|
4150
|
+
* the method body
|
|
4136
4151
|
*/
|
|
4137
|
-
rb_define_method(rb_cFBODY, "
|
|
4138
|
-
rb_ary_push(members, rb_str_new2("
|
|
4152
|
+
rb_define_method(rb_cFBODY, "head", node_head, 0);
|
|
4153
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
4139
4154
|
}
|
|
4140
4155
|
|
|
4141
4156
|
/* Document-class: Node::FCALL
|
|
@@ -4153,17 +4168,17 @@ void define_node_subclass_methods()
|
|
|
4153
4168
|
rb_iv_set(rb_cFCALL, "__type__", INT2NUM(NODE_FCALL));
|
|
4154
4169
|
rb_define_singleton_method(rb_cFCALL, "members", node_s_members, 0);
|
|
4155
4170
|
|
|
4156
|
-
/* Document-method: args
|
|
4157
|
-
* the arguments to the method
|
|
4158
|
-
*/
|
|
4159
|
-
rb_define_method(rb_cFCALL, "args", node_args, 0);
|
|
4160
|
-
rb_ary_push(members, rb_str_new2("args"));
|
|
4161
|
-
|
|
4162
4171
|
/* Document-method: mid
|
|
4163
4172
|
* the method id
|
|
4164
4173
|
*/
|
|
4165
4174
|
rb_define_method(rb_cFCALL, "mid", node_mid, 0);
|
|
4166
4175
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
4176
|
+
|
|
4177
|
+
/* Document-method: args
|
|
4178
|
+
* the arguments to the method
|
|
4179
|
+
*/
|
|
4180
|
+
rb_define_method(rb_cFCALL, "args", node_args, 0);
|
|
4181
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
4167
4182
|
}
|
|
4168
4183
|
|
|
4169
4184
|
/* Document-class: Node::FLIP2
|
|
@@ -4180,18 +4195,18 @@ void define_node_subclass_methods()
|
|
|
4180
4195
|
rb_iv_set(rb_cFLIP2, "__type__", INT2NUM(NODE_FLIP2));
|
|
4181
4196
|
rb_define_singleton_method(rb_cFLIP2, "members", node_s_members, 0);
|
|
4182
4197
|
|
|
4183
|
-
/* Document-method: beg
|
|
4184
|
-
* the beginning of the range
|
|
4185
|
-
*/
|
|
4186
|
-
rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
|
|
4187
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
|
4188
|
-
|
|
4189
4198
|
/* Document-method: end
|
|
4190
4199
|
* the end of the range
|
|
4191
4200
|
*/
|
|
4192
4201
|
rb_define_method(rb_cFLIP2, "end", node_end, 0);
|
|
4193
4202
|
rb_ary_push(members, rb_str_new2("end"));
|
|
4194
4203
|
|
|
4204
|
+
/* Document-method: beg
|
|
4205
|
+
* the beginning of the range
|
|
4206
|
+
*/
|
|
4207
|
+
rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
|
|
4208
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
4209
|
+
|
|
4195
4210
|
/* Document-method: cnt
|
|
4196
4211
|
* the index into the local variable table of the special variable
|
|
4197
4212
|
* to use in the flip-flop expression (usually 2 for $_)
|
|
@@ -4214,18 +4229,18 @@ void define_node_subclass_methods()
|
|
|
4214
4229
|
rb_iv_set(rb_cFLIP3, "__type__", INT2NUM(NODE_FLIP3));
|
|
4215
4230
|
rb_define_singleton_method(rb_cFLIP3, "members", node_s_members, 0);
|
|
4216
4231
|
|
|
4217
|
-
/* Document-method: beg
|
|
4218
|
-
* the beginning of the range
|
|
4219
|
-
*/
|
|
4220
|
-
rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
|
|
4221
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
|
4222
|
-
|
|
4223
4232
|
/* Document-method: end
|
|
4224
4233
|
* the end of the range
|
|
4225
4234
|
*/
|
|
4226
4235
|
rb_define_method(rb_cFLIP3, "end", node_end, 0);
|
|
4227
4236
|
rb_ary_push(members, rb_str_new2("end"));
|
|
4228
4237
|
|
|
4238
|
+
/* Document-method: beg
|
|
4239
|
+
* the beginning of the range
|
|
4240
|
+
*/
|
|
4241
|
+
rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
|
|
4242
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
4243
|
+
|
|
4229
4244
|
/* Document-method: cnt
|
|
4230
4245
|
* the index into the local variable table of the special variable
|
|
4231
4246
|
* to use in the flip-flop expression (usually 2 for $_)
|
|
@@ -4256,12 +4271,6 @@ void define_node_subclass_methods()
|
|
|
4256
4271
|
rb_iv_set(rb_cFOR, "__type__", INT2NUM(NODE_FOR));
|
|
4257
4272
|
rb_define_singleton_method(rb_cFOR, "members", node_s_members, 0);
|
|
4258
4273
|
|
|
4259
|
-
/* Document-method: body
|
|
4260
|
-
* the body of the loop
|
|
4261
|
-
*/
|
|
4262
|
-
rb_define_method(rb_cFOR, "body", node_body, 0);
|
|
4263
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
4264
|
-
|
|
4265
4274
|
/* Document-method: iter
|
|
4266
4275
|
* the sequence over which to iterate
|
|
4267
4276
|
*/
|
|
@@ -4275,6 +4284,12 @@ void define_node_subclass_methods()
|
|
|
4275
4284
|
*/
|
|
4276
4285
|
rb_define_method(rb_cFOR, "var", node_var, 0);
|
|
4277
4286
|
rb_ary_push(members, rb_str_new2("var"));
|
|
4287
|
+
|
|
4288
|
+
/* Document-method: body
|
|
4289
|
+
* the body of the loop
|
|
4290
|
+
*/
|
|
4291
|
+
rb_define_method(rb_cFOR, "body", node_body, 0);
|
|
4292
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
4278
4293
|
}
|
|
4279
4294
|
|
|
4280
4295
|
/* Document-class: Node::GASGN
|
|
@@ -4288,12 +4303,6 @@ void define_node_subclass_methods()
|
|
|
4288
4303
|
rb_iv_set(rb_cGASGN, "__type__", INT2NUM(NODE_GASGN));
|
|
4289
4304
|
rb_define_singleton_method(rb_cGASGN, "members", node_s_members, 0);
|
|
4290
4305
|
|
|
4291
|
-
/* Document-method: value
|
|
4292
|
-
* an expression whose result is the new value of the global variable
|
|
4293
|
-
*/
|
|
4294
|
-
rb_define_method(rb_cGASGN, "value", node_value, 0);
|
|
4295
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
4296
|
-
|
|
4297
4306
|
/* Document-method: vid
|
|
4298
4307
|
* the name of the global variable, with a leading '$' character.
|
|
4299
4308
|
*/
|
|
@@ -4301,6 +4310,12 @@ void define_node_subclass_methods()
|
|
|
4301
4310
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4302
4311
|
rb_define_method(rb_cGASGN, "entry", node_entry, 0);
|
|
4303
4312
|
rb_ary_push(members, rb_str_new2("entry"));
|
|
4313
|
+
|
|
4314
|
+
/* Document-method: value
|
|
4315
|
+
* an expression whose result is the new value of the global variable
|
|
4316
|
+
*/
|
|
4317
|
+
rb_define_method(rb_cGASGN, "value", node_value, 0);
|
|
4318
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4304
4319
|
}
|
|
4305
4320
|
|
|
4306
4321
|
/* Document-class: Node::GVAR
|
|
@@ -4353,17 +4368,17 @@ void define_node_subclass_methods()
|
|
|
4353
4368
|
rb_iv_set(rb_cIASGN, "__type__", INT2NUM(NODE_IASGN));
|
|
4354
4369
|
rb_define_singleton_method(rb_cIASGN, "members", node_s_members, 0);
|
|
4355
4370
|
|
|
4356
|
-
/* Document-method: value
|
|
4357
|
-
* the value to assign to the instance variable
|
|
4358
|
-
*/
|
|
4359
|
-
rb_define_method(rb_cIASGN, "value", node_value, 0);
|
|
4360
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
4361
|
-
|
|
4362
4371
|
/* Document-method: vid
|
|
4363
4372
|
* the name of the instance variable, with a leading '@' sign
|
|
4364
4373
|
*/
|
|
4365
4374
|
rb_define_method(rb_cIASGN, "vid", node_vid, 0);
|
|
4366
4375
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4376
|
+
|
|
4377
|
+
/* Document-method: value
|
|
4378
|
+
* the value to assign to the instance variable
|
|
4379
|
+
*/
|
|
4380
|
+
rb_define_method(rb_cIASGN, "value", node_value, 0);
|
|
4381
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4367
4382
|
}
|
|
4368
4383
|
|
|
4369
4384
|
/* Document-class: Node::IF
|
|
@@ -4427,11 +4442,11 @@ void define_node_subclass_methods()
|
|
|
4427
4442
|
rb_iv_set(rb_cIFUNC, "__type__", INT2NUM(NODE_IFUNC));
|
|
4428
4443
|
rb_define_singleton_method(rb_cIFUNC, "members", node_s_members, 0);
|
|
4429
4444
|
|
|
4430
|
-
/* Document-method:
|
|
4431
|
-
*
|
|
4445
|
+
/* Document-method: state
|
|
4446
|
+
* always 0
|
|
4432
4447
|
*/
|
|
4433
|
-
rb_define_method(rb_cIFUNC, "
|
|
4434
|
-
rb_ary_push(members, rb_str_new2("
|
|
4448
|
+
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
|
4449
|
+
rb_ary_push(members, rb_str_new2("state"));
|
|
4435
4450
|
|
|
4436
4451
|
/* Document-method: tval
|
|
4437
4452
|
* the user-specified data to be passed as the second argument to
|
|
@@ -4440,11 +4455,11 @@ void define_node_subclass_methods()
|
|
|
4440
4455
|
rb_define_method(rb_cIFUNC, "tval", node_tval, 0);
|
|
4441
4456
|
rb_ary_push(members, rb_str_new2("tval"));
|
|
4442
4457
|
|
|
4443
|
-
/* Document-method:
|
|
4444
|
-
*
|
|
4458
|
+
/* Document-method: cfnc
|
|
4459
|
+
* a pointer to the C function to which to yield
|
|
4445
4460
|
*/
|
|
4446
|
-
rb_define_method(rb_cIFUNC, "
|
|
4447
|
-
rb_ary_push(members, rb_str_new2("
|
|
4461
|
+
rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
|
|
4462
|
+
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
4448
4463
|
}
|
|
4449
4464
|
|
|
4450
4465
|
/* Document-class: Node::ITER
|
|
@@ -4468,12 +4483,6 @@ void define_node_subclass_methods()
|
|
|
4468
4483
|
rb_iv_set(rb_cITER, "__type__", INT2NUM(NODE_ITER));
|
|
4469
4484
|
rb_define_singleton_method(rb_cITER, "members", node_s_members, 0);
|
|
4470
4485
|
|
|
4471
|
-
/* Document-method: body
|
|
4472
|
-
* the body of the loop
|
|
4473
|
-
*/
|
|
4474
|
-
rb_define_method(rb_cITER, "body", node_body, 0);
|
|
4475
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
4476
|
-
|
|
4477
4486
|
/* Document-method: iter
|
|
4478
4487
|
* an expression which calls the desired iteration method, usually
|
|
4479
4488
|
* recv.each
|
|
@@ -4488,6 +4497,12 @@ void define_node_subclass_methods()
|
|
|
4488
4497
|
*/
|
|
4489
4498
|
rb_define_method(rb_cITER, "var", node_var, 0);
|
|
4490
4499
|
rb_ary_push(members, rb_str_new2("var"));
|
|
4500
|
+
|
|
4501
|
+
/* Document-method: body
|
|
4502
|
+
* the body of the loop
|
|
4503
|
+
*/
|
|
4504
|
+
rb_define_method(rb_cITER, "body", node_body, 0);
|
|
4505
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
4491
4506
|
}
|
|
4492
4507
|
|
|
4493
4508
|
/* Document-class: Node::IVAR
|
|
@@ -4522,17 +4537,17 @@ void define_node_subclass_methods()
|
|
|
4522
4537
|
rb_iv_set(rb_cLASGN, "__type__", INT2NUM(NODE_LASGN));
|
|
4523
4538
|
rb_define_singleton_method(rb_cLASGN, "members", node_s_members, 0);
|
|
4524
4539
|
|
|
4525
|
-
/* Document-method: value
|
|
4526
|
-
* the value to assign to the local variable
|
|
4527
|
-
*/
|
|
4528
|
-
rb_define_method(rb_cLASGN, "value", node_value, 0);
|
|
4529
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
4530
|
-
|
|
4531
4540
|
/* Document-method: vid
|
|
4532
4541
|
* the name of the local variable
|
|
4533
4542
|
*/
|
|
4534
4543
|
rb_define_method(rb_cLASGN, "vid", node_vid, 0);
|
|
4535
4544
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4545
|
+
|
|
4546
|
+
/* Document-method: value
|
|
4547
|
+
* the value to assign to the local variable
|
|
4548
|
+
*/
|
|
4549
|
+
rb_define_method(rb_cLASGN, "value", node_value, 0);
|
|
4550
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4536
4551
|
rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
|
|
4537
4552
|
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4538
4553
|
}
|
|
@@ -4593,17 +4608,17 @@ void define_node_subclass_methods()
|
|
|
4593
4608
|
rb_define_method(rb_cMASGN, "args", node_args, 0);
|
|
4594
4609
|
rb_ary_push(members, rb_str_new2("args"));
|
|
4595
4610
|
|
|
4596
|
-
/* Document-method: head
|
|
4597
|
-
* TODO
|
|
4598
|
-
*/
|
|
4599
|
-
rb_define_method(rb_cMASGN, "head", node_head, 0);
|
|
4600
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
4601
|
-
|
|
4602
4611
|
/* Document-method: value
|
|
4603
4612
|
* TODO
|
|
4604
4613
|
*/
|
|
4605
4614
|
rb_define_method(rb_cMASGN, "value", node_value, 0);
|
|
4606
4615
|
rb_ary_push(members, rb_str_new2("value"));
|
|
4616
|
+
|
|
4617
|
+
/* Document-method: head
|
|
4618
|
+
* TODO
|
|
4619
|
+
*/
|
|
4620
|
+
rb_define_method(rb_cMASGN, "head", node_head, 0);
|
|
4621
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
4607
4622
|
}
|
|
4608
4623
|
|
|
4609
4624
|
/* Document-class: Node::MATCH
|
|
@@ -4666,6 +4681,13 @@ void define_node_subclass_methods()
|
|
|
4666
4681
|
rb_iv_set(rb_cMATCH2, "__type__", INT2NUM(NODE_MATCH2));
|
|
4667
4682
|
rb_define_singleton_method(rb_cMATCH2, "members", node_s_members, 0);
|
|
4668
4683
|
|
|
4684
|
+
/* Document-method: recv
|
|
4685
|
+
* the regular expression on the left hand side of the match
|
|
4686
|
+
* operator
|
|
4687
|
+
*/
|
|
4688
|
+
rb_define_method(rb_cMATCH2, "recv", node_recv, 0);
|
|
4689
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4690
|
+
|
|
4669
4691
|
/* Document-method: value
|
|
4670
4692
|
* the expression on the right hand side of the match operator, or
|
|
4671
4693
|
* an expression returning $_ if there is nothing on the right hand
|
|
@@ -4673,13 +4695,6 @@ void define_node_subclass_methods()
|
|
|
4673
4695
|
*/
|
|
4674
4696
|
rb_define_method(rb_cMATCH2, "value", node_value, 0);
|
|
4675
4697
|
rb_ary_push(members, rb_str_new2("value"));
|
|
4676
|
-
|
|
4677
|
-
/* Document-method: recv
|
|
4678
|
-
* the regular expression on the left hand side of the match
|
|
4679
|
-
* operator
|
|
4680
|
-
*/
|
|
4681
|
-
rb_define_method(rb_cMATCH2, "recv", node_recv, 0);
|
|
4682
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
4683
4698
|
}
|
|
4684
4699
|
|
|
4685
4700
|
/* Document-class: Node::MATCH3
|
|
@@ -4697,17 +4712,17 @@ void define_node_subclass_methods()
|
|
|
4697
4712
|
rb_iv_set(rb_cMATCH3, "__type__", INT2NUM(NODE_MATCH3));
|
|
4698
4713
|
rb_define_singleton_method(rb_cMATCH3, "members", node_s_members, 0);
|
|
4699
4714
|
|
|
4700
|
-
/* Document-method: value
|
|
4701
|
-
* the right hand side of the match
|
|
4702
|
-
*/
|
|
4703
|
-
rb_define_method(rb_cMATCH3, "value", node_value, 0);
|
|
4704
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
4705
|
-
|
|
4706
4715
|
/* Document-method: recv
|
|
4707
4716
|
* the left hand side of the match
|
|
4708
4717
|
*/
|
|
4709
4718
|
rb_define_method(rb_cMATCH3, "recv", node_recv, 0);
|
|
4710
4719
|
rb_ary_push(members, rb_str_new2("recv"));
|
|
4720
|
+
|
|
4721
|
+
/* Document-method: value
|
|
4722
|
+
* the right hand side of the match
|
|
4723
|
+
*/
|
|
4724
|
+
rb_define_method(rb_cMATCH3, "value", node_value, 0);
|
|
4725
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4711
4726
|
}
|
|
4712
4727
|
|
|
4713
4728
|
/* Document-class: Node::MEMO
|
|
@@ -4744,17 +4759,17 @@ void define_node_subclass_methods()
|
|
|
4744
4759
|
rb_iv_set(rb_cMETHOD, "__type__", INT2NUM(NODE_METHOD));
|
|
4745
4760
|
rb_define_singleton_method(rb_cMETHOD, "members", node_s_members, 0);
|
|
4746
4761
|
|
|
4747
|
-
/* Document-method: body
|
|
4748
|
-
* the body of the method
|
|
4749
|
-
*/
|
|
4750
|
-
rb_define_method(rb_cMETHOD, "body", node_body, 0);
|
|
4751
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
4752
|
-
|
|
4753
4762
|
/* Document-method: noex
|
|
4754
4763
|
* the method's flags
|
|
4755
4764
|
*/
|
|
4756
4765
|
rb_define_method(rb_cMETHOD, "noex", node_noex, 0);
|
|
4757
4766
|
rb_ary_push(members, rb_str_new2("noex"));
|
|
4767
|
+
|
|
4768
|
+
/* Document-method: body
|
|
4769
|
+
* the body of the method
|
|
4770
|
+
*/
|
|
4771
|
+
rb_define_method(rb_cMETHOD, "body", node_body, 0);
|
|
4772
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
4758
4773
|
}
|
|
4759
4774
|
|
|
4760
4775
|
/* Document-class: Node::MODULE
|
|
@@ -4928,12 +4943,6 @@ void define_node_subclass_methods()
|
|
|
4928
4943
|
rb_iv_set(rb_cOP_ASGN1, "__type__", INT2NUM(NODE_OP_ASGN1));
|
|
4929
4944
|
rb_define_singleton_method(rb_cOP_ASGN1, "members", node_s_members, 0);
|
|
4930
4945
|
|
|
4931
|
-
/* Document-method: args
|
|
4932
|
-
* the arguments to the assigment
|
|
4933
|
-
*/
|
|
4934
|
-
rb_define_method(rb_cOP_ASGN1, "args", node_args, 0);
|
|
4935
|
-
rb_ary_push(members, rb_str_new2("args"));
|
|
4936
|
-
|
|
4937
4946
|
/* Document-method: mid
|
|
4938
4947
|
* 0, 1, or the name a method to call to calculate the value of the
|
|
4939
4948
|
* rhs
|
|
@@ -4946,6 +4955,12 @@ void define_node_subclass_methods()
|
|
|
4946
4955
|
*/
|
|
4947
4956
|
rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
|
|
4948
4957
|
rb_ary_push(members, rb_str_new2("recv"));
|
|
4958
|
+
|
|
4959
|
+
/* Document-method: args
|
|
4960
|
+
* the arguments to the assigment
|
|
4961
|
+
*/
|
|
4962
|
+
rb_define_method(rb_cOP_ASGN1, "args", node_args, 0);
|
|
4963
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
4949
4964
|
}
|
|
4950
4965
|
|
|
4951
4966
|
/* Document-class: Node::OP_ASGN2
|
|
@@ -4968,11 +4983,11 @@ void define_node_subclass_methods()
|
|
|
4968
4983
|
rb_iv_set(rb_cOP_ASGN2, "__type__", INT2NUM(NODE_OP_ASGN2));
|
|
4969
4984
|
rb_define_singleton_method(rb_cOP_ASGN2, "members", node_s_members, 0);
|
|
4970
4985
|
|
|
4971
|
-
/* Document-method:
|
|
4972
|
-
* the
|
|
4986
|
+
/* Document-method: recv
|
|
4987
|
+
* the receiver of the attribute
|
|
4973
4988
|
*/
|
|
4974
|
-
rb_define_method(rb_cOP_ASGN2, "
|
|
4975
|
-
rb_ary_push(members, rb_str_new2("
|
|
4989
|
+
rb_define_method(rb_cOP_ASGN2, "recv", node_recv, 0);
|
|
4990
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4976
4991
|
|
|
4977
4992
|
/* Document-method: next
|
|
4978
4993
|
* another node of type OP_ASGN2 which contains more information
|
|
@@ -4981,11 +4996,11 @@ void define_node_subclass_methods()
|
|
|
4981
4996
|
rb_define_method(rb_cOP_ASGN2, "next", node_next, 0);
|
|
4982
4997
|
rb_ary_push(members, rb_str_new2("next"));
|
|
4983
4998
|
|
|
4984
|
-
/* Document-method:
|
|
4985
|
-
* the
|
|
4999
|
+
/* Document-method: value
|
|
5000
|
+
* the value to assign to the attribute
|
|
4986
5001
|
*/
|
|
4987
|
-
rb_define_method(rb_cOP_ASGN2, "
|
|
4988
|
-
rb_ary_push(members, rb_str_new2("
|
|
5002
|
+
rb_define_method(rb_cOP_ASGN2, "value", node_value, 0);
|
|
5003
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4989
5004
|
}
|
|
4990
5005
|
|
|
4991
5006
|
/* Document-class: Node::OP_ASGN2_ARG
|
|
@@ -5001,6 +5016,14 @@ void define_node_subclass_methods()
|
|
|
5001
5016
|
rb_iv_set(rb_cOP_ASGN2_ARG, "__type__", INT2NUM(NODE_OP_ASGN2_ARG));
|
|
5002
5017
|
rb_define_singleton_method(rb_cOP_ASGN2_ARG, "members", node_s_members, 0);
|
|
5003
5018
|
|
|
5019
|
+
/* Document-method: mid
|
|
5020
|
+
* The operation to apply to the attribute before setting it. May
|
|
5021
|
+
* be 0 (false) to indicate "logical or" or 1 (nil) to indicate
|
|
5022
|
+
* "logical and".
|
|
5023
|
+
*/
|
|
5024
|
+
rb_define_method(rb_cOP_ASGN2_ARG, "mid", node_mid, 0);
|
|
5025
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
|
5026
|
+
|
|
5004
5027
|
/* Document-method: vid
|
|
5005
5028
|
* The method to call on the receiver to retrieve the attribute
|
|
5006
5029
|
*/
|
|
@@ -5012,14 +5035,6 @@ void define_node_subclass_methods()
|
|
|
5012
5035
|
*/
|
|
5013
5036
|
rb_define_method(rb_cOP_ASGN2_ARG, "aid", node_aid, 0);
|
|
5014
5037
|
rb_ary_push(members, rb_str_new2("aid"));
|
|
5015
|
-
|
|
5016
|
-
/* Document-method: mid
|
|
5017
|
-
* The operation to apply to the attribute before setting it. May
|
|
5018
|
-
* be 0 (false) to indicate "logical or" or 1 (nil) to indicate
|
|
5019
|
-
* "logical and".
|
|
5020
|
-
*/
|
|
5021
|
-
rb_define_method(rb_cOP_ASGN2_ARG, "mid", node_mid, 0);
|
|
5022
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
|
5023
5038
|
}
|
|
5024
5039
|
|
|
5025
5040
|
/* Document-class: Node::OP_ASGN_AND
|
|
@@ -5038,18 +5053,18 @@ void define_node_subclass_methods()
|
|
|
5038
5053
|
rb_iv_set(rb_cOP_ASGN_AND, "__type__", INT2NUM(NODE_OP_ASGN_AND));
|
|
5039
5054
|
rb_define_singleton_method(rb_cOP_ASGN_AND, "members", node_s_members, 0);
|
|
5040
5055
|
|
|
5056
|
+
/* Document-method: recv
|
|
5057
|
+
* an expression representing the left hand side of the assignment
|
|
5058
|
+
*/
|
|
5059
|
+
rb_define_method(rb_cOP_ASGN_AND, "recv", node_recv, 0);
|
|
5060
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
5061
|
+
|
|
5041
5062
|
/* Document-method: value
|
|
5042
5063
|
* an expression representing the assignment that should be
|
|
5043
5064
|
* performed if the left hand side is true
|
|
5044
5065
|
*/
|
|
5045
5066
|
rb_define_method(rb_cOP_ASGN_AND, "value", node_value, 0);
|
|
5046
5067
|
rb_ary_push(members, rb_str_new2("value"));
|
|
5047
|
-
|
|
5048
|
-
/* Document-method: recv
|
|
5049
|
-
* an expression representing the left hand side of the assignment
|
|
5050
|
-
*/
|
|
5051
|
-
rb_define_method(rb_cOP_ASGN_AND, "recv", node_recv, 0);
|
|
5052
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
5053
5068
|
}
|
|
5054
5069
|
|
|
5055
5070
|
/* Document-class: Node::OP_ASGN_OR
|
|
@@ -5068,6 +5083,12 @@ void define_node_subclass_methods()
|
|
|
5068
5083
|
rb_iv_set(rb_cOP_ASGN_OR, "__type__", INT2NUM(NODE_OP_ASGN_OR));
|
|
5069
5084
|
rb_define_singleton_method(rb_cOP_ASGN_OR, "members", node_s_members, 0);
|
|
5070
5085
|
|
|
5086
|
+
/* Document-method: recv
|
|
5087
|
+
* the receiver of the assignment
|
|
5088
|
+
*/
|
|
5089
|
+
rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
|
|
5090
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
5091
|
+
|
|
5071
5092
|
/* Document-method: aid
|
|
5072
5093
|
* if this indicator is nonzero, ruby will check to see if the
|
|
5073
5094
|
* provided expression is defined, otherwise it will assume that
|
|
@@ -5081,12 +5102,6 @@ void define_node_subclass_methods()
|
|
|
5081
5102
|
*/
|
|
5082
5103
|
rb_define_method(rb_cOP_ASGN_OR, "value", node_value, 0);
|
|
5083
5104
|
rb_ary_push(members, rb_str_new2("value"));
|
|
5084
|
-
|
|
5085
|
-
/* Document-method: recv
|
|
5086
|
-
* the receiver of the assignment
|
|
5087
|
-
*/
|
|
5088
|
-
rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
|
|
5089
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
5090
5105
|
}
|
|
5091
5106
|
|
|
5092
5107
|
/* Document-class: Node::OR
|
|
@@ -5166,18 +5181,18 @@ void define_node_subclass_methods()
|
|
|
5166
5181
|
rb_iv_set(rb_cRESBODY, "__type__", INT2NUM(NODE_RESBODY));
|
|
5167
5182
|
rb_define_singleton_method(rb_cRESBODY, "members", node_s_members, 0);
|
|
5168
5183
|
|
|
5169
|
-
/* Document-method: head
|
|
5170
|
-
* the next rescue
|
|
5171
|
-
*/
|
|
5172
|
-
rb_define_method(rb_cRESBODY, "head", node_head, 0);
|
|
5173
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
5174
|
-
|
|
5175
5184
|
/* Document-method: args
|
|
5176
5185
|
* the expression type to match against
|
|
5177
5186
|
*/
|
|
5178
5187
|
rb_define_method(rb_cRESBODY, "args", node_args, 0);
|
|
5179
5188
|
rb_ary_push(members, rb_str_new2("args"));
|
|
5180
5189
|
|
|
5190
|
+
/* Document-method: head
|
|
5191
|
+
* the next rescue
|
|
5192
|
+
*/
|
|
5193
|
+
rb_define_method(rb_cRESBODY, "head", node_head, 0);
|
|
5194
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
5195
|
+
|
|
5181
5196
|
/* Document-method: body
|
|
5182
5197
|
* the expresion to evaluate if the exception type matches
|
|
5183
5198
|
*/
|
|
@@ -5222,6 +5237,12 @@ void define_node_subclass_methods()
|
|
|
5222
5237
|
rb_iv_set(rb_cRESCUE, "__type__", INT2NUM(NODE_RESCUE));
|
|
5223
5238
|
rb_define_singleton_method(rb_cRESCUE, "members", node_s_members, 0);
|
|
5224
5239
|
|
|
5240
|
+
/* Document-method: resq
|
|
5241
|
+
* the expression to be evaluated if an exception is raised
|
|
5242
|
+
*/
|
|
5243
|
+
rb_define_method(rb_cRESCUE, "resq", node_resq, 0);
|
|
5244
|
+
rb_ary_push(members, rb_str_new2("resq"));
|
|
5245
|
+
|
|
5225
5246
|
/* Document-method: head
|
|
5226
5247
|
* the body of the block to evaluate
|
|
5227
5248
|
*/
|
|
@@ -5233,12 +5254,6 @@ void define_node_subclass_methods()
|
|
|
5233
5254
|
*/
|
|
5234
5255
|
rb_define_method(rb_cRESCUE, "else", node_else, 0);
|
|
5235
5256
|
rb_ary_push(members, rb_str_new2("else"));
|
|
5236
|
-
|
|
5237
|
-
/* Document-method: resq
|
|
5238
|
-
* the expression to be evaluated if an exception is raised
|
|
5239
|
-
*/
|
|
5240
|
-
rb_define_method(rb_cRESCUE, "resq", node_resq, 0);
|
|
5241
|
-
rb_ary_push(members, rb_str_new2("resq"));
|
|
5242
5257
|
}
|
|
5243
5258
|
|
|
5244
5259
|
/* Document-class: Node::RETRY
|
|
@@ -5293,17 +5308,17 @@ void define_node_subclass_methods()
|
|
|
5293
5308
|
rb_iv_set(rb_cSCLASS, "__type__", INT2NUM(NODE_SCLASS));
|
|
5294
5309
|
rb_define_singleton_method(rb_cSCLASS, "members", node_s_members, 0);
|
|
5295
5310
|
|
|
5296
|
-
/* Document-method: body
|
|
5297
|
-
* the body of the class definition
|
|
5298
|
-
*/
|
|
5299
|
-
rb_define_method(rb_cSCLASS, "body", node_body, 0);
|
|
5300
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
5301
|
-
|
|
5302
5311
|
/* Document-method: recv
|
|
5303
5312
|
* the object whose singleton class is to be modified
|
|
5304
5313
|
*/
|
|
5305
5314
|
rb_define_method(rb_cSCLASS, "recv", node_recv, 0);
|
|
5306
5315
|
rb_ary_push(members, rb_str_new2("recv"));
|
|
5316
|
+
|
|
5317
|
+
/* Document-method: body
|
|
5318
|
+
* the body of the class definition
|
|
5319
|
+
*/
|
|
5320
|
+
rb_define_method(rb_cSCLASS, "body", node_body, 0);
|
|
5321
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
5307
5322
|
}
|
|
5308
5323
|
|
|
5309
5324
|
/* Document-class: Node::SCOPE
|
|
@@ -5514,12 +5529,6 @@ void define_node_subclass_methods()
|
|
|
5514
5529
|
rb_iv_set(rb_cUNTIL, "__type__", INT2NUM(NODE_UNTIL));
|
|
5515
5530
|
rb_define_singleton_method(rb_cUNTIL, "members", node_s_members, 0);
|
|
5516
5531
|
|
|
5517
|
-
/* Document-method: body
|
|
5518
|
-
* the body of the loop
|
|
5519
|
-
*/
|
|
5520
|
-
rb_define_method(rb_cUNTIL, "body", node_body, 0);
|
|
5521
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
5522
|
-
|
|
5523
5532
|
/* Document-method: cond
|
|
5524
5533
|
* a condition to terminate the loop when it becomes true
|
|
5525
5534
|
*/
|
|
@@ -5527,6 +5536,12 @@ void define_node_subclass_methods()
|
|
|
5527
5536
|
rb_ary_push(members, rb_str_new2("cond"));
|
|
5528
5537
|
rb_define_method(rb_cUNTIL, "state", node_state, 0);
|
|
5529
5538
|
rb_ary_push(members, rb_str_new2("state"));
|
|
5539
|
+
|
|
5540
|
+
/* Document-method: body
|
|
5541
|
+
* the body of the loop
|
|
5542
|
+
*/
|
|
5543
|
+
rb_define_method(rb_cUNTIL, "body", node_body, 0);
|
|
5544
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
5530
5545
|
}
|
|
5531
5546
|
|
|
5532
5547
|
/* Document-class: Node::VALIAS
|
|
@@ -5605,6 +5620,12 @@ void define_node_subclass_methods()
|
|
|
5605
5620
|
rb_iv_set(rb_cWHEN, "__type__", INT2NUM(NODE_WHEN));
|
|
5606
5621
|
rb_define_singleton_method(rb_cWHEN, "members", node_s_members, 0);
|
|
5607
5622
|
|
|
5623
|
+
/* Document-method: next
|
|
5624
|
+
* the next expression to be evaluated if the condition is false
|
|
5625
|
+
*/
|
|
5626
|
+
rb_define_method(rb_cWHEN, "next", node_next, 0);
|
|
5627
|
+
rb_ary_push(members, rb_str_new2("next"));
|
|
5628
|
+
|
|
5608
5629
|
/* Document-method: head
|
|
5609
5630
|
* a value to compare against, or a condition to be tested
|
|
5610
5631
|
*/
|
|
@@ -5616,12 +5637,6 @@ void define_node_subclass_methods()
|
|
|
5616
5637
|
*/
|
|
5617
5638
|
rb_define_method(rb_cWHEN, "body", node_body, 0);
|
|
5618
5639
|
rb_ary_push(members, rb_str_new2("body"));
|
|
5619
|
-
|
|
5620
|
-
/* Document-method: next
|
|
5621
|
-
* the next expression to be evaluated if the condition is false
|
|
5622
|
-
*/
|
|
5623
|
-
rb_define_method(rb_cWHEN, "next", node_next, 0);
|
|
5624
|
-
rb_ary_push(members, rb_str_new2("next"));
|
|
5625
5640
|
}
|
|
5626
5641
|
|
|
5627
5642
|
/* Document-class: Node::WHILE
|
|
@@ -5638,12 +5653,6 @@ void define_node_subclass_methods()
|
|
|
5638
5653
|
rb_iv_set(rb_cWHILE, "__type__", INT2NUM(NODE_WHILE));
|
|
5639
5654
|
rb_define_singleton_method(rb_cWHILE, "members", node_s_members, 0);
|
|
5640
5655
|
|
|
5641
|
-
/* Document-method: body
|
|
5642
|
-
* the body of the loop
|
|
5643
|
-
*/
|
|
5644
|
-
rb_define_method(rb_cWHILE, "body", node_body, 0);
|
|
5645
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
5646
|
-
|
|
5647
5656
|
/* Document-method: cond
|
|
5648
5657
|
* a condition to terminate the loop when it becomes false
|
|
5649
5658
|
*/
|
|
@@ -5651,6 +5660,12 @@ void define_node_subclass_methods()
|
|
|
5651
5660
|
rb_ary_push(members, rb_str_new2("cond"));
|
|
5652
5661
|
rb_define_method(rb_cWHILE, "state", node_state, 0);
|
|
5653
5662
|
rb_ary_push(members, rb_str_new2("state"));
|
|
5663
|
+
|
|
5664
|
+
/* Document-method: body
|
|
5665
|
+
* the body of the loop
|
|
5666
|
+
*/
|
|
5667
|
+
rb_define_method(rb_cWHILE, "body", node_body, 0);
|
|
5668
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
5654
5669
|
}
|
|
5655
5670
|
|
|
5656
5671
|
/* Document-class: Node::XSTR
|
|
@@ -5687,17 +5702,17 @@ void define_node_subclass_methods()
|
|
|
5687
5702
|
rb_iv_set(rb_cYIELD, "__type__", INT2NUM(NODE_YIELD));
|
|
5688
5703
|
rb_define_singleton_method(rb_cYIELD, "members", node_s_members, 0);
|
|
5689
5704
|
|
|
5690
|
-
/* Document-method: head
|
|
5691
|
-
* the value to yield
|
|
5692
|
-
*/
|
|
5693
|
-
rb_define_method(rb_cYIELD, "head", node_head, 0);
|
|
5694
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
5695
|
-
|
|
5696
5705
|
/* Document-method: state
|
|
5697
5706
|
* if nonzero, splats the value before yielding
|
|
5698
5707
|
*/
|
|
5699
5708
|
rb_define_method(rb_cYIELD, "state", node_state, 0);
|
|
5700
5709
|
rb_ary_push(members, rb_str_new2("state"));
|
|
5710
|
+
|
|
5711
|
+
/* Document-method: head
|
|
5712
|
+
* the value to yield
|
|
5713
|
+
*/
|
|
5714
|
+
rb_define_method(rb_cYIELD, "head", node_head, 0);
|
|
5715
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
5701
5716
|
}
|
|
5702
5717
|
|
|
5703
5718
|
/* Document-class: Node::ZARRAY
|