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.6/internal/method/method.h → ruby-1.8.7/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,108 @@
|
|
|
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
|
+
st_data_t data;
|
|
37
|
+
|
|
38
|
+
if (!st_lookup(rb_global_tbl, id, &data)) {
|
|
39
|
+
struct global_variable *var;
|
|
40
|
+
entry = ALLOC(struct global_entry);
|
|
41
|
+
var = ALLOC(struct global_variable);
|
|
42
|
+
entry->id = id;
|
|
43
|
+
entry->var = var;
|
|
44
|
+
var->counter = 1;
|
|
45
|
+
var->data = 0;
|
|
46
|
+
var->getter = undef_getter;
|
|
47
|
+
var->setter = undef_setter;
|
|
48
|
+
var->marker = undef_marker;
|
|
49
|
+
|
|
50
|
+
var->block_trace = 0;
|
|
51
|
+
var->trace = 0;
|
|
52
|
+
st_add_direct(rb_global_tbl, id, (st_data_t)entry);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
entry = (struct global_entry *)data;
|
|
56
|
+
}
|
|
57
|
+
return entry;
|
|
58
|
+
}
|
|
59
|
+
static VALUE
|
|
60
|
+
undef_getter(id)
|
|
61
|
+
ID id;
|
|
62
|
+
{
|
|
63
|
+
rb_warning("global variable `%s' not initialized", rb_id2name(id));
|
|
64
|
+
|
|
65
|
+
return Qnil;
|
|
66
|
+
}
|
|
67
|
+
static void
|
|
68
|
+
undef_setter(val, id, data, var)
|
|
69
|
+
VALUE val;
|
|
70
|
+
ID id;
|
|
71
|
+
void *data;
|
|
72
|
+
struct global_variable *var;
|
|
73
|
+
{
|
|
74
|
+
var->getter = val_getter;
|
|
75
|
+
var->setter = val_setter;
|
|
76
|
+
var->marker = val_marker;
|
|
77
|
+
|
|
78
|
+
var->data = (void*)val;
|
|
79
|
+
}
|
|
80
|
+
static void
|
|
81
|
+
undef_marker()
|
|
82
|
+
{
|
|
83
|
+
}
|
|
84
|
+
static VALUE
|
|
85
|
+
val_getter(id, val)
|
|
86
|
+
ID id;
|
|
87
|
+
VALUE val;
|
|
88
|
+
{
|
|
89
|
+
return val;
|
|
90
|
+
}
|
|
91
|
+
static void
|
|
92
|
+
val_setter(val, id, data, var)
|
|
93
|
+
VALUE val;
|
|
94
|
+
ID id;
|
|
95
|
+
void *data;
|
|
96
|
+
struct global_variable *var;
|
|
97
|
+
{
|
|
98
|
+
var->data = (void*)val;
|
|
99
|
+
}
|
|
100
|
+
static void
|
|
101
|
+
val_marker(data)
|
|
102
|
+
VALUE data;
|
|
103
|
+
{
|
|
104
|
+
if (data) rb_gc_mark_maybe(data);
|
|
105
|
+
}
|
|
8
106
|
|
|
9
107
|
#endif
|
|
10
108
|
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
#include "version.h"
|
|
3
3
|
|
|
4
4
|
Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
5
|
-
{ NODE_ALIAS,
|
|
5
|
+
{ NODE_ALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "ALIAS" },
|
|
6
6
|
#ifdef HAVE_NODE_ALLOCA
|
|
7
7
|
{ NODE_ALLOCA, NEN_CFNC, NEN_VALUE, NEN_CNT, "ALLOCA" },
|
|
8
8
|
#endif
|
|
9
|
-
{ NODE_AND,
|
|
10
|
-
{ NODE_ARGS,
|
|
9
|
+
{ NODE_AND, NEN_2ND, NEN_1ST, NEN_NONE, "AND" },
|
|
10
|
+
{ NODE_ARGS, NEN_OPT, NEN_REST, 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
13
|
{ NODE_ARRAY, NEN_HEAD, NEN_ALEN, NEN_NEXT, "ARRAY" },
|
|
14
|
-
{ NODE_ATTRASGN, NEN_ARGS, NEN_MID,
|
|
14
|
+
{ NODE_ATTRASGN, NEN_RECV, NEN_ARGS, NEN_MID, "ATTRASGN" },
|
|
15
15
|
{ NODE_ATTRSET, NEN_VID, NEN_NONE, NEN_NONE, "ATTRSET" },
|
|
16
16
|
{ NODE_BACK_REF, NEN_NTH, NEN_CNT, NEN_NONE, "BACK_REF" },
|
|
17
17
|
{ NODE_BEGIN, NEN_BODY, NEN_NONE, NEN_NONE, "BEGIN" },
|
|
@@ -20,78 +20,78 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
|
20
20
|
{ NODE_BLOCK_PASS, NEN_BODY, NEN_ITER, NEN_NONE, "BLOCK_PASS" },
|
|
21
21
|
{ NODE_BMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "BMETHOD" },
|
|
22
22
|
{ NODE_BREAK, NEN_STTS, NEN_NONE, NEN_NONE, "BREAK" },
|
|
23
|
-
{ NODE_CALL, NEN_ARGS, NEN_MID,
|
|
23
|
+
{ NODE_CALL, NEN_RECV, NEN_ARGS, NEN_MID, "CALL" },
|
|
24
24
|
{ NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
|
|
25
|
-
{ NODE_CDECL,
|
|
25
|
+
{ NODE_CDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CDECL" },
|
|
26
26
|
{ NODE_CFUNC, NEN_CFNC, NEN_ARGC, NEN_NONE, "CFUNC" },
|
|
27
|
-
{ NODE_CLASS,
|
|
27
|
+
{ NODE_CLASS, NEN_BODY, NEN_CPATH, NEN_SUPER, "CLASS" },
|
|
28
28
|
{ NODE_COLON2, NEN_HEAD, NEN_MID, NEN_NONE, "COLON2" },
|
|
29
29
|
{ NODE_COLON3, NEN_MID, NEN_NONE, NEN_NONE, "COLON3" },
|
|
30
30
|
{ NODE_CONST, NEN_VID, NEN_NONE, NEN_NONE, "CONST" },
|
|
31
|
-
{ NODE_CREF, NEN_BODY,
|
|
31
|
+
{ NODE_CREF, NEN_BODY, NEN_CLSS, NEN_NEXT, "CREF" },
|
|
32
32
|
{ NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
|
|
33
|
-
{ NODE_CVASGN,
|
|
34
|
-
{ NODE_CVDECL,
|
|
35
|
-
{ NODE_DASGN,
|
|
36
|
-
{ NODE_DASGN_CURR,
|
|
33
|
+
{ NODE_CVASGN, NEN_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
|
-
{ NODE_DEFN, NEN_DEFN,
|
|
39
|
-
{ NODE_DEFS, NEN_DEFN,
|
|
38
|
+
{ NODE_DEFN, NEN_DEFN, NEN_NOEX, NEN_MID, "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, NEN_BEG, NEN_END,
|
|
42
|
-
{ NODE_DOT3, NEN_BEG, NEN_END,
|
|
43
|
-
{ NODE_DREGX,
|
|
44
|
-
{ NODE_DREGX_ONCE,
|
|
45
|
-
{ NODE_DSTR,
|
|
46
|
-
{ NODE_DSYM,
|
|
41
|
+
{ NODE_DOT2, NEN_STATE, NEN_BEG, NEN_END, "DOT2" },
|
|
42
|
+
{ NODE_DOT3, NEN_STATE, NEN_BEG, NEN_END, "DOT3" },
|
|
43
|
+
{ NODE_DREGX, NEN_CFLAG, NEN_NEXT, NEN_LIT, "DREGX" },
|
|
44
|
+
{ NODE_DREGX_ONCE, NEN_CFLAG, NEN_NEXT, NEN_LIT, "DREGX_ONCE" },
|
|
45
|
+
{ NODE_DSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DSTR" },
|
|
46
|
+
{ NODE_DSYM, NEN_NEXT, NEN_LIT, NEN_NONE, "DSYM" },
|
|
47
47
|
{ NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
|
|
48
|
-
{ NODE_DXSTR,
|
|
48
|
+
{ NODE_DXSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DXSTR" },
|
|
49
49
|
{ NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
|
|
50
50
|
{ NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
|
|
51
51
|
{ NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
|
|
52
52
|
{ NODE_FBODY, NEN_HEAD, NEN_ORIG, NEN_MID, "FBODY" },
|
|
53
53
|
{ NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
|
|
54
|
-
{ NODE_FLIP2, NEN_BEG,
|
|
55
|
-
{ NODE_FLIP3, NEN_BEG,
|
|
54
|
+
{ NODE_FLIP2, NEN_BEG, NEN_CNT, NEN_END, "FLIP2" },
|
|
55
|
+
{ NODE_FLIP3, NEN_BEG, NEN_CNT, NEN_END, "FLIP3" },
|
|
56
56
|
{ NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
|
|
57
|
-
{ NODE_GASGN,
|
|
57
|
+
{ NODE_GASGN, NEN_VID, NEN_VALUE, NEN_ENTRY, "GASGN" },
|
|
58
58
|
{ NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
|
|
59
59
|
{ NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
|
|
60
|
-
{ NODE_IASGN,
|
|
61
|
-
{ NODE_IF,
|
|
62
|
-
{ NODE_IFUNC, NEN_CFNC,
|
|
60
|
+
{ NODE_IASGN, NEN_VID, NEN_VALUE, NEN_NONE, "IASGN" },
|
|
61
|
+
{ NODE_IF, NEN_ELSE, NEN_BODY, NEN_COND, "IF" },
|
|
62
|
+
{ NODE_IFUNC, NEN_CFNC, NEN_STATE, NEN_TVAL, "IFUNC" },
|
|
63
63
|
{ NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
|
|
64
64
|
{ NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
|
|
65
|
-
{ NODE_LASGN,
|
|
65
|
+
{ NODE_LASGN, NEN_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,
|
|
69
|
-
{ NODE_MATCH,
|
|
70
|
-
{ NODE_MATCH2,
|
|
71
|
-
{ NODE_MATCH3,
|
|
68
|
+
{ NODE_MASGN, NEN_HEAD, NEN_VALUE, NEN_ARGS, "MASGN" },
|
|
69
|
+
{ NODE_MATCH, NEN_VALUE, NEN_LIT, NEN_NONE, "MATCH" },
|
|
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
73
|
{ NODE_METHOD, NEN_BODY, NEN_NOEX, NEN_NONE, "METHOD" },
|
|
74
|
-
{ NODE_MODULE,
|
|
74
|
+
{ NODE_MODULE, NEN_BODY, NEN_CPATH, NEN_NONE, "MODULE" },
|
|
75
75
|
{ NODE_NEWLINE, NEN_NEXT, NEN_NONE, NEN_NONE, "NEWLINE" },
|
|
76
76
|
{ NODE_NEXT, NEN_STTS, NEN_NONE, NEN_NONE, "NEXT" },
|
|
77
77
|
{ NODE_NIL, NEN_NONE, NEN_NONE, NEN_NONE, "NIL" },
|
|
78
78
|
{ NODE_NOT, NEN_BODY, NEN_NONE, NEN_NONE, "NOT" },
|
|
79
79
|
{ NODE_NTH_REF, NEN_NTH, NEN_CNT, NEN_NONE, "NTH_REF" },
|
|
80
80
|
{ NODE_OPT_N, NEN_BODY, NEN_NONE, NEN_NONE, "OPT_N" },
|
|
81
|
-
{ NODE_OP_ASGN1, NEN_ARGS, NEN_MID,
|
|
82
|
-
{ NODE_OP_ASGN2, NEN_VALUE, NEN_NEXT,
|
|
81
|
+
{ NODE_OP_ASGN1, NEN_RECV, NEN_ARGS, NEN_MID, "OP_ASGN1" },
|
|
82
|
+
{ NODE_OP_ASGN2, NEN_RECV, NEN_VALUE, NEN_NEXT, "OP_ASGN2" },
|
|
83
83
|
{ NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID, NEN_MID, "OP_ASGN2_ARG" },
|
|
84
|
-
{ NODE_OP_ASGN_AND,
|
|
85
|
-
{ NODE_OP_ASGN_OR,
|
|
86
|
-
{ NODE_OR,
|
|
84
|
+
{ NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
|
|
85
|
+
{ NODE_OP_ASGN_OR, NEN_RECV, NEN_VALUE, NEN_AID, "OP_ASGN_OR" },
|
|
86
|
+
{ NODE_OR, NEN_2ND, NEN_1ST, NEN_NONE, "OR" },
|
|
87
87
|
{ NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
|
|
88
88
|
{ NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
|
|
89
|
-
{ NODE_RESBODY, NEN_HEAD,
|
|
90
|
-
{ NODE_RESCUE,
|
|
89
|
+
{ NODE_RESBODY, NEN_HEAD, NEN_BODY, NEN_ARGS, "RESBODY" },
|
|
90
|
+
{ NODE_RESCUE, NEN_ELSE, NEN_HEAD, NEN_RESQ, "RESCUE" },
|
|
91
91
|
{ NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
|
|
92
92
|
{ NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
|
|
93
93
|
{ NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
|
|
94
|
-
{ NODE_SCOPE,
|
|
94
|
+
{ NODE_SCOPE, NEN_RVAL, NEN_TBL, NEN_NEXT, "SCOPE" },
|
|
95
95
|
{ NODE_SELF, NEN_NONE, NEN_NONE, NEN_NONE, "SELF" },
|
|
96
96
|
{ NODE_SPLAT, NEN_HEAD, NEN_NONE, NEN_NONE, "SPLAT" },
|
|
97
97
|
{ NODE_STR, NEN_LIT, NEN_NONE, NEN_NONE, "STR" },
|
|
@@ -101,7 +101,7 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
|
|
|
101
101
|
{ NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
|
|
102
102
|
{ NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
|
|
103
103
|
{ NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
|
|
104
|
-
{ NODE_VALIAS,
|
|
104
|
+
{ NODE_VALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "VALIAS" },
|
|
105
105
|
{ NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
|
|
106
106
|
{ NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
|
|
107
107
|
{ NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
|
|
@@ -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) =
|
|
@@ -2910,10 +2925,10 @@ void define_node_subclass_methods()
|
|
|
2910
2925
|
rb_iv_set(rb_cALIAS, "__member__", members);
|
|
2911
2926
|
rb_iv_set(rb_cALIAS, "__type__", INT2NUM(NODE_ALIAS));
|
|
2912
2927
|
rb_define_singleton_method(rb_cALIAS, "members", node_s_members, 0);
|
|
2913
|
-
rb_define_method(rb_cALIAS, "first", node_1st, 0);
|
|
2914
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
2915
2928
|
rb_define_method(rb_cALIAS, "second", node_2nd, 0);
|
|
2916
2929
|
rb_ary_push(members, rb_str_new2("second"));
|
|
2930
|
+
rb_define_method(rb_cALIAS, "first", node_1st, 0);
|
|
2931
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
2917
2932
|
}
|
|
2918
2933
|
|
|
2919
2934
|
/* Document-class: Node::ALLOCA
|
|
@@ -2966,17 +2981,17 @@ void define_node_subclass_methods()
|
|
|
2966
2981
|
rb_iv_set(rb_cAND, "__type__", INT2NUM(NODE_AND));
|
|
2967
2982
|
rb_define_singleton_method(rb_cAND, "members", node_s_members, 0);
|
|
2968
2983
|
|
|
2969
|
-
/* Document-method: first
|
|
2970
|
-
* the expression on the left hand side
|
|
2971
|
-
*/
|
|
2972
|
-
rb_define_method(rb_cAND, "first", node_1st, 0);
|
|
2973
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
2974
|
-
|
|
2975
2984
|
/* Document-method: second
|
|
2976
2985
|
* the expression on the right hand side
|
|
2977
2986
|
*/
|
|
2978
2987
|
rb_define_method(rb_cAND, "second", node_2nd, 0);
|
|
2979
2988
|
rb_ary_push(members, rb_str_new2("second"));
|
|
2989
|
+
|
|
2990
|
+
/* Document-method: first
|
|
2991
|
+
* the expression on the left hand side
|
|
2992
|
+
*/
|
|
2993
|
+
rb_define_method(rb_cAND, "first", node_1st, 0);
|
|
2994
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
2980
2995
|
}
|
|
2981
2996
|
|
|
2982
2997
|
/* Document-class: Node::ARGS
|
|
@@ -2990,12 +3005,6 @@ void define_node_subclass_methods()
|
|
|
2990
3005
|
rb_iv_set(rb_cARGS, "__type__", INT2NUM(NODE_ARGS));
|
|
2991
3006
|
rb_define_singleton_method(rb_cARGS, "members", node_s_members, 0);
|
|
2992
3007
|
|
|
2993
|
-
/* Document-method: rest
|
|
2994
|
-
* an assignment node to assign the rest arg, if it is present
|
|
2995
|
-
*/
|
|
2996
|
-
rb_define_method(rb_cARGS, "rest", node_rest, 0);
|
|
2997
|
-
rb_ary_push(members, rb_str_new2("rest"));
|
|
2998
|
-
|
|
2999
3008
|
/* Document-method: opt
|
|
3000
3009
|
* a list of assignment nodes to assign default values to the
|
|
3001
3010
|
* optional arguments if no argument is specified
|
|
@@ -3003,6 +3012,12 @@ void define_node_subclass_methods()
|
|
|
3003
3012
|
rb_define_method(rb_cARGS, "opt", node_opt, 0);
|
|
3004
3013
|
rb_ary_push(members, rb_str_new2("opt"));
|
|
3005
3014
|
|
|
3015
|
+
/* Document-method: rest
|
|
3016
|
+
* an assignment node to assign the rest arg, if it is present
|
|
3017
|
+
*/
|
|
3018
|
+
rb_define_method(rb_cARGS, "rest", node_rest, 0);
|
|
3019
|
+
rb_ary_push(members, rb_str_new2("rest"));
|
|
3020
|
+
|
|
3006
3021
|
/* Document-method: cnt
|
|
3007
3022
|
* the number of required arguments
|
|
3008
3023
|
*/
|
|
@@ -3103,6 +3118,12 @@ 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
|
|
|
3121
|
+
/* Document-method: recv
|
|
3122
|
+
* the receiver of the method
|
|
3123
|
+
*/
|
|
3124
|
+
rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
|
|
3125
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
3126
|
+
|
|
3106
3127
|
/* Document-method: args
|
|
3107
3128
|
* the arguments to the method
|
|
3108
3129
|
*/
|
|
@@ -3114,12 +3135,6 @@ void define_node_subclass_methods()
|
|
|
3114
3135
|
*/
|
|
3115
3136
|
rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
|
|
3116
3137
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3117
|
-
|
|
3118
|
-
/* Document-method: recv
|
|
3119
|
-
* the receiver of the method
|
|
3120
|
-
*/
|
|
3121
|
-
rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
|
|
3122
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
3123
3138
|
}
|
|
3124
3139
|
|
|
3125
3140
|
/* Document-class: Node::ATTRSET
|
|
@@ -3325,6 +3340,12 @@ 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
|
|
|
3343
|
+
/* Document-method: recv
|
|
3344
|
+
* the receiver of the method
|
|
3345
|
+
*/
|
|
3346
|
+
rb_define_method(rb_cCALL, "recv", node_recv, 0);
|
|
3347
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
3348
|
+
|
|
3328
3349
|
/* Document-method: args
|
|
3329
3350
|
* the arguments to the method
|
|
3330
3351
|
*/
|
|
@@ -3336,12 +3357,6 @@ void define_node_subclass_methods()
|
|
|
3336
3357
|
*/
|
|
3337
3358
|
rb_define_method(rb_cCALL, "mid", node_mid, 0);
|
|
3338
3359
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3339
|
-
|
|
3340
|
-
/* Document-method: recv
|
|
3341
|
-
* the receiver of the method
|
|
3342
|
-
*/
|
|
3343
|
-
rb_define_method(rb_cCALL, "recv", node_recv, 0);
|
|
3344
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
3345
3360
|
}
|
|
3346
3361
|
|
|
3347
3362
|
/* Document-class: Node::CASE
|
|
@@ -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
|
|
@@ -3440,18 +3455,18 @@ void define_node_subclass_methods()
|
|
|
3440
3455
|
rb_iv_set(rb_cCLASS, "__type__", INT2NUM(NODE_CLASS));
|
|
3441
3456
|
rb_define_singleton_method(rb_cCLASS, "members", node_s_members, 0);
|
|
3442
3457
|
|
|
3443
|
-
/* Document-method: cpath
|
|
3444
|
-
* the name of the class to define
|
|
3445
|
-
*/
|
|
3446
|
-
rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
|
|
3447
|
-
rb_ary_push(members, rb_str_new2("cpath"));
|
|
3448
|
-
|
|
3449
3458
|
/* Document-method: body
|
|
3450
3459
|
* the body of the class definition
|
|
3451
3460
|
*/
|
|
3452
3461
|
rb_define_method(rb_cCLASS, "body", node_body, 0);
|
|
3453
3462
|
rb_ary_push(members, rb_str_new2("body"));
|
|
3454
3463
|
|
|
3464
|
+
/* Document-method: cpath
|
|
3465
|
+
* the name of the class to define
|
|
3466
|
+
*/
|
|
3467
|
+
rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
|
|
3468
|
+
rb_ary_push(members, rb_str_new2("cpath"));
|
|
3469
|
+
|
|
3455
3470
|
/* Document-method: super
|
|
3456
3471
|
* an expression returning the base class, or false if there is no
|
|
3457
3472
|
* base class specified
|
|
@@ -3551,17 +3566,17 @@ void define_node_subclass_methods()
|
|
|
3551
3566
|
rb_define_method(rb_cCREF, "body", node_body, 0);
|
|
3552
3567
|
rb_ary_push(members, rb_str_new2("body"));
|
|
3553
3568
|
|
|
3554
|
-
/* Document-method: next
|
|
3555
|
-
* the previous value of ruby_cref or ruby_top_cref
|
|
3556
|
-
*/
|
|
3557
|
-
rb_define_method(rb_cCREF, "next", node_next, 0);
|
|
3558
|
-
rb_ary_push(members, rb_str_new2("next"));
|
|
3559
|
-
|
|
3560
3569
|
/* Document-method: clss
|
|
3561
3570
|
* the new class to use for the cbase.
|
|
3562
3571
|
*/
|
|
3563
3572
|
rb_define_method(rb_cCREF, "clss", node_clss, 0);
|
|
3564
3573
|
rb_ary_push(members, rb_str_new2("clss"));
|
|
3574
|
+
|
|
3575
|
+
/* Document-method: next
|
|
3576
|
+
* the previous value of ruby_cref or ruby_top_cref
|
|
3577
|
+
*/
|
|
3578
|
+
rb_define_method(rb_cCREF, "next", node_next, 0);
|
|
3579
|
+
rb_ary_push(members, rb_str_new2("next"));
|
|
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
|
|
@@ -3732,17 +3747,17 @@ void define_node_subclass_methods()
|
|
|
3732
3747
|
rb_define_method(rb_cDEFN, "defn", node_defn, 0);
|
|
3733
3748
|
rb_ary_push(members, rb_str_new2("defn"));
|
|
3734
3749
|
|
|
3735
|
-
/* Document-method: mid
|
|
3736
|
-
* the name of the method* defn the body of the method
|
|
3737
|
-
*/
|
|
3738
|
-
rb_define_method(rb_cDEFN, "mid", node_mid, 0);
|
|
3739
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
|
3740
|
-
|
|
3741
3750
|
/* Document-method: noex
|
|
3742
3751
|
* the flags which should be used to define the method
|
|
3743
3752
|
*/
|
|
3744
3753
|
rb_define_method(rb_cDEFN, "noex", node_noex, 0);
|
|
3745
3754
|
rb_ary_push(members, rb_str_new2("noex"));
|
|
3755
|
+
|
|
3756
|
+
/* Document-method: mid
|
|
3757
|
+
* the name of the method* defn the body of the method
|
|
3758
|
+
*/
|
|
3759
|
+
rb_define_method(rb_cDEFN, "mid", node_mid, 0);
|
|
3760
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
|
3746
3761
|
}
|
|
3747
3762
|
|
|
3748
3763
|
/* Document-class: Node::DEFS
|
|
@@ -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
|
|
@@ -3809,6 +3824,8 @@ void define_node_subclass_methods()
|
|
|
3809
3824
|
rb_iv_set(rb_cDOT2, "__member__", members);
|
|
3810
3825
|
rb_iv_set(rb_cDOT2, "__type__", INT2NUM(NODE_DOT2));
|
|
3811
3826
|
rb_define_singleton_method(rb_cDOT2, "members", node_s_members, 0);
|
|
3827
|
+
rb_define_method(rb_cDOT2, "state", node_state, 0);
|
|
3828
|
+
rb_ary_push(members, rb_str_new2("state"));
|
|
3812
3829
|
|
|
3813
3830
|
/* Document-method: beg
|
|
3814
3831
|
* the beginning of the range
|
|
@@ -3821,8 +3838,6 @@ void define_node_subclass_methods()
|
|
|
3821
3838
|
*/
|
|
3822
3839
|
rb_define_method(rb_cDOT2, "end", node_end, 0);
|
|
3823
3840
|
rb_ary_push(members, rb_str_new2("end"));
|
|
3824
|
-
rb_define_method(rb_cDOT2, "state", node_state, 0);
|
|
3825
|
-
rb_ary_push(members, rb_str_new2("state"));
|
|
3826
3841
|
}
|
|
3827
3842
|
|
|
3828
3843
|
/* Document-class: Node::DOT3
|
|
@@ -3837,6 +3852,8 @@ void define_node_subclass_methods()
|
|
|
3837
3852
|
rb_iv_set(rb_cDOT3, "__member__", members);
|
|
3838
3853
|
rb_iv_set(rb_cDOT3, "__type__", INT2NUM(NODE_DOT3));
|
|
3839
3854
|
rb_define_singleton_method(rb_cDOT3, "members", node_s_members, 0);
|
|
3855
|
+
rb_define_method(rb_cDOT3, "state", node_state, 0);
|
|
3856
|
+
rb_ary_push(members, rb_str_new2("state"));
|
|
3840
3857
|
|
|
3841
3858
|
/* Document-method: beg
|
|
3842
3859
|
* the beginning of the range
|
|
@@ -3849,8 +3866,6 @@ void define_node_subclass_methods()
|
|
|
3849
3866
|
*/
|
|
3850
3867
|
rb_define_method(rb_cDOT3, "end", node_end, 0);
|
|
3851
3868
|
rb_ary_push(members, rb_str_new2("end"));
|
|
3852
|
-
rb_define_method(rb_cDOT3, "state", node_state, 0);
|
|
3853
|
-
rb_ary_push(members, rb_str_new2("state"));
|
|
3854
3869
|
}
|
|
3855
3870
|
|
|
3856
3871
|
/* Document-class: Node::DREGX
|
|
@@ -3869,12 +3884,6 @@ void define_node_subclass_methods()
|
|
|
3869
3884
|
rb_iv_set(rb_cDREGX, "__type__", INT2NUM(NODE_DREGX));
|
|
3870
3885
|
rb_define_singleton_method(rb_cDREGX, "members", node_s_members, 0);
|
|
3871
3886
|
|
|
3872
|
-
/* Document-method: lit
|
|
3873
|
-
* a string
|
|
3874
|
-
*/
|
|
3875
|
-
rb_define_method(rb_cDREGX, "lit", node_lit, 0);
|
|
3876
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
3877
|
-
|
|
3878
3887
|
/* Document-method: cflag
|
|
3879
3888
|
* a bitfield containing the options used in the regular
|
|
3880
3889
|
* expression. Valid values include:
|
|
@@ -3897,6 +3906,12 @@ void define_node_subclass_methods()
|
|
|
3897
3906
|
*/
|
|
3898
3907
|
rb_define_method(rb_cDREGX, "next", node_next, 0);
|
|
3899
3908
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3909
|
+
|
|
3910
|
+
/* Document-method: lit
|
|
3911
|
+
* a string
|
|
3912
|
+
*/
|
|
3913
|
+
rb_define_method(rb_cDREGX, "lit", node_lit, 0);
|
|
3914
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
3900
3915
|
}
|
|
3901
3916
|
|
|
3902
3917
|
/* Document-class: Node::DREGX_ONCE
|
|
@@ -3912,12 +3927,6 @@ void define_node_subclass_methods()
|
|
|
3912
3927
|
rb_iv_set(rb_cDREGX_ONCE, "__type__", INT2NUM(NODE_DREGX_ONCE));
|
|
3913
3928
|
rb_define_singleton_method(rb_cDREGX_ONCE, "members", node_s_members, 0);
|
|
3914
3929
|
|
|
3915
|
-
/* Document-method: lit
|
|
3916
|
-
* a string
|
|
3917
|
-
*/
|
|
3918
|
-
rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
|
|
3919
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
3920
|
-
|
|
3921
3930
|
/* Document-method: cflag
|
|
3922
3931
|
* a bitfield containing the options used in the regular
|
|
3923
3932
|
* expression. See DREGX for a list of valid values.
|
|
@@ -3930,6 +3939,12 @@ void define_node_subclass_methods()
|
|
|
3930
3939
|
*/
|
|
3931
3940
|
rb_define_method(rb_cDREGX_ONCE, "next", node_next, 0);
|
|
3932
3941
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3942
|
+
|
|
3943
|
+
/* Document-method: lit
|
|
3944
|
+
* a string
|
|
3945
|
+
*/
|
|
3946
|
+
rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
|
|
3947
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
3933
3948
|
}
|
|
3934
3949
|
|
|
3935
3950
|
/* Document-class: Node::DSTR
|
|
@@ -3948,17 +3963,17 @@ void define_node_subclass_methods()
|
|
|
3948
3963
|
rb_iv_set(rb_cDSTR, "__type__", INT2NUM(NODE_DSTR));
|
|
3949
3964
|
rb_define_singleton_method(rb_cDSTR, "members", node_s_members, 0);
|
|
3950
3965
|
|
|
3951
|
-
/* Document-method: lit
|
|
3952
|
-
* a string
|
|
3953
|
-
*/
|
|
3954
|
-
rb_define_method(rb_cDSTR, "lit", node_lit, 0);
|
|
3955
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
3956
|
-
|
|
3957
3966
|
/* Document-method: next
|
|
3958
3967
|
* a list of expressions to be appended onto the string
|
|
3959
3968
|
*/
|
|
3960
3969
|
rb_define_method(rb_cDSTR, "next", node_next, 0);
|
|
3961
3970
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3971
|
+
|
|
3972
|
+
/* Document-method: lit
|
|
3973
|
+
* a string
|
|
3974
|
+
*/
|
|
3975
|
+
rb_define_method(rb_cDSTR, "lit", node_lit, 0);
|
|
3976
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
3962
3977
|
}
|
|
3963
3978
|
|
|
3964
3979
|
/* Document-class: Node::DSYM
|
|
@@ -3979,10 +3994,10 @@ void define_node_subclass_methods()
|
|
|
3979
3994
|
rb_iv_set(rb_cDSYM, "__member__", members);
|
|
3980
3995
|
rb_iv_set(rb_cDSYM, "__type__", INT2NUM(NODE_DSYM));
|
|
3981
3996
|
rb_define_singleton_method(rb_cDSYM, "members", node_s_members, 0);
|
|
3982
|
-
rb_define_method(rb_cDSYM, "lit", node_lit, 0);
|
|
3983
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
3984
3997
|
rb_define_method(rb_cDSYM, "next", node_next, 0);
|
|
3985
3998
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3999
|
+
rb_define_method(rb_cDSYM, "lit", node_lit, 0);
|
|
4000
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
3986
4001
|
}
|
|
3987
4002
|
|
|
3988
4003
|
/* Document-class: Node::DVAR
|
|
@@ -4025,17 +4040,17 @@ void define_node_subclass_methods()
|
|
|
4025
4040
|
rb_iv_set(rb_cDXSTR, "__type__", INT2NUM(NODE_DXSTR));
|
|
4026
4041
|
rb_define_singleton_method(rb_cDXSTR, "members", node_s_members, 0);
|
|
4027
4042
|
|
|
4028
|
-
/* Document-method: lit
|
|
4029
|
-
* a string
|
|
4030
|
-
*/
|
|
4031
|
-
rb_define_method(rb_cDXSTR, "lit", node_lit, 0);
|
|
4032
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
4033
|
-
|
|
4034
4043
|
/* Document-method: next
|
|
4035
4044
|
* a list of expressions to be appended onto the string
|
|
4036
4045
|
*/
|
|
4037
4046
|
rb_define_method(rb_cDXSTR, "next", node_next, 0);
|
|
4038
4047
|
rb_ary_push(members, rb_str_new2("next"));
|
|
4048
|
+
|
|
4049
|
+
/* Document-method: lit
|
|
4050
|
+
* a string
|
|
4051
|
+
*/
|
|
4052
|
+
rb_define_method(rb_cDXSTR, "lit", node_lit, 0);
|
|
4053
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
4039
4054
|
}
|
|
4040
4055
|
|
|
4041
4056
|
/* Document-class: Node::ENSURE
|
|
@@ -4186,18 +4201,18 @@ void define_node_subclass_methods()
|
|
|
4186
4201
|
rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
|
|
4187
4202
|
rb_ary_push(members, rb_str_new2("beg"));
|
|
4188
4203
|
|
|
4189
|
-
/* Document-method: end
|
|
4190
|
-
* the end of the range
|
|
4191
|
-
*/
|
|
4192
|
-
rb_define_method(rb_cFLIP2, "end", node_end, 0);
|
|
4193
|
-
rb_ary_push(members, rb_str_new2("end"));
|
|
4194
|
-
|
|
4195
4204
|
/* Document-method: cnt
|
|
4196
4205
|
* the index into the local variable table of the special variable
|
|
4197
4206
|
* to use in the flip-flop expression (usually 2 for $_)
|
|
4198
4207
|
*/
|
|
4199
4208
|
rb_define_method(rb_cFLIP2, "cnt", node_cnt, 0);
|
|
4200
4209
|
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4210
|
+
|
|
4211
|
+
/* Document-method: end
|
|
4212
|
+
* the end of the range
|
|
4213
|
+
*/
|
|
4214
|
+
rb_define_method(rb_cFLIP2, "end", node_end, 0);
|
|
4215
|
+
rb_ary_push(members, rb_str_new2("end"));
|
|
4201
4216
|
}
|
|
4202
4217
|
|
|
4203
4218
|
/* Document-class: Node::FLIP3
|
|
@@ -4220,18 +4235,18 @@ void define_node_subclass_methods()
|
|
|
4220
4235
|
rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
|
|
4221
4236
|
rb_ary_push(members, rb_str_new2("beg"));
|
|
4222
4237
|
|
|
4223
|
-
/* Document-method: end
|
|
4224
|
-
* the end of the range
|
|
4225
|
-
*/
|
|
4226
|
-
rb_define_method(rb_cFLIP3, "end", node_end, 0);
|
|
4227
|
-
rb_ary_push(members, rb_str_new2("end"));
|
|
4228
|
-
|
|
4229
4238
|
/* Document-method: cnt
|
|
4230
4239
|
* the index into the local variable table of the special variable
|
|
4231
4240
|
* to use in the flip-flop expression (usually 2 for $_)
|
|
4232
4241
|
*/
|
|
4233
4242
|
rb_define_method(rb_cFLIP3, "cnt", node_cnt, 0);
|
|
4234
4243
|
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4244
|
+
|
|
4245
|
+
/* Document-method: end
|
|
4246
|
+
* the end of the range
|
|
4247
|
+
*/
|
|
4248
|
+
rb_define_method(rb_cFLIP3, "end", node_end, 0);
|
|
4249
|
+
rb_ary_push(members, rb_str_new2("end"));
|
|
4235
4250
|
}
|
|
4236
4251
|
|
|
4237
4252
|
/* Document-class: Node::FOR
|
|
@@ -4288,17 +4303,17 @@ 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
|
*/
|
|
4300
4309
|
rb_define_method(rb_cGASGN, "vid", node_vid, 0);
|
|
4301
4310
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4311
|
+
|
|
4312
|
+
/* Document-method: value
|
|
4313
|
+
* an expression whose result is the new value of the global variable
|
|
4314
|
+
*/
|
|
4315
|
+
rb_define_method(rb_cGASGN, "value", node_value, 0);
|
|
4316
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4302
4317
|
rb_define_method(rb_cGASGN, "entry", node_entry, 0);
|
|
4303
4318
|
rb_ary_push(members, rb_str_new2("entry"));
|
|
4304
4319
|
}
|
|
@@ -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
|
|
@@ -4395,11 +4410,12 @@ void define_node_subclass_methods()
|
|
|
4395
4410
|
rb_iv_set(rb_cIF, "__type__", INT2NUM(NODE_IF));
|
|
4396
4411
|
rb_define_singleton_method(rb_cIF, "members", node_s_members, 0);
|
|
4397
4412
|
|
|
4398
|
-
/* Document-method:
|
|
4399
|
-
* the
|
|
4413
|
+
/* Document-method: else
|
|
4414
|
+
* the expression to evaluate if the expression is false, or false
|
|
4415
|
+
* if the expression is empty
|
|
4400
4416
|
*/
|
|
4401
|
-
rb_define_method(rb_cIF, "
|
|
4402
|
-
rb_ary_push(members, rb_str_new2("
|
|
4417
|
+
rb_define_method(rb_cIF, "else", node_else, 0);
|
|
4418
|
+
rb_ary_push(members, rb_str_new2("else"));
|
|
4403
4419
|
|
|
4404
4420
|
/* Document-method: body
|
|
4405
4421
|
* the expression to evaluate if the expression is true, or false
|
|
@@ -4408,12 +4424,11 @@ void define_node_subclass_methods()
|
|
|
4408
4424
|
rb_define_method(rb_cIF, "body", node_body, 0);
|
|
4409
4425
|
rb_ary_push(members, rb_str_new2("body"));
|
|
4410
4426
|
|
|
4411
|
-
/* Document-method:
|
|
4412
|
-
* the
|
|
4413
|
-
* if the expression is empty
|
|
4427
|
+
/* Document-method: cond
|
|
4428
|
+
* the condition to evaluate
|
|
4414
4429
|
*/
|
|
4415
|
-
rb_define_method(rb_cIF, "
|
|
4416
|
-
rb_ary_push(members, rb_str_new2("
|
|
4430
|
+
rb_define_method(rb_cIF, "cond", node_cond, 0);
|
|
4431
|
+
rb_ary_push(members, rb_str_new2("cond"));
|
|
4417
4432
|
}
|
|
4418
4433
|
|
|
4419
4434
|
/* Document-class: Node::IFUNC
|
|
@@ -4433,18 +4448,18 @@ void define_node_subclass_methods()
|
|
|
4433
4448
|
rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
|
|
4434
4449
|
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
4435
4450
|
|
|
4451
|
+
/* Document-method: state
|
|
4452
|
+
* always 0
|
|
4453
|
+
*/
|
|
4454
|
+
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
|
4455
|
+
rb_ary_push(members, rb_str_new2("state"));
|
|
4456
|
+
|
|
4436
4457
|
/* Document-method: tval
|
|
4437
4458
|
* the user-specified data to be passed as the second argument to
|
|
4438
4459
|
* cfnc
|
|
4439
4460
|
*/
|
|
4440
4461
|
rb_define_method(rb_cIFUNC, "tval", node_tval, 0);
|
|
4441
4462
|
rb_ary_push(members, rb_str_new2("tval"));
|
|
4442
|
-
|
|
4443
|
-
/* Document-method: state
|
|
4444
|
-
* always 0
|
|
4445
|
-
*/
|
|
4446
|
-
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
|
4447
|
-
rb_ary_push(members, rb_str_new2("state"));
|
|
4448
4463
|
}
|
|
4449
4464
|
|
|
4450
4465
|
/* Document-class: Node::ITER
|
|
@@ -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
|
}
|
|
@@ -4587,12 +4602,6 @@ void define_node_subclass_methods()
|
|
|
4587
4602
|
rb_iv_set(rb_cMASGN, "__type__", INT2NUM(NODE_MASGN));
|
|
4588
4603
|
rb_define_singleton_method(rb_cMASGN, "members", node_s_members, 0);
|
|
4589
4604
|
|
|
4590
|
-
/* Document-method: args
|
|
4591
|
-
* TODO
|
|
4592
|
-
*/
|
|
4593
|
-
rb_define_method(rb_cMASGN, "args", node_args, 0);
|
|
4594
|
-
rb_ary_push(members, rb_str_new2("args"));
|
|
4595
|
-
|
|
4596
4605
|
/* Document-method: head
|
|
4597
4606
|
* TODO
|
|
4598
4607
|
*/
|
|
@@ -4604,6 +4613,12 @@ void define_node_subclass_methods()
|
|
|
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: args
|
|
4618
|
+
* TODO
|
|
4619
|
+
*/
|
|
4620
|
+
rb_define_method(rb_cMASGN, "args", node_args, 0);
|
|
4621
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
4607
4622
|
}
|
|
4608
4623
|
|
|
4609
4624
|
/* Document-class: Node::MATCH
|
|
@@ -4628,17 +4643,17 @@ void define_node_subclass_methods()
|
|
|
4628
4643
|
rb_iv_set(rb_cMATCH, "__type__", INT2NUM(NODE_MATCH));
|
|
4629
4644
|
rb_define_singleton_method(rb_cMATCH, "members", node_s_members, 0);
|
|
4630
4645
|
|
|
4631
|
-
/* Document-method: lit
|
|
4632
|
-
* the regular expression to use in the condition.
|
|
4633
|
-
*/
|
|
4634
|
-
rb_define_method(rb_cMATCH, "lit", node_lit, 0);
|
|
4635
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
4636
|
-
|
|
4637
4646
|
/* Document-method: value
|
|
4638
4647
|
* the value to compare against
|
|
4639
4648
|
*/
|
|
4640
4649
|
rb_define_method(rb_cMATCH, "value", node_value, 0);
|
|
4641
4650
|
rb_ary_push(members, rb_str_new2("value"));
|
|
4651
|
+
|
|
4652
|
+
/* Document-method: lit
|
|
4653
|
+
* the regular expression to use in the condition.
|
|
4654
|
+
*/
|
|
4655
|
+
rb_define_method(rb_cMATCH, "lit", node_lit, 0);
|
|
4656
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
4642
4657
|
}
|
|
4643
4658
|
|
|
4644
4659
|
/* Document-class: Node::MATCH2
|
|
@@ -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
|
|
@@ -4776,17 +4791,17 @@ void define_node_subclass_methods()
|
|
|
4776
4791
|
rb_iv_set(rb_cMODULE, "__type__", INT2NUM(NODE_MODULE));
|
|
4777
4792
|
rb_define_singleton_method(rb_cMODULE, "members", node_s_members, 0);
|
|
4778
4793
|
|
|
4779
|
-
/* Document-method: cpath
|
|
4780
|
-
* the name of the module to define
|
|
4781
|
-
*/
|
|
4782
|
-
rb_define_method(rb_cMODULE, "cpath", node_cpath, 0);
|
|
4783
|
-
rb_ary_push(members, rb_str_new2("cpath"));
|
|
4784
|
-
|
|
4785
4794
|
/* Document-method: body
|
|
4786
4795
|
* the body of the module definition
|
|
4787
4796
|
*/
|
|
4788
4797
|
rb_define_method(rb_cMODULE, "body", node_body, 0);
|
|
4789
4798
|
rb_ary_push(members, rb_str_new2("body"));
|
|
4799
|
+
|
|
4800
|
+
/* Document-method: cpath
|
|
4801
|
+
* the name of the module to define
|
|
4802
|
+
*/
|
|
4803
|
+
rb_define_method(rb_cMODULE, "cpath", node_cpath, 0);
|
|
4804
|
+
rb_ary_push(members, rb_str_new2("cpath"));
|
|
4790
4805
|
}
|
|
4791
4806
|
|
|
4792
4807
|
/* Document-class: Node::NEWLINE
|
|
@@ -4928,6 +4943,12 @@ 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
|
|
|
4946
|
+
/* Document-method: recv
|
|
4947
|
+
* the receiver of the assignment
|
|
4948
|
+
*/
|
|
4949
|
+
rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
|
|
4950
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4951
|
+
|
|
4931
4952
|
/* Document-method: args
|
|
4932
4953
|
* the arguments to the assigment
|
|
4933
4954
|
*/
|
|
@@ -4940,12 +4961,6 @@ void define_node_subclass_methods()
|
|
|
4940
4961
|
*/
|
|
4941
4962
|
rb_define_method(rb_cOP_ASGN1, "mid", node_mid, 0);
|
|
4942
4963
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
4943
|
-
|
|
4944
|
-
/* Document-method: recv
|
|
4945
|
-
* the receiver of the assignment
|
|
4946
|
-
*/
|
|
4947
|
-
rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
|
|
4948
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
4949
4964
|
}
|
|
4950
4965
|
|
|
4951
4966
|
/* Document-class: Node::OP_ASGN2
|
|
@@ -4968,6 +4983,12 @@ 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
|
|
|
4986
|
+
/* Document-method: recv
|
|
4987
|
+
* the receiver of the attribute
|
|
4988
|
+
*/
|
|
4989
|
+
rb_define_method(rb_cOP_ASGN2, "recv", node_recv, 0);
|
|
4990
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4991
|
+
|
|
4971
4992
|
/* Document-method: value
|
|
4972
4993
|
* the value to assign to the attribute
|
|
4973
4994
|
*/
|
|
@@ -4980,12 +5001,6 @@ void define_node_subclass_methods()
|
|
|
4980
5001
|
*/
|
|
4981
5002
|
rb_define_method(rb_cOP_ASGN2, "next", node_next, 0);
|
|
4982
5003
|
rb_ary_push(members, rb_str_new2("next"));
|
|
4983
|
-
|
|
4984
|
-
/* Document-method: recv
|
|
4985
|
-
* the receiver of the attribute
|
|
4986
|
-
*/
|
|
4987
|
-
rb_define_method(rb_cOP_ASGN2, "recv", node_recv, 0);
|
|
4988
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
4989
5004
|
}
|
|
4990
5005
|
|
|
4991
5006
|
/* Document-class: Node::OP_ASGN2_ARG
|
|
@@ -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,13 +5083,11 @@ 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
|
|
|
5071
|
-
/* Document-method:
|
|
5072
|
-
*
|
|
5073
|
-
* provided expression is defined, otherwise it will assume that
|
|
5074
|
-
* the provided expression is defined.
|
|
5086
|
+
/* Document-method: recv
|
|
5087
|
+
* the receiver of the assignment
|
|
5075
5088
|
*/
|
|
5076
|
-
rb_define_method(rb_cOP_ASGN_OR, "
|
|
5077
|
-
rb_ary_push(members, rb_str_new2("
|
|
5089
|
+
rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
|
|
5090
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
5078
5091
|
|
|
5079
5092
|
/* Document-method: value
|
|
5080
5093
|
* the right hand side of the assignment
|
|
@@ -5082,11 +5095,13 @@ void define_node_subclass_methods()
|
|
|
5082
5095
|
rb_define_method(rb_cOP_ASGN_OR, "value", node_value, 0);
|
|
5083
5096
|
rb_ary_push(members, rb_str_new2("value"));
|
|
5084
5097
|
|
|
5085
|
-
/* Document-method:
|
|
5086
|
-
*
|
|
5098
|
+
/* Document-method: aid
|
|
5099
|
+
* if this indicator is nonzero, ruby will check to see if the
|
|
5100
|
+
* provided expression is defined, otherwise it will assume that
|
|
5101
|
+
* the provided expression is defined.
|
|
5087
5102
|
*/
|
|
5088
|
-
rb_define_method(rb_cOP_ASGN_OR, "
|
|
5089
|
-
rb_ary_push(members, rb_str_new2("
|
|
5103
|
+
rb_define_method(rb_cOP_ASGN_OR, "aid", node_aid, 0);
|
|
5104
|
+
rb_ary_push(members, rb_str_new2("aid"));
|
|
5090
5105
|
}
|
|
5091
5106
|
|
|
5092
5107
|
/* Document-class: Node::OR
|
|
@@ -5104,17 +5119,17 @@ void define_node_subclass_methods()
|
|
|
5104
5119
|
rb_iv_set(rb_cOR, "__type__", INT2NUM(NODE_OR));
|
|
5105
5120
|
rb_define_singleton_method(rb_cOR, "members", node_s_members, 0);
|
|
5106
5121
|
|
|
5107
|
-
/* Document-method: first
|
|
5108
|
-
* the expression on the left hand side
|
|
5109
|
-
*/
|
|
5110
|
-
rb_define_method(rb_cOR, "first", node_1st, 0);
|
|
5111
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
5112
|
-
|
|
5113
5122
|
/* Document-method: second
|
|
5114
5123
|
* the expression on the right hand side
|
|
5115
5124
|
*/
|
|
5116
5125
|
rb_define_method(rb_cOR, "second", node_2nd, 0);
|
|
5117
5126
|
rb_ary_push(members, rb_str_new2("second"));
|
|
5127
|
+
|
|
5128
|
+
/* Document-method: first
|
|
5129
|
+
* the expression on the left hand side
|
|
5130
|
+
*/
|
|
5131
|
+
rb_define_method(rb_cOR, "first", node_1st, 0);
|
|
5132
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
5118
5133
|
}
|
|
5119
5134
|
|
|
5120
5135
|
/* Document-class: Node::POSTEXE
|
|
@@ -5172,17 +5187,17 @@ void define_node_subclass_methods()
|
|
|
5172
5187
|
rb_define_method(rb_cRESBODY, "head", node_head, 0);
|
|
5173
5188
|
rb_ary_push(members, rb_str_new2("head"));
|
|
5174
5189
|
|
|
5175
|
-
/* Document-method: args
|
|
5176
|
-
* the expression type to match against
|
|
5177
|
-
*/
|
|
5178
|
-
rb_define_method(rb_cRESBODY, "args", node_args, 0);
|
|
5179
|
-
rb_ary_push(members, rb_str_new2("args"));
|
|
5180
|
-
|
|
5181
5190
|
/* Document-method: body
|
|
5182
5191
|
* the expresion to evaluate if the exception type matches
|
|
5183
5192
|
*/
|
|
5184
5193
|
rb_define_method(rb_cRESBODY, "body", node_body, 0);
|
|
5185
5194
|
rb_ary_push(members, rb_str_new2("body"));
|
|
5195
|
+
|
|
5196
|
+
/* Document-method: args
|
|
5197
|
+
* the expression type to match against
|
|
5198
|
+
*/
|
|
5199
|
+
rb_define_method(rb_cRESBODY, "args", node_args, 0);
|
|
5200
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
5186
5201
|
}
|
|
5187
5202
|
|
|
5188
5203
|
/* Document-class: Node::RESCUE
|
|
@@ -5222,18 +5237,18 @@ 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
|
|
|
5225
|
-
/* Document-method: head
|
|
5226
|
-
* the body of the block to evaluate
|
|
5227
|
-
*/
|
|
5228
|
-
rb_define_method(rb_cRESCUE, "head", node_head, 0);
|
|
5229
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
5230
|
-
|
|
5231
5240
|
/* Document-method: else
|
|
5232
5241
|
* the expression to be evaluated if no exception is raised
|
|
5233
5242
|
*/
|
|
5234
5243
|
rb_define_method(rb_cRESCUE, "else", node_else, 0);
|
|
5235
5244
|
rb_ary_push(members, rb_str_new2("else"));
|
|
5236
5245
|
|
|
5246
|
+
/* Document-method: head
|
|
5247
|
+
* the body of the block to evaluate
|
|
5248
|
+
*/
|
|
5249
|
+
rb_define_method(rb_cRESCUE, "head", node_head, 0);
|
|
5250
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
5251
|
+
|
|
5237
5252
|
/* Document-method: resq
|
|
5238
5253
|
* the expression to be evaluated if an exception is raised
|
|
5239
5254
|
*/
|
|
@@ -5328,13 +5343,6 @@ void define_node_subclass_methods()
|
|
|
5328
5343
|
rb_iv_set(rb_cSCOPE, "__type__", INT2NUM(NODE_SCOPE));
|
|
5329
5344
|
rb_define_singleton_method(rb_cSCOPE, "members", node_s_members, 0);
|
|
5330
5345
|
|
|
5331
|
-
/* Document-method: tbl
|
|
5332
|
-
* the names of the local variables* next the first expression in
|
|
5333
|
-
* the scope
|
|
5334
|
-
*/
|
|
5335
|
-
rb_define_method(rb_cSCOPE, "tbl", node_tbl, 0);
|
|
5336
|
-
rb_ary_push(members, rb_str_new2("tbl"));
|
|
5337
|
-
|
|
5338
5346
|
/* Document-method: rval
|
|
5339
5347
|
* holds information about which class(es) to search for constants
|
|
5340
5348
|
* in this scope
|
|
@@ -5342,6 +5350,13 @@ void define_node_subclass_methods()
|
|
|
5342
5350
|
rb_define_method(rb_cSCOPE, "rval", node_rval, 0);
|
|
5343
5351
|
rb_ary_push(members, rb_str_new2("rval"));
|
|
5344
5352
|
|
|
5353
|
+
/* Document-method: tbl
|
|
5354
|
+
* the names of the local variables* next the first expression in
|
|
5355
|
+
* the scope
|
|
5356
|
+
*/
|
|
5357
|
+
rb_define_method(rb_cSCOPE, "tbl", node_tbl, 0);
|
|
5358
|
+
rb_ary_push(members, rb_str_new2("tbl"));
|
|
5359
|
+
|
|
5345
5360
|
/* Document-method: next
|
|
5346
5361
|
* the body of the lexical scope
|
|
5347
5362
|
*/
|
|
@@ -5542,10 +5557,10 @@ void define_node_subclass_methods()
|
|
|
5542
5557
|
rb_iv_set(rb_cVALIAS, "__member__", members);
|
|
5543
5558
|
rb_iv_set(rb_cVALIAS, "__type__", INT2NUM(NODE_VALIAS));
|
|
5544
5559
|
rb_define_singleton_method(rb_cVALIAS, "members", node_s_members, 0);
|
|
5545
|
-
rb_define_method(rb_cVALIAS, "first", node_1st, 0);
|
|
5546
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
5547
5560
|
rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
|
|
5548
5561
|
rb_ary_push(members, rb_str_new2("second"));
|
|
5562
|
+
rb_define_method(rb_cVALIAS, "first", node_1st, 0);
|
|
5563
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
5549
5564
|
}
|
|
5550
5565
|
|
|
5551
5566
|
/* Document-class: Node::VCALL
|