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
|
@@ -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
|
}
|
|
@@ -521,7 +521,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
521
521
|
else
|
|
522
522
|
{
|
|
523
523
|
path = rb_class_path(klass);
|
|
524
|
-
if(
|
|
524
|
+
if(StringValuePtr(path)[0] == '#')
|
|
525
525
|
{
|
|
526
526
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
527
527
|
}
|
|
@@ -658,7 +658,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
658
658
|
else
|
|
659
659
|
{
|
|
660
660
|
path = rb_class_path(klass);
|
|
661
|
-
if(
|
|
661
|
+
if(StringValuePtr(path)[0] == '#')
|
|
662
662
|
{
|
|
663
663
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
664
664
|
}
|
|
@@ -872,7 +872,7 @@ VALUE dump_node_elem(enum Node_Elem_Name nen, NODE * n, VALUE node_hash)
|
|
|
872
872
|
else
|
|
873
873
|
{
|
|
874
874
|
path = rb_class_path(klass);
|
|
875
|
-
if(
|
|
875
|
+
if(StringValuePtr(path)[0] == '#')
|
|
876
876
|
{
|
|
877
877
|
rb_raise(rb_eArgError, "cannot dump anonymous class");
|
|
878
878
|
}
|
|
@@ -1131,20 +1131,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1131
1131
|
}
|
|
1132
1132
|
case NEN_CLSS:
|
|
1133
1133
|
{
|
|
1134
|
+
int flags;
|
|
1134
1135
|
Check_Type(v, T_ARRAY);
|
|
1135
1136
|
if(RARRAY_LEN(v) != 2)
|
|
1136
1137
|
{
|
|
1137
1138
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1138
1139
|
}
|
|
1139
|
-
|
|
1140
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1140
1141
|
switch(flags & T_MASK)
|
|
1141
1142
|
{
|
|
1142
1143
|
case T_CLASS:
|
|
1143
1144
|
case T_MODULE:
|
|
1144
1145
|
{
|
|
1145
|
-
VALUE str
|
|
1146
|
+
VALUE str, klass;
|
|
1147
|
+
|
|
1148
|
+
str = RARRAY_PTR(v)[1];
|
|
1146
1149
|
Check_Type(str, T_STRING);
|
|
1147
|
-
|
|
1150
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1148
1151
|
if(flags & FL_SINGLETON)
|
|
1149
1152
|
{
|
|
1150
1153
|
*(VALUE *)(&n->nd_clss) =
|
|
@@ -1220,20 +1223,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1220
1223
|
}
|
|
1221
1224
|
case NEN_CVAL:
|
|
1222
1225
|
{
|
|
1226
|
+
int flags;
|
|
1223
1227
|
Check_Type(v, T_ARRAY);
|
|
1224
1228
|
if(RARRAY_LEN(v) != 2)
|
|
1225
1229
|
{
|
|
1226
1230
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1227
1231
|
}
|
|
1228
|
-
|
|
1232
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1229
1233
|
switch(flags & T_MASK)
|
|
1230
1234
|
{
|
|
1231
1235
|
case T_CLASS:
|
|
1232
1236
|
case T_MODULE:
|
|
1233
1237
|
{
|
|
1234
|
-
VALUE str
|
|
1238
|
+
VALUE str, klass;
|
|
1239
|
+
|
|
1240
|
+
str = RARRAY_PTR(v)[1];
|
|
1235
1241
|
Check_Type(str, T_STRING);
|
|
1236
|
-
|
|
1242
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1237
1243
|
if(flags & FL_SINGLETON)
|
|
1238
1244
|
{
|
|
1239
1245
|
*(VALUE *)(&n->nd_cval) =
|
|
@@ -1414,20 +1420,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1414
1420
|
}
|
|
1415
1421
|
case NEN_LIT:
|
|
1416
1422
|
{
|
|
1423
|
+
int flags;
|
|
1417
1424
|
Check_Type(v, T_ARRAY);
|
|
1418
1425
|
if(RARRAY_LEN(v) != 2)
|
|
1419
1426
|
{
|
|
1420
1427
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1421
1428
|
}
|
|
1422
|
-
|
|
1429
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1423
1430
|
switch(flags & T_MASK)
|
|
1424
1431
|
{
|
|
1425
1432
|
case T_CLASS:
|
|
1426
1433
|
case T_MODULE:
|
|
1427
1434
|
{
|
|
1428
|
-
VALUE str
|
|
1435
|
+
VALUE str, klass;
|
|
1436
|
+
|
|
1437
|
+
str = RARRAY_PTR(v)[1];
|
|
1429
1438
|
Check_Type(str, T_STRING);
|
|
1430
|
-
|
|
1439
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1431
1440
|
if(flags & FL_SINGLETON)
|
|
1432
1441
|
{
|
|
1433
1442
|
*(VALUE *)(&n->nd_lit) =
|
|
@@ -1556,20 +1565,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1556
1565
|
}
|
|
1557
1566
|
case NEN_ORIG:
|
|
1558
1567
|
{
|
|
1568
|
+
int flags;
|
|
1559
1569
|
Check_Type(v, T_ARRAY);
|
|
1560
1570
|
if(RARRAY_LEN(v) != 2)
|
|
1561
1571
|
{
|
|
1562
1572
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1563
1573
|
}
|
|
1564
|
-
|
|
1574
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1565
1575
|
switch(flags & T_MASK)
|
|
1566
1576
|
{
|
|
1567
1577
|
case T_CLASS:
|
|
1568
1578
|
case T_MODULE:
|
|
1569
1579
|
{
|
|
1570
|
-
VALUE str
|
|
1580
|
+
VALUE str, klass;
|
|
1581
|
+
|
|
1582
|
+
str = RARRAY_PTR(v)[1];
|
|
1571
1583
|
Check_Type(str, T_STRING);
|
|
1572
|
-
|
|
1584
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1573
1585
|
if(flags & FL_SINGLETON)
|
|
1574
1586
|
{
|
|
1575
1587
|
*(VALUE *)(&n->nd_orig) =
|
|
@@ -1808,20 +1820,23 @@ void load_node_elem(enum Node_Elem_Name nen, VALUE v, NODE * n, VALUE node_hash,
|
|
|
1808
1820
|
}
|
|
1809
1821
|
case NEN_TVAL:
|
|
1810
1822
|
{
|
|
1823
|
+
int flags;
|
|
1811
1824
|
Check_Type(v, T_ARRAY);
|
|
1812
1825
|
if(RARRAY_LEN(v) != 2)
|
|
1813
1826
|
{
|
|
1814
1827
|
rb_raise(rb_eArgError, "wrong size for array");
|
|
1815
1828
|
}
|
|
1816
|
-
|
|
1829
|
+
flags = NUM2INT(RARRAY_PTR(v)[0]);
|
|
1817
1830
|
switch(flags & T_MASK)
|
|
1818
1831
|
{
|
|
1819
1832
|
case T_CLASS:
|
|
1820
1833
|
case T_MODULE:
|
|
1821
1834
|
{
|
|
1822
|
-
VALUE str
|
|
1835
|
+
VALUE str, klass;
|
|
1836
|
+
|
|
1837
|
+
str = RARRAY_PTR(v)[1];
|
|
1823
1838
|
Check_Type(str, T_STRING);
|
|
1824
|
-
|
|
1839
|
+
klass = rb_path2class(StringValuePtr(str));
|
|
1825
1840
|
if(flags & FL_SINGLETON)
|
|
1826
1841
|
{
|
|
1827
1842
|
*(VALUE *)(&n->nd_tval) =
|
|
@@ -2000,16 +2015,6 @@ static VALUE node_alen(VALUE self)
|
|
|
2000
2015
|
Data_Get_Struct(self, NODE, n);
|
|
2001
2016
|
return LONG2NUM(n->nd_alen);
|
|
2002
2017
|
}
|
|
2003
|
-
/*
|
|
2004
|
-
* Return the Node's _argc_ member. The return type is an
|
|
2005
|
-
* Integer.
|
|
2006
|
-
*/
|
|
2007
|
-
static VALUE node_argc(VALUE self)
|
|
2008
|
-
{
|
|
2009
|
-
NODE * n;
|
|
2010
|
-
Data_Get_Struct(self, NODE, n);
|
|
2011
|
-
return LONG2NUM(n->nd_argc);
|
|
2012
|
-
}
|
|
2013
2018
|
/*
|
|
2014
2019
|
* Return the Node's _args_ member. The return type is
|
|
2015
2020
|
* either a Node or an Object.
|
|
@@ -2107,33 +2112,6 @@ static VALUE node_cfnc(VALUE self)
|
|
|
2107
2112
|
Data_Get_Struct(self, NODE, n);
|
|
2108
2113
|
return LONG2NUM((long)(n->nd_cfnc));
|
|
2109
2114
|
}
|
|
2110
|
-
/*
|
|
2111
|
-
* Return the Node's _clss_ member. The return type is
|
|
2112
|
-
* either a Node or an Object.
|
|
2113
|
-
*/
|
|
2114
|
-
static VALUE node_clss(VALUE self)
|
|
2115
|
-
{
|
|
2116
|
-
NODE * n;
|
|
2117
|
-
Data_Get_Struct(self, NODE, n);
|
|
2118
|
-
|
|
2119
|
-
if(TYPE(n->nd_clss) == T_NODE)
|
|
2120
|
-
{
|
|
2121
|
-
if(0 && nd_type(n) == NODE_OP_ASGN2)
|
|
2122
|
-
{
|
|
2123
|
-
return wrap_node_as(
|
|
2124
|
-
(NODE *)n->nd_clss,
|
|
2125
|
-
rb_cNodeSubclass[NODE_OP_ASGN2_ARG]);
|
|
2126
|
-
}
|
|
2127
|
-
else
|
|
2128
|
-
{
|
|
2129
|
-
return wrap_node((NODE *)n->nd_clss);
|
|
2130
|
-
}
|
|
2131
|
-
}
|
|
2132
|
-
else
|
|
2133
|
-
{
|
|
2134
|
-
return (VALUE)n->nd_clss;
|
|
2135
|
-
}
|
|
2136
|
-
}
|
|
2137
2115
|
/*
|
|
2138
2116
|
* Return the Node's _cnt_ member. The return type is an
|
|
2139
2117
|
* Integer.
|
|
@@ -2499,27 +2477,6 @@ static VALUE node_nth(VALUE self)
|
|
|
2499
2477
|
Data_Get_Struct(self, NODE, n);
|
|
2500
2478
|
return LONG2NUM(n->nd_nth);
|
|
2501
2479
|
}
|
|
2502
|
-
/*
|
|
2503
|
-
* Return the Node's _oid_ member. The return type is a
|
|
2504
|
-
* Symbol.
|
|
2505
|
-
*/
|
|
2506
|
-
static VALUE node_oid(VALUE self)
|
|
2507
|
-
{
|
|
2508
|
-
NODE * n;
|
|
2509
|
-
Data_Get_Struct(self, NODE, n);
|
|
2510
|
-
if(n->nd_oid == 0)
|
|
2511
|
-
{
|
|
2512
|
-
return Qfalse;
|
|
2513
|
-
}
|
|
2514
|
-
else if(n->nd_oid == 1)
|
|
2515
|
-
{
|
|
2516
|
-
return Qtrue;
|
|
2517
|
-
}
|
|
2518
|
-
else
|
|
2519
|
-
{
|
|
2520
|
-
return ID2SYM(n->nd_oid);
|
|
2521
|
-
}
|
|
2522
|
-
}
|
|
2523
2480
|
/*
|
|
2524
2481
|
* Return the Node's _opt_ member. The return type is
|
|
2525
2482
|
* either a Node or an Object.
|
|
@@ -2865,10 +2822,10 @@ void define_node_subclass_methods()
|
|
|
2865
2822
|
rb_iv_set(rb_cALIAS, "__member__", members);
|
|
2866
2823
|
rb_iv_set(rb_cALIAS, "__type__", INT2NUM(NODE_ALIAS));
|
|
2867
2824
|
rb_define_singleton_method(rb_cALIAS, "members", node_s_members, 0);
|
|
2868
|
-
rb_define_method(rb_cALIAS, "first", node_1st, 0);
|
|
2869
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
2870
2825
|
rb_define_method(rb_cALIAS, "second", node_2nd, 0);
|
|
2871
2826
|
rb_ary_push(members, rb_str_new2("second"));
|
|
2827
|
+
rb_define_method(rb_cALIAS, "first", node_1st, 0);
|
|
2828
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
2872
2829
|
}
|
|
2873
2830
|
|
|
2874
2831
|
/* Document-class: Node::ALLOCA
|
|
@@ -2892,17 +2849,17 @@ void define_node_subclass_methods()
|
|
|
2892
2849
|
rb_define_method(rb_cALLOCA, "cfnc", node_cfnc, 0);
|
|
2893
2850
|
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
2894
2851
|
|
|
2895
|
-
/* Document-method: value
|
|
2896
|
-
* a pointer to the previously allocated temporary node
|
|
2897
|
-
*/
|
|
2898
|
-
rb_define_method(rb_cALLOCA, "value", node_value, 0);
|
|
2899
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
2900
|
-
|
|
2901
2852
|
/* Document-method: cnt
|
|
2902
2853
|
* the number of bytes allocated
|
|
2903
2854
|
*/
|
|
2904
2855
|
rb_define_method(rb_cALLOCA, "cnt", node_cnt, 0);
|
|
2905
2856
|
rb_ary_push(members, rb_str_new2("cnt"));
|
|
2857
|
+
|
|
2858
|
+
/* Document-method: value
|
|
2859
|
+
* a pointer to the previously allocated temporary node
|
|
2860
|
+
*/
|
|
2861
|
+
rb_define_method(rb_cALLOCA, "value", node_value, 0);
|
|
2862
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
2906
2863
|
}
|
|
2907
2864
|
#endif
|
|
2908
2865
|
|
|
@@ -2921,17 +2878,17 @@ void define_node_subclass_methods()
|
|
|
2921
2878
|
rb_iv_set(rb_cAND, "__type__", INT2NUM(NODE_AND));
|
|
2922
2879
|
rb_define_singleton_method(rb_cAND, "members", node_s_members, 0);
|
|
2923
2880
|
|
|
2924
|
-
/* Document-method: first
|
|
2925
|
-
* the expression on the left hand side
|
|
2926
|
-
*/
|
|
2927
|
-
rb_define_method(rb_cAND, "first", node_1st, 0);
|
|
2928
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
2929
|
-
|
|
2930
2881
|
/* Document-method: second
|
|
2931
2882
|
* the expression on the right hand side
|
|
2932
2883
|
*/
|
|
2933
2884
|
rb_define_method(rb_cAND, "second", node_2nd, 0);
|
|
2934
2885
|
rb_ary_push(members, rb_str_new2("second"));
|
|
2886
|
+
|
|
2887
|
+
/* Document-method: first
|
|
2888
|
+
* the expression on the left hand side
|
|
2889
|
+
*/
|
|
2890
|
+
rb_define_method(rb_cAND, "first", node_1st, 0);
|
|
2891
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
2935
2892
|
}
|
|
2936
2893
|
|
|
2937
2894
|
/* Document-class: Node::ARGS
|
|
@@ -2945,6 +2902,12 @@ void define_node_subclass_methods()
|
|
|
2945
2902
|
rb_iv_set(rb_cARGS, "__type__", INT2NUM(NODE_ARGS));
|
|
2946
2903
|
rb_define_singleton_method(rb_cARGS, "members", node_s_members, 0);
|
|
2947
2904
|
|
|
2905
|
+
/* Document-method: cnt
|
|
2906
|
+
* the number of required arguments
|
|
2907
|
+
*/
|
|
2908
|
+
rb_define_method(rb_cARGS, "cnt", node_cnt, 0);
|
|
2909
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
|
2910
|
+
|
|
2948
2911
|
/* Document-method: rest
|
|
2949
2912
|
* an assignment node to assign the rest arg, if it is present
|
|
2950
2913
|
*/
|
|
@@ -2957,12 +2920,6 @@ void define_node_subclass_methods()
|
|
|
2957
2920
|
*/
|
|
2958
2921
|
rb_define_method(rb_cARGS, "opt", node_opt, 0);
|
|
2959
2922
|
rb_ary_push(members, rb_str_new2("opt"));
|
|
2960
|
-
|
|
2961
|
-
/* Document-method: cnt
|
|
2962
|
-
* the number of required arguments
|
|
2963
|
-
*/
|
|
2964
|
-
rb_define_method(rb_cARGS, "cnt", node_cnt, 0);
|
|
2965
|
-
rb_ary_push(members, rb_str_new2("cnt"));
|
|
2966
2923
|
}
|
|
2967
2924
|
|
|
2968
2925
|
/* Document-class: Node::ARGSCAT
|
|
@@ -2982,18 +2939,18 @@ void define_node_subclass_methods()
|
|
|
2982
2939
|
rb_iv_set(rb_cARGSCAT, "__type__", INT2NUM(NODE_ARGSCAT));
|
|
2983
2940
|
rb_define_singleton_method(rb_cARGSCAT, "members", node_s_members, 0);
|
|
2984
2941
|
|
|
2985
|
-
/* Document-method: head
|
|
2986
|
-
* a list of fixed arguments
|
|
2987
|
-
*/
|
|
2988
|
-
rb_define_method(rb_cARGSCAT, "head", node_head, 0);
|
|
2989
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
2990
|
-
|
|
2991
2942
|
/* Document-method: body
|
|
2992
2943
|
* the last argument, which will be splatted onto the end of the
|
|
2993
2944
|
* fixed arguments
|
|
2994
2945
|
*/
|
|
2995
2946
|
rb_define_method(rb_cARGSCAT, "body", node_body, 0);
|
|
2996
2947
|
rb_ary_push(members, rb_str_new2("body"));
|
|
2948
|
+
|
|
2949
|
+
/* Document-method: head
|
|
2950
|
+
* a list of fixed arguments
|
|
2951
|
+
*/
|
|
2952
|
+
rb_define_method(rb_cARGSCAT, "head", node_head, 0);
|
|
2953
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
2997
2954
|
}
|
|
2998
2955
|
|
|
2999
2956
|
/* Document-class: Node::ARGSPUSH
|
|
@@ -3010,10 +2967,10 @@ void define_node_subclass_methods()
|
|
|
3010
2967
|
rb_iv_set(rb_cARGSPUSH, "__member__", members);
|
|
3011
2968
|
rb_iv_set(rb_cARGSPUSH, "__type__", INT2NUM(NODE_ARGSPUSH));
|
|
3012
2969
|
rb_define_singleton_method(rb_cARGSPUSH, "members", node_s_members, 0);
|
|
3013
|
-
rb_define_method(rb_cARGSPUSH, "head", node_head, 0);
|
|
3014
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3015
2970
|
rb_define_method(rb_cARGSPUSH, "body", node_body, 0);
|
|
3016
2971
|
rb_ary_push(members, rb_str_new2("body"));
|
|
2972
|
+
rb_define_method(rb_cARGSPUSH, "head", node_head, 0);
|
|
2973
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3017
2974
|
}
|
|
3018
2975
|
|
|
3019
2976
|
/* Document-class: Node::ARRAY
|
|
@@ -3028,12 +2985,6 @@ void define_node_subclass_methods()
|
|
|
3028
2985
|
rb_iv_set(rb_cARRAY, "__member__", members);
|
|
3029
2986
|
rb_iv_set(rb_cARRAY, "__type__", INT2NUM(NODE_ARRAY));
|
|
3030
2987
|
rb_define_singleton_method(rb_cARRAY, "members", node_s_members, 0);
|
|
3031
|
-
|
|
3032
|
-
/* Document-method: head
|
|
3033
|
-
* the first element of the array
|
|
3034
|
-
*/
|
|
3035
|
-
rb_define_method(rb_cARRAY, "head", node_head, 0);
|
|
3036
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3037
2988
|
rb_define_method(rb_cARRAY, "alen", node_alen, 0);
|
|
3038
2989
|
rb_ary_push(members, rb_str_new2("alen"));
|
|
3039
2990
|
|
|
@@ -3042,6 +2993,12 @@ void define_node_subclass_methods()
|
|
|
3042
2993
|
*/
|
|
3043
2994
|
rb_define_method(rb_cARRAY, "next", node_next, 0);
|
|
3044
2995
|
rb_ary_push(members, rb_str_new2("next"));
|
|
2996
|
+
|
|
2997
|
+
/* Document-method: head
|
|
2998
|
+
* the first element of the array
|
|
2999
|
+
*/
|
|
3000
|
+
rb_define_method(rb_cARRAY, "head", node_head, 0);
|
|
3001
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3045
3002
|
}
|
|
3046
3003
|
|
|
3047
3004
|
/* Document-class: Node::ATTRASGN
|
|
@@ -3058,11 +3015,11 @@ void define_node_subclass_methods()
|
|
|
3058
3015
|
rb_iv_set(rb_cATTRASGN, "__type__", INT2NUM(NODE_ATTRASGN));
|
|
3059
3016
|
rb_define_singleton_method(rb_cATTRASGN, "members", node_s_members, 0);
|
|
3060
3017
|
|
|
3061
|
-
/* Document-method:
|
|
3062
|
-
* the
|
|
3018
|
+
/* Document-method: recv
|
|
3019
|
+
* the receiver of the method
|
|
3063
3020
|
*/
|
|
3064
|
-
rb_define_method(rb_cATTRASGN, "
|
|
3065
|
-
rb_ary_push(members, rb_str_new2("
|
|
3021
|
+
rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
|
|
3022
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
3066
3023
|
|
|
3067
3024
|
/* Document-method: mid
|
|
3068
3025
|
* the id of the attribute, with a trailing '=' sign
|
|
@@ -3070,32 +3027,11 @@ void define_node_subclass_methods()
|
|
|
3070
3027
|
rb_define_method(rb_cATTRASGN, "mid", node_mid, 0);
|
|
3071
3028
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3072
3029
|
|
|
3073
|
-
/* Document-method:
|
|
3074
|
-
* the
|
|
3075
|
-
*/
|
|
3076
|
-
rb_define_method(rb_cATTRASGN, "recv", node_recv, 0);
|
|
3077
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
3078
|
-
}
|
|
3079
|
-
|
|
3080
|
-
/* Document-class: Node::ATTRSET
|
|
3081
|
-
* A placeholder for an attribute writer method, which can added to a
|
|
3082
|
-
* class by using attr_writer:
|
|
3083
|
-
* attr_writer :attribute
|
|
3084
|
-
* Its reader counterpart is IVAR.
|
|
3085
|
-
*/
|
|
3086
|
-
{
|
|
3087
|
-
VALUE rb_cATTRSET = rb_define_class_under(rb_cNode, "ATTRSET", rb_cNode);
|
|
3088
|
-
members = rb_ary_new();
|
|
3089
|
-
rb_cNodeSubclass[NODE_ATTRSET] = rb_cATTRSET;
|
|
3090
|
-
rb_iv_set(rb_cATTRSET, "__member__", members);
|
|
3091
|
-
rb_iv_set(rb_cATTRSET, "__type__", INT2NUM(NODE_ATTRSET));
|
|
3092
|
-
rb_define_singleton_method(rb_cATTRSET, "members", node_s_members, 0);
|
|
3093
|
-
|
|
3094
|
-
/* Document-method: vid
|
|
3095
|
-
* the name of the attribute, with a leading '@' sign
|
|
3030
|
+
/* Document-method: args
|
|
3031
|
+
* the arguments to the method
|
|
3096
3032
|
*/
|
|
3097
|
-
rb_define_method(
|
|
3098
|
-
rb_ary_push(members, rb_str_new2("
|
|
3033
|
+
rb_define_method(rb_cATTRASGN, "args", node_args, 0);
|
|
3034
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
3099
3035
|
}
|
|
3100
3036
|
|
|
3101
3037
|
/* Document-class: Node::BACK_REF
|
|
@@ -3162,17 +3098,17 @@ void define_node_subclass_methods()
|
|
|
3162
3098
|
rb_iv_set(rb_cBLOCK, "__type__", INT2NUM(NODE_BLOCK));
|
|
3163
3099
|
rb_define_singleton_method(rb_cBLOCK, "members", node_s_members, 0);
|
|
3164
3100
|
|
|
3165
|
-
/* Document-method: head
|
|
3166
|
-
* the first expression in the block of code
|
|
3167
|
-
*/
|
|
3168
|
-
rb_define_method(rb_cBLOCK, "head", node_head, 0);
|
|
3169
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3170
|
-
|
|
3171
3101
|
/* Document-method: next
|
|
3172
3102
|
* the second expression in the block of code
|
|
3173
3103
|
*/
|
|
3174
3104
|
rb_define_method(rb_cBLOCK, "next", node_next, 0);
|
|
3175
3105
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3106
|
+
|
|
3107
|
+
/* Document-method: head
|
|
3108
|
+
* the first expression in the block of code
|
|
3109
|
+
*/
|
|
3110
|
+
rb_define_method(rb_cBLOCK, "head", node_head, 0);
|
|
3111
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3176
3112
|
}
|
|
3177
3113
|
|
|
3178
3114
|
/* Document-class: Node::BLOCK_ARG
|
|
@@ -3280,11 +3216,11 @@ void define_node_subclass_methods()
|
|
|
3280
3216
|
rb_iv_set(rb_cCALL, "__type__", INT2NUM(NODE_CALL));
|
|
3281
3217
|
rb_define_singleton_method(rb_cCALL, "members", node_s_members, 0);
|
|
3282
3218
|
|
|
3283
|
-
/* Document-method:
|
|
3284
|
-
* the
|
|
3219
|
+
/* Document-method: recv
|
|
3220
|
+
* the receiver of the method
|
|
3285
3221
|
*/
|
|
3286
|
-
rb_define_method(rb_cCALL, "
|
|
3287
|
-
rb_ary_push(members, rb_str_new2("
|
|
3222
|
+
rb_define_method(rb_cCALL, "recv", node_recv, 0);
|
|
3223
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
3288
3224
|
|
|
3289
3225
|
/* Document-method: mid
|
|
3290
3226
|
* the method id
|
|
@@ -3292,11 +3228,11 @@ void define_node_subclass_methods()
|
|
|
3292
3228
|
rb_define_method(rb_cCALL, "mid", node_mid, 0);
|
|
3293
3229
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3294
3230
|
|
|
3295
|
-
/* Document-method:
|
|
3296
|
-
* the
|
|
3231
|
+
/* Document-method: args
|
|
3232
|
+
* the arguments to the method
|
|
3297
3233
|
*/
|
|
3298
|
-
rb_define_method(rb_cCALL, "
|
|
3299
|
-
rb_ary_push(members, rb_str_new2("
|
|
3234
|
+
rb_define_method(rb_cCALL, "args", node_args, 0);
|
|
3235
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
3300
3236
|
}
|
|
3301
3237
|
|
|
3302
3238
|
/* Document-class: Node::CASE
|
|
@@ -3314,12 +3250,6 @@ void define_node_subclass_methods()
|
|
|
3314
3250
|
rb_iv_set(rb_cCASE, "__type__", INT2NUM(NODE_CASE));
|
|
3315
3251
|
rb_define_singleton_method(rb_cCASE, "members", node_s_members, 0);
|
|
3316
3252
|
|
|
3317
|
-
/* Document-method: head
|
|
3318
|
-
* the value to select on
|
|
3319
|
-
*/
|
|
3320
|
-
rb_define_method(rb_cCASE, "head", node_head, 0);
|
|
3321
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3322
|
-
|
|
3323
3253
|
/* Document-method: body
|
|
3324
3254
|
* a linked list of nodes, each node representing a when
|
|
3325
3255
|
* conditional
|
|
@@ -3328,6 +3258,12 @@ void define_node_subclass_methods()
|
|
|
3328
3258
|
rb_ary_push(members, rb_str_new2("body"));
|
|
3329
3259
|
rb_define_method(rb_cCASE, "next", node_next, 0);
|
|
3330
3260
|
rb_ary_push(members, rb_str_new2("next"));
|
|
3261
|
+
|
|
3262
|
+
/* Document-method: head
|
|
3263
|
+
* the value to select on
|
|
3264
|
+
*/
|
|
3265
|
+
rb_define_method(rb_cCASE, "head", node_head, 0);
|
|
3266
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3331
3267
|
}
|
|
3332
3268
|
|
|
3333
3269
|
/* Document-class: Node::CDECL
|
|
@@ -3355,22 +3291,6 @@ void define_node_subclass_methods()
|
|
|
3355
3291
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
3356
3292
|
}
|
|
3357
3293
|
|
|
3358
|
-
/* Document-class: Node::CFUNC
|
|
3359
|
-
* A placeholder for a function implemented in C.
|
|
3360
|
-
*/
|
|
3361
|
-
{
|
|
3362
|
-
VALUE rb_cCFUNC = rb_define_class_under(rb_cNode, "CFUNC", rb_cNode);
|
|
3363
|
-
members = rb_ary_new();
|
|
3364
|
-
rb_cNodeSubclass[NODE_CFUNC] = rb_cCFUNC;
|
|
3365
|
-
rb_iv_set(rb_cCFUNC, "__member__", members);
|
|
3366
|
-
rb_iv_set(rb_cCFUNC, "__type__", INT2NUM(NODE_CFUNC));
|
|
3367
|
-
rb_define_singleton_method(rb_cCFUNC, "members", node_s_members, 0);
|
|
3368
|
-
rb_define_method(rb_cCFUNC, "cfnc", node_cfnc, 0);
|
|
3369
|
-
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
3370
|
-
rb_define_method(rb_cCFUNC, "argc", node_argc, 0);
|
|
3371
|
-
rb_ary_push(members, rb_str_new2("argc"));
|
|
3372
|
-
}
|
|
3373
|
-
|
|
3374
3294
|
/* Document-class: Node::CLASS
|
|
3375
3295
|
* Represents a class definition, e.g.:
|
|
3376
3296
|
* class cpath
|
|
@@ -3395,12 +3315,6 @@ void define_node_subclass_methods()
|
|
|
3395
3315
|
rb_iv_set(rb_cCLASS, "__type__", INT2NUM(NODE_CLASS));
|
|
3396
3316
|
rb_define_singleton_method(rb_cCLASS, "members", node_s_members, 0);
|
|
3397
3317
|
|
|
3398
|
-
/* Document-method: cpath
|
|
3399
|
-
* the name of the class to define
|
|
3400
|
-
*/
|
|
3401
|
-
rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
|
|
3402
|
-
rb_ary_push(members, rb_str_new2("cpath"));
|
|
3403
|
-
|
|
3404
3318
|
/* Document-method: body
|
|
3405
3319
|
* the body of the class definition
|
|
3406
3320
|
*/
|
|
@@ -3413,6 +3327,12 @@ void define_node_subclass_methods()
|
|
|
3413
3327
|
*/
|
|
3414
3328
|
rb_define_method(rb_cCLASS, "super", node_super, 0);
|
|
3415
3329
|
rb_ary_push(members, rb_str_new2("super"));
|
|
3330
|
+
|
|
3331
|
+
/* Document-method: cpath
|
|
3332
|
+
* the name of the class to define
|
|
3333
|
+
*/
|
|
3334
|
+
rb_define_method(rb_cCLASS, "cpath", node_cpath, 0);
|
|
3335
|
+
rb_ary_push(members, rb_str_new2("cpath"));
|
|
3416
3336
|
}
|
|
3417
3337
|
|
|
3418
3338
|
/* Document-class: Node::COLON2
|
|
@@ -3431,17 +3351,17 @@ void define_node_subclass_methods()
|
|
|
3431
3351
|
rb_iv_set(rb_cCOLON2, "__type__", INT2NUM(NODE_COLON2));
|
|
3432
3352
|
rb_define_singleton_method(rb_cCOLON2, "members", node_s_members, 0);
|
|
3433
3353
|
|
|
3434
|
-
/* Document-method: head
|
|
3435
|
-
* an expression specifying the class in which to do the lookup
|
|
3436
|
-
*/
|
|
3437
|
-
rb_define_method(rb_cCOLON2, "head", node_head, 0);
|
|
3438
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3439
|
-
|
|
3440
3354
|
/* Document-method: mid
|
|
3441
3355
|
* the name of the method or constant to call/look up
|
|
3442
3356
|
*/
|
|
3443
3357
|
rb_define_method(rb_cCOLON2, "mid", node_mid, 0);
|
|
3444
3358
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3359
|
+
|
|
3360
|
+
/* Document-method: head
|
|
3361
|
+
* an expression specifying the class in which to do the lookup
|
|
3362
|
+
*/
|
|
3363
|
+
rb_define_method(rb_cCOLON2, "head", node_head, 0);
|
|
3364
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3445
3365
|
}
|
|
3446
3366
|
|
|
3447
3367
|
/* Document-class: Node::COLON3
|
|
@@ -3652,17 +3572,17 @@ void define_node_subclass_methods()
|
|
|
3652
3572
|
rb_define_method(rb_cDEFN, "defn", node_defn, 0);
|
|
3653
3573
|
rb_ary_push(members, rb_str_new2("defn"));
|
|
3654
3574
|
|
|
3655
|
-
/* Document-method: mid
|
|
3656
|
-
* the name of the method* defn the body of the method
|
|
3657
|
-
*/
|
|
3658
|
-
rb_define_method(rb_cDEFN, "mid", node_mid, 0);
|
|
3659
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
|
3660
|
-
|
|
3661
3575
|
/* Document-method: noex
|
|
3662
3576
|
* the flags which should be used to define the method
|
|
3663
3577
|
*/
|
|
3664
3578
|
rb_define_method(rb_cDEFN, "noex", node_noex, 0);
|
|
3665
3579
|
rb_ary_push(members, rb_str_new2("noex"));
|
|
3580
|
+
|
|
3581
|
+
/* Document-method: mid
|
|
3582
|
+
* the name of the method* defn the body of the method
|
|
3583
|
+
*/
|
|
3584
|
+
rb_define_method(rb_cDEFN, "mid", node_mid, 0);
|
|
3585
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
|
3666
3586
|
}
|
|
3667
3587
|
|
|
3668
3588
|
/* Document-class: Node::DEFS
|
|
@@ -3681,17 +3601,17 @@ void define_node_subclass_methods()
|
|
|
3681
3601
|
rb_define_method(rb_cDEFS, "defn", node_defn, 0);
|
|
3682
3602
|
rb_ary_push(members, rb_str_new2("defn"));
|
|
3683
3603
|
|
|
3684
|
-
/* Document-method: mid
|
|
3685
|
-
* the name of the method* defn the body of the method
|
|
3686
|
-
*/
|
|
3687
|
-
rb_define_method(rb_cDEFS, "mid", node_mid, 0);
|
|
3688
|
-
rb_ary_push(members, rb_str_new2("mid"));
|
|
3689
|
-
|
|
3690
3604
|
/* Document-method: recv
|
|
3691
3605
|
* the object to whose singleton class the new method is to be added
|
|
3692
3606
|
*/
|
|
3693
3607
|
rb_define_method(rb_cDEFS, "recv", node_recv, 0);
|
|
3694
3608
|
rb_ary_push(members, rb_str_new2("recv"));
|
|
3609
|
+
|
|
3610
|
+
/* Document-method: mid
|
|
3611
|
+
* the name of the method* defn the body of the method
|
|
3612
|
+
*/
|
|
3613
|
+
rb_define_method(rb_cDEFS, "mid", node_mid, 0);
|
|
3614
|
+
rb_ary_push(members, rb_str_new2("mid"));
|
|
3695
3615
|
}
|
|
3696
3616
|
|
|
3697
3617
|
/* Document-class: Node::DOT2
|
|
@@ -3707,12 +3627,6 @@ void define_node_subclass_methods()
|
|
|
3707
3627
|
rb_iv_set(rb_cDOT2, "__type__", INT2NUM(NODE_DOT2));
|
|
3708
3628
|
rb_define_singleton_method(rb_cDOT2, "members", node_s_members, 0);
|
|
3709
3629
|
|
|
3710
|
-
/* Document-method: beg
|
|
3711
|
-
* the beginning of the range
|
|
3712
|
-
*/
|
|
3713
|
-
rb_define_method(rb_cDOT2, "beg", node_beg, 0);
|
|
3714
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
|
3715
|
-
|
|
3716
3630
|
/* Document-method: end
|
|
3717
3631
|
* the end of the range
|
|
3718
3632
|
*/
|
|
@@ -3720,6 +3634,12 @@ void define_node_subclass_methods()
|
|
|
3720
3634
|
rb_ary_push(members, rb_str_new2("end"));
|
|
3721
3635
|
rb_define_method(rb_cDOT2, "state", node_state, 0);
|
|
3722
3636
|
rb_ary_push(members, rb_str_new2("state"));
|
|
3637
|
+
|
|
3638
|
+
/* Document-method: beg
|
|
3639
|
+
* the beginning of the range
|
|
3640
|
+
*/
|
|
3641
|
+
rb_define_method(rb_cDOT2, "beg", node_beg, 0);
|
|
3642
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
3723
3643
|
}
|
|
3724
3644
|
|
|
3725
3645
|
/* Document-class: Node::DOT3
|
|
@@ -3735,12 +3655,6 @@ void define_node_subclass_methods()
|
|
|
3735
3655
|
rb_iv_set(rb_cDOT3, "__type__", INT2NUM(NODE_DOT3));
|
|
3736
3656
|
rb_define_singleton_method(rb_cDOT3, "members", node_s_members, 0);
|
|
3737
3657
|
|
|
3738
|
-
/* Document-method: beg
|
|
3739
|
-
* the beginning of the range
|
|
3740
|
-
*/
|
|
3741
|
-
rb_define_method(rb_cDOT3, "beg", node_beg, 0);
|
|
3742
|
-
rb_ary_push(members, rb_str_new2("beg"));
|
|
3743
|
-
|
|
3744
3658
|
/* Document-method: end
|
|
3745
3659
|
* the end of the range
|
|
3746
3660
|
*/
|
|
@@ -3748,7 +3662,13 @@ void define_node_subclass_methods()
|
|
|
3748
3662
|
rb_ary_push(members, rb_str_new2("end"));
|
|
3749
3663
|
rb_define_method(rb_cDOT3, "state", node_state, 0);
|
|
3750
3664
|
rb_ary_push(members, rb_str_new2("state"));
|
|
3751
|
-
|
|
3665
|
+
|
|
3666
|
+
/* Document-method: beg
|
|
3667
|
+
* the beginning of the range
|
|
3668
|
+
*/
|
|
3669
|
+
rb_define_method(rb_cDOT3, "beg", node_beg, 0);
|
|
3670
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
3671
|
+
}
|
|
3752
3672
|
|
|
3753
3673
|
/* Document-class: Node::DREGX
|
|
3754
3674
|
* Represents a regular expresion with interpolation. The node is
|
|
@@ -3766,12 +3686,6 @@ void define_node_subclass_methods()
|
|
|
3766
3686
|
rb_iv_set(rb_cDREGX, "__type__", INT2NUM(NODE_DREGX));
|
|
3767
3687
|
rb_define_singleton_method(rb_cDREGX, "members", node_s_members, 0);
|
|
3768
3688
|
|
|
3769
|
-
/* Document-method: lit
|
|
3770
|
-
* a string
|
|
3771
|
-
*/
|
|
3772
|
-
rb_define_method(rb_cDREGX, "lit", node_lit, 0);
|
|
3773
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
3774
|
-
|
|
3775
3689
|
/* Document-method: cflag
|
|
3776
3690
|
* a bitfield containing the options used in the regular
|
|
3777
3691
|
* expression. Valid values include:
|
|
@@ -3789,6 +3703,12 @@ void define_node_subclass_methods()
|
|
|
3789
3703
|
rb_define_method(rb_cDREGX, "cflag", node_cflag, 0);
|
|
3790
3704
|
rb_ary_push(members, rb_str_new2("cflag"));
|
|
3791
3705
|
|
|
3706
|
+
/* Document-method: lit
|
|
3707
|
+
* a string
|
|
3708
|
+
*/
|
|
3709
|
+
rb_define_method(rb_cDREGX, "lit", node_lit, 0);
|
|
3710
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
3711
|
+
|
|
3792
3712
|
/* Document-method: next
|
|
3793
3713
|
* a list of expressions to be appended onto the string
|
|
3794
3714
|
*/
|
|
@@ -3809,12 +3729,6 @@ void define_node_subclass_methods()
|
|
|
3809
3729
|
rb_iv_set(rb_cDREGX_ONCE, "__type__", INT2NUM(NODE_DREGX_ONCE));
|
|
3810
3730
|
rb_define_singleton_method(rb_cDREGX_ONCE, "members", node_s_members, 0);
|
|
3811
3731
|
|
|
3812
|
-
/* Document-method: lit
|
|
3813
|
-
* a string
|
|
3814
|
-
*/
|
|
3815
|
-
rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
|
|
3816
|
-
rb_ary_push(members, rb_str_new2("lit"));
|
|
3817
|
-
|
|
3818
3732
|
/* Document-method: cflag
|
|
3819
3733
|
* a bitfield containing the options used in the regular
|
|
3820
3734
|
* expression. See DREGX for a list of valid values.
|
|
@@ -3822,6 +3736,12 @@ void define_node_subclass_methods()
|
|
|
3822
3736
|
rb_define_method(rb_cDREGX_ONCE, "cflag", node_cflag, 0);
|
|
3823
3737
|
rb_ary_push(members, rb_str_new2("cflag"));
|
|
3824
3738
|
|
|
3739
|
+
/* Document-method: lit
|
|
3740
|
+
* a string
|
|
3741
|
+
*/
|
|
3742
|
+
rb_define_method(rb_cDREGX_ONCE, "lit", node_lit, 0);
|
|
3743
|
+
rb_ary_push(members, rb_str_new2("lit"));
|
|
3744
|
+
|
|
3825
3745
|
/* Document-method: next
|
|
3826
3746
|
* a list of expressions to be appended onto the string
|
|
3827
3747
|
*/
|
|
@@ -3957,17 +3877,17 @@ void define_node_subclass_methods()
|
|
|
3957
3877
|
rb_iv_set(rb_cENSURE, "__type__", INT2NUM(NODE_ENSURE));
|
|
3958
3878
|
rb_define_singleton_method(rb_cENSURE, "members", node_s_members, 0);
|
|
3959
3879
|
|
|
3960
|
-
/* Document-method: head
|
|
3961
|
-
* the expression to protect
|
|
3962
|
-
*/
|
|
3963
|
-
rb_define_method(rb_cENSURE, "head", node_head, 0);
|
|
3964
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
3965
|
-
|
|
3966
3880
|
/* Document-method: ensr
|
|
3967
3881
|
* the expression to evaluate after the head is evaluated
|
|
3968
3882
|
*/
|
|
3969
3883
|
rb_define_method(rb_cENSURE, "ensr", node_ensr, 0);
|
|
3970
3884
|
rb_ary_push(members, rb_str_new2("ensr"));
|
|
3885
|
+
|
|
3886
|
+
/* Document-method: head
|
|
3887
|
+
* the expression to protect
|
|
3888
|
+
*/
|
|
3889
|
+
rb_define_method(rb_cENSURE, "head", node_head, 0);
|
|
3890
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
3971
3891
|
}
|
|
3972
3892
|
|
|
3973
3893
|
/* Document-class: Node::EVSTR
|
|
@@ -4003,38 +3923,6 @@ void define_node_subclass_methods()
|
|
|
4003
3923
|
rb_define_singleton_method(rb_cFALSE, "members", node_s_members, 0);
|
|
4004
3924
|
}
|
|
4005
3925
|
|
|
4006
|
-
/* Document-class: Node::FBODY
|
|
4007
|
-
* A placeholder for a method alias, which can be added to a class by
|
|
4008
|
-
* using alias or alias_method:
|
|
4009
|
-
* alias old new
|
|
4010
|
-
*/
|
|
4011
|
-
{
|
|
4012
|
-
VALUE rb_cFBODY = rb_define_class_under(rb_cNode, "FBODY", rb_cNode);
|
|
4013
|
-
members = rb_ary_new();
|
|
4014
|
-
rb_cNodeSubclass[NODE_FBODY] = rb_cFBODY;
|
|
4015
|
-
rb_iv_set(rb_cFBODY, "__member__", members);
|
|
4016
|
-
rb_iv_set(rb_cFBODY, "__type__", INT2NUM(NODE_FBODY));
|
|
4017
|
-
rb_define_singleton_method(rb_cFBODY, "members", node_s_members, 0);
|
|
4018
|
-
|
|
4019
|
-
/* Document-method: body
|
|
4020
|
-
* the method body
|
|
4021
|
-
*/
|
|
4022
|
-
rb_define_method(rb_cFBODY, "body", node_body, 0);
|
|
4023
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
4024
|
-
|
|
4025
|
-
/* Document-method: cnt
|
|
4026
|
-
* the method's flags
|
|
4027
|
-
*/
|
|
4028
|
-
rb_define_method(rb_cFBODY, "cnt", node_cnt, 0);
|
|
4029
|
-
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4030
|
-
|
|
4031
|
-
/* Document-method: oid
|
|
4032
|
-
* the original name of the method
|
|
4033
|
-
*/
|
|
4034
|
-
rb_define_method(rb_cFBODY, "oid", node_oid, 0);
|
|
4035
|
-
rb_ary_push(members, rb_str_new2("oid"));
|
|
4036
|
-
}
|
|
4037
|
-
|
|
4038
3926
|
/* Document-class: Node::FCALL
|
|
4039
3927
|
* Represents a method call in the form:
|
|
4040
3928
|
* mid(args).
|
|
@@ -4050,17 +3938,17 @@ void define_node_subclass_methods()
|
|
|
4050
3938
|
rb_iv_set(rb_cFCALL, "__type__", INT2NUM(NODE_FCALL));
|
|
4051
3939
|
rb_define_singleton_method(rb_cFCALL, "members", node_s_members, 0);
|
|
4052
3940
|
|
|
4053
|
-
/* Document-method: args
|
|
4054
|
-
* the arguments to the method
|
|
4055
|
-
*/
|
|
4056
|
-
rb_define_method(rb_cFCALL, "args", node_args, 0);
|
|
4057
|
-
rb_ary_push(members, rb_str_new2("args"));
|
|
4058
|
-
|
|
4059
3941
|
/* Document-method: mid
|
|
4060
3942
|
* the method id
|
|
4061
3943
|
*/
|
|
4062
3944
|
rb_define_method(rb_cFCALL, "mid", node_mid, 0);
|
|
4063
3945
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
3946
|
+
|
|
3947
|
+
/* Document-method: args
|
|
3948
|
+
* the arguments to the method
|
|
3949
|
+
*/
|
|
3950
|
+
rb_define_method(rb_cFCALL, "args", node_args, 0);
|
|
3951
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
4064
3952
|
}
|
|
4065
3953
|
|
|
4066
3954
|
/* Document-class: Node::FLIP2
|
|
@@ -4077,11 +3965,12 @@ void define_node_subclass_methods()
|
|
|
4077
3965
|
rb_iv_set(rb_cFLIP2, "__type__", INT2NUM(NODE_FLIP2));
|
|
4078
3966
|
rb_define_singleton_method(rb_cFLIP2, "members", node_s_members, 0);
|
|
4079
3967
|
|
|
4080
|
-
/* Document-method:
|
|
4081
|
-
* the
|
|
3968
|
+
/* Document-method: cnt
|
|
3969
|
+
* the index into the local variable table of the special variable
|
|
3970
|
+
* to use in the flip-flop expression (usually 2 for $_)
|
|
4082
3971
|
*/
|
|
4083
|
-
rb_define_method(rb_cFLIP2, "
|
|
4084
|
-
rb_ary_push(members, rb_str_new2("
|
|
3972
|
+
rb_define_method(rb_cFLIP2, "cnt", node_cnt, 0);
|
|
3973
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4085
3974
|
|
|
4086
3975
|
/* Document-method: end
|
|
4087
3976
|
* the end of the range
|
|
@@ -4089,12 +3978,11 @@ void define_node_subclass_methods()
|
|
|
4089
3978
|
rb_define_method(rb_cFLIP2, "end", node_end, 0);
|
|
4090
3979
|
rb_ary_push(members, rb_str_new2("end"));
|
|
4091
3980
|
|
|
4092
|
-
/* Document-method:
|
|
4093
|
-
* the
|
|
4094
|
-
* to use in the flip-flop expression (usually 2 for $_)
|
|
3981
|
+
/* Document-method: beg
|
|
3982
|
+
* the beginning of the range
|
|
4095
3983
|
*/
|
|
4096
|
-
rb_define_method(rb_cFLIP2, "
|
|
4097
|
-
rb_ary_push(members, rb_str_new2("
|
|
3984
|
+
rb_define_method(rb_cFLIP2, "beg", node_beg, 0);
|
|
3985
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
4098
3986
|
}
|
|
4099
3987
|
|
|
4100
3988
|
/* Document-class: Node::FLIP3
|
|
@@ -4111,11 +3999,12 @@ void define_node_subclass_methods()
|
|
|
4111
3999
|
rb_iv_set(rb_cFLIP3, "__type__", INT2NUM(NODE_FLIP3));
|
|
4112
4000
|
rb_define_singleton_method(rb_cFLIP3, "members", node_s_members, 0);
|
|
4113
4001
|
|
|
4114
|
-
/* Document-method:
|
|
4115
|
-
* the
|
|
4002
|
+
/* Document-method: cnt
|
|
4003
|
+
* the index into the local variable table of the special variable
|
|
4004
|
+
* to use in the flip-flop expression (usually 2 for $_)
|
|
4116
4005
|
*/
|
|
4117
|
-
rb_define_method(rb_cFLIP3, "
|
|
4118
|
-
rb_ary_push(members, rb_str_new2("
|
|
4006
|
+
rb_define_method(rb_cFLIP3, "cnt", node_cnt, 0);
|
|
4007
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4119
4008
|
|
|
4120
4009
|
/* Document-method: end
|
|
4121
4010
|
* the end of the range
|
|
@@ -4123,12 +4012,11 @@ void define_node_subclass_methods()
|
|
|
4123
4012
|
rb_define_method(rb_cFLIP3, "end", node_end, 0);
|
|
4124
4013
|
rb_ary_push(members, rb_str_new2("end"));
|
|
4125
4014
|
|
|
4126
|
-
/* Document-method:
|
|
4127
|
-
* the
|
|
4128
|
-
* to use in the flip-flop expression (usually 2 for $_)
|
|
4015
|
+
/* Document-method: beg
|
|
4016
|
+
* the beginning of the range
|
|
4129
4017
|
*/
|
|
4130
|
-
rb_define_method(rb_cFLIP3, "
|
|
4131
|
-
rb_ary_push(members, rb_str_new2("
|
|
4018
|
+
rb_define_method(rb_cFLIP3, "beg", node_beg, 0);
|
|
4019
|
+
rb_ary_push(members, rb_str_new2("beg"));
|
|
4132
4020
|
}
|
|
4133
4021
|
|
|
4134
4022
|
/* Document-class: Node::FOR
|
|
@@ -4184,6 +4072,8 @@ void define_node_subclass_methods()
|
|
|
4184
4072
|
rb_iv_set(rb_cGASGN, "__member__", members);
|
|
4185
4073
|
rb_iv_set(rb_cGASGN, "__type__", INT2NUM(NODE_GASGN));
|
|
4186
4074
|
rb_define_singleton_method(rb_cGASGN, "members", node_s_members, 0);
|
|
4075
|
+
rb_define_method(rb_cGASGN, "entry", node_entry, 0);
|
|
4076
|
+
rb_ary_push(members, rb_str_new2("entry"));
|
|
4187
4077
|
|
|
4188
4078
|
/* Document-method: value
|
|
4189
4079
|
* an expression whose result is the new value of the global variable
|
|
@@ -4196,8 +4086,6 @@ void define_node_subclass_methods()
|
|
|
4196
4086
|
*/
|
|
4197
4087
|
rb_define_method(rb_cGASGN, "vid", node_vid, 0);
|
|
4198
4088
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4199
|
-
rb_define_method(rb_cGASGN, "entry", node_entry, 0);
|
|
4200
|
-
rb_ary_push(members, rb_str_new2("entry"));
|
|
4201
4089
|
}
|
|
4202
4090
|
|
|
4203
4091
|
/* Document-class: Node::GVAR
|
|
@@ -4210,14 +4098,14 @@ void define_node_subclass_methods()
|
|
|
4210
4098
|
rb_iv_set(rb_cGVAR, "__member__", members);
|
|
4211
4099
|
rb_iv_set(rb_cGVAR, "__type__", INT2NUM(NODE_GVAR));
|
|
4212
4100
|
rb_define_singleton_method(rb_cGVAR, "members", node_s_members, 0);
|
|
4101
|
+
rb_define_method(rb_cGVAR, "entry", node_entry, 0);
|
|
4102
|
+
rb_ary_push(members, rb_str_new2("entry"));
|
|
4213
4103
|
|
|
4214
4104
|
/* Document-method: vid
|
|
4215
4105
|
* the name of the global variable to retrieve, with a leading '$'
|
|
4216
4106
|
*/
|
|
4217
4107
|
rb_define_method(rb_cGVAR, "vid", node_vid, 0);
|
|
4218
4108
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4219
|
-
rb_define_method(rb_cGVAR, "entry", node_entry, 0);
|
|
4220
|
-
rb_ary_push(members, rb_str_new2("entry"));
|
|
4221
4109
|
}
|
|
4222
4110
|
|
|
4223
4111
|
/* Document-class: Node::HASH
|
|
@@ -4292,12 +4180,6 @@ void define_node_subclass_methods()
|
|
|
4292
4180
|
rb_iv_set(rb_cIF, "__type__", INT2NUM(NODE_IF));
|
|
4293
4181
|
rb_define_singleton_method(rb_cIF, "members", node_s_members, 0);
|
|
4294
4182
|
|
|
4295
|
-
/* Document-method: cond
|
|
4296
|
-
* the condition to evaluate
|
|
4297
|
-
*/
|
|
4298
|
-
rb_define_method(rb_cIF, "cond", node_cond, 0);
|
|
4299
|
-
rb_ary_push(members, rb_str_new2("cond"));
|
|
4300
|
-
|
|
4301
4183
|
/* Document-method: body
|
|
4302
4184
|
* the expression to evaluate if the expression is true, or false
|
|
4303
4185
|
* if the expression is empty
|
|
@@ -4305,6 +4187,12 @@ void define_node_subclass_methods()
|
|
|
4305
4187
|
rb_define_method(rb_cIF, "body", node_body, 0);
|
|
4306
4188
|
rb_ary_push(members, rb_str_new2("body"));
|
|
4307
4189
|
|
|
4190
|
+
/* Document-method: cond
|
|
4191
|
+
* the condition to evaluate
|
|
4192
|
+
*/
|
|
4193
|
+
rb_define_method(rb_cIF, "cond", node_cond, 0);
|
|
4194
|
+
rb_ary_push(members, rb_str_new2("cond"));
|
|
4195
|
+
|
|
4308
4196
|
/* Document-method: else
|
|
4309
4197
|
* the expression to evaluate if the expression is false, or false
|
|
4310
4198
|
* if the expression is empty
|
|
@@ -4330,18 +4218,18 @@ void define_node_subclass_methods()
|
|
|
4330
4218
|
rb_define_method(rb_cIFUNC, "cfnc", node_cfnc, 0);
|
|
4331
4219
|
rb_ary_push(members, rb_str_new2("cfnc"));
|
|
4332
4220
|
|
|
4221
|
+
/* Document-method: state
|
|
4222
|
+
* always 0
|
|
4223
|
+
*/
|
|
4224
|
+
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
|
4225
|
+
rb_ary_push(members, rb_str_new2("state"));
|
|
4226
|
+
|
|
4333
4227
|
/* Document-method: tval
|
|
4334
4228
|
* the user-specified data to be passed as the second argument to
|
|
4335
4229
|
* cfnc
|
|
4336
4230
|
*/
|
|
4337
4231
|
rb_define_method(rb_cIFUNC, "tval", node_tval, 0);
|
|
4338
4232
|
rb_ary_push(members, rb_str_new2("tval"));
|
|
4339
|
-
|
|
4340
|
-
/* Document-method: state
|
|
4341
|
-
* always 0
|
|
4342
|
-
*/
|
|
4343
|
-
rb_define_method(rb_cIFUNC, "state", node_state, 0);
|
|
4344
|
-
rb_ary_push(members, rb_str_new2("state"));
|
|
4345
4233
|
}
|
|
4346
4234
|
|
|
4347
4235
|
/* Document-class: Node::ITER
|
|
@@ -4418,6 +4306,8 @@ void define_node_subclass_methods()
|
|
|
4418
4306
|
rb_iv_set(rb_cLASGN, "__member__", members);
|
|
4419
4307
|
rb_iv_set(rb_cLASGN, "__type__", INT2NUM(NODE_LASGN));
|
|
4420
4308
|
rb_define_singleton_method(rb_cLASGN, "members", node_s_members, 0);
|
|
4309
|
+
rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
|
|
4310
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4421
4311
|
|
|
4422
4312
|
/* Document-method: value
|
|
4423
4313
|
* the value to assign to the local variable
|
|
@@ -4430,8 +4320,6 @@ void define_node_subclass_methods()
|
|
|
4430
4320
|
*/
|
|
4431
4321
|
rb_define_method(rb_cLASGN, "vid", node_vid, 0);
|
|
4432
4322
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4433
|
-
rb_define_method(rb_cLASGN, "cnt", node_cnt, 0);
|
|
4434
|
-
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4435
4323
|
}
|
|
4436
4324
|
|
|
4437
4325
|
/* Document-class: Node::LIT
|
|
@@ -4463,14 +4351,14 @@ void define_node_subclass_methods()
|
|
|
4463
4351
|
rb_iv_set(rb_cLVAR, "__member__", members);
|
|
4464
4352
|
rb_iv_set(rb_cLVAR, "__type__", INT2NUM(NODE_LVAR));
|
|
4465
4353
|
rb_define_singleton_method(rb_cLVAR, "members", node_s_members, 0);
|
|
4354
|
+
rb_define_method(rb_cLVAR, "cnt", node_cnt, 0);
|
|
4355
|
+
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4466
4356
|
|
|
4467
4357
|
/* Document-method: vid
|
|
4468
4358
|
* the name of the local variable to retrieve.
|
|
4469
4359
|
*/
|
|
4470
4360
|
rb_define_method(rb_cLVAR, "vid", node_vid, 0);
|
|
4471
4361
|
rb_ary_push(members, rb_str_new2("vid"));
|
|
4472
|
-
rb_define_method(rb_cLVAR, "cnt", node_cnt, 0);
|
|
4473
|
-
rb_ary_push(members, rb_str_new2("cnt"));
|
|
4474
4362
|
}
|
|
4475
4363
|
|
|
4476
4364
|
/* Document-class: Node::MASGN
|
|
@@ -4484,6 +4372,12 @@ void define_node_subclass_methods()
|
|
|
4484
4372
|
rb_iv_set(rb_cMASGN, "__type__", INT2NUM(NODE_MASGN));
|
|
4485
4373
|
rb_define_singleton_method(rb_cMASGN, "members", node_s_members, 0);
|
|
4486
4374
|
|
|
4375
|
+
/* Document-method: value
|
|
4376
|
+
* TODO
|
|
4377
|
+
*/
|
|
4378
|
+
rb_define_method(rb_cMASGN, "value", node_value, 0);
|
|
4379
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4380
|
+
|
|
4487
4381
|
/* Document-method: args
|
|
4488
4382
|
* TODO
|
|
4489
4383
|
*/
|
|
@@ -4495,12 +4389,6 @@ void define_node_subclass_methods()
|
|
|
4495
4389
|
*/
|
|
4496
4390
|
rb_define_method(rb_cMASGN, "head", node_head, 0);
|
|
4497
4391
|
rb_ary_push(members, rb_str_new2("head"));
|
|
4498
|
-
|
|
4499
|
-
/* Document-method: value
|
|
4500
|
-
* TODO
|
|
4501
|
-
*/
|
|
4502
|
-
rb_define_method(rb_cMASGN, "value", node_value, 0);
|
|
4503
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
4504
4392
|
}
|
|
4505
4393
|
|
|
4506
4394
|
/* Document-class: Node::MATCH
|
|
@@ -4563,6 +4451,13 @@ void define_node_subclass_methods()
|
|
|
4563
4451
|
rb_iv_set(rb_cMATCH2, "__type__", INT2NUM(NODE_MATCH2));
|
|
4564
4452
|
rb_define_singleton_method(rb_cMATCH2, "members", node_s_members, 0);
|
|
4565
4453
|
|
|
4454
|
+
/* Document-method: recv
|
|
4455
|
+
* the regular expression on the left hand side of the match
|
|
4456
|
+
* operator
|
|
4457
|
+
*/
|
|
4458
|
+
rb_define_method(rb_cMATCH2, "recv", node_recv, 0);
|
|
4459
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4460
|
+
|
|
4566
4461
|
/* Document-method: value
|
|
4567
4462
|
* the expression on the right hand side of the match operator, or
|
|
4568
4463
|
* an expression returning $_ if there is nothing on the right hand
|
|
@@ -4570,13 +4465,6 @@ void define_node_subclass_methods()
|
|
|
4570
4465
|
*/
|
|
4571
4466
|
rb_define_method(rb_cMATCH2, "value", node_value, 0);
|
|
4572
4467
|
rb_ary_push(members, rb_str_new2("value"));
|
|
4573
|
-
|
|
4574
|
-
/* Document-method: recv
|
|
4575
|
-
* the regular expression on the left hand side of the match
|
|
4576
|
-
* operator
|
|
4577
|
-
*/
|
|
4578
|
-
rb_define_method(rb_cMATCH2, "recv", node_recv, 0);
|
|
4579
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
4580
4468
|
}
|
|
4581
4469
|
|
|
4582
4470
|
/* Document-class: Node::MATCH3
|
|
@@ -4594,17 +4482,17 @@ void define_node_subclass_methods()
|
|
|
4594
4482
|
rb_iv_set(rb_cMATCH3, "__type__", INT2NUM(NODE_MATCH3));
|
|
4595
4483
|
rb_define_singleton_method(rb_cMATCH3, "members", node_s_members, 0);
|
|
4596
4484
|
|
|
4597
|
-
/* Document-method: value
|
|
4598
|
-
* the right hand side of the match
|
|
4599
|
-
*/
|
|
4600
|
-
rb_define_method(rb_cMATCH3, "value", node_value, 0);
|
|
4601
|
-
rb_ary_push(members, rb_str_new2("value"));
|
|
4602
|
-
|
|
4603
4485
|
/* Document-method: recv
|
|
4604
4486
|
* the left hand side of the match
|
|
4605
4487
|
*/
|
|
4606
4488
|
rb_define_method(rb_cMATCH3, "recv", node_recv, 0);
|
|
4607
4489
|
rb_ary_push(members, rb_str_new2("recv"));
|
|
4490
|
+
|
|
4491
|
+
/* Document-method: value
|
|
4492
|
+
* the right hand side of the match
|
|
4493
|
+
*/
|
|
4494
|
+
rb_define_method(rb_cMATCH3, "value", node_value, 0);
|
|
4495
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4608
4496
|
}
|
|
4609
4497
|
|
|
4610
4498
|
/* Document-class: Node::MEMO
|
|
@@ -4630,42 +4518,6 @@ void define_node_subclass_methods()
|
|
|
4630
4518
|
rb_define_singleton_method(rb_cMEMO, "members", node_s_members, 0);
|
|
4631
4519
|
}
|
|
4632
4520
|
|
|
4633
|
-
/* Document-class: Node::METHOD
|
|
4634
|
-
* A placeholder for a method entry in a class's method table.
|
|
4635
|
-
*
|
|
4636
|
-
* On ruby 1.9 this node type is also known as RUBY_VM_METHOD_NODE.
|
|
4637
|
-
* Its use differs from that of NODE_METHOD in that it is used as the
|
|
4638
|
-
* body of another METHOD node and is used to store the method's
|
|
4639
|
-
* instruction sequence.
|
|
4640
|
-
*/
|
|
4641
|
-
{
|
|
4642
|
-
VALUE rb_cMETHOD = rb_define_class_under(rb_cNode, "METHOD", rb_cNode);
|
|
4643
|
-
members = rb_ary_new();
|
|
4644
|
-
rb_cNodeSubclass[NODE_METHOD] = rb_cMETHOD;
|
|
4645
|
-
rb_iv_set(rb_cMETHOD, "__member__", members);
|
|
4646
|
-
rb_iv_set(rb_cMETHOD, "__type__", INT2NUM(NODE_METHOD));
|
|
4647
|
-
rb_define_singleton_method(rb_cMETHOD, "members", node_s_members, 0);
|
|
4648
|
-
|
|
4649
|
-
/* Document-method: body
|
|
4650
|
-
* the body of the method
|
|
4651
|
-
*/
|
|
4652
|
-
rb_define_method(rb_cMETHOD, "body", node_body, 0);
|
|
4653
|
-
rb_ary_push(members, rb_str_new2("body"));
|
|
4654
|
-
|
|
4655
|
-
/* Document-method: clss
|
|
4656
|
-
* the class to which the method was added or the instruction
|
|
4657
|
-
* sequence used to implement this method
|
|
4658
|
-
*/
|
|
4659
|
-
rb_define_method(rb_cMETHOD, "clss", node_clss, 0);
|
|
4660
|
-
rb_ary_push(members, rb_str_new2("clss"));
|
|
4661
|
-
|
|
4662
|
-
/* Document-method: noex
|
|
4663
|
-
* the method's flags
|
|
4664
|
-
*/
|
|
4665
|
-
rb_define_method(rb_cMETHOD, "noex", node_noex, 0);
|
|
4666
|
-
rb_ary_push(members, rb_str_new2("noex"));
|
|
4667
|
-
}
|
|
4668
|
-
|
|
4669
4521
|
/* Document-class: Node::MODULE
|
|
4670
4522
|
* Represents a module definition, e.g.:
|
|
4671
4523
|
* module cpath
|
|
@@ -4685,17 +4537,17 @@ void define_node_subclass_methods()
|
|
|
4685
4537
|
rb_iv_set(rb_cMODULE, "__type__", INT2NUM(NODE_MODULE));
|
|
4686
4538
|
rb_define_singleton_method(rb_cMODULE, "members", node_s_members, 0);
|
|
4687
4539
|
|
|
4688
|
-
/* Document-method: cpath
|
|
4689
|
-
* the name of the module to define
|
|
4690
|
-
*/
|
|
4691
|
-
rb_define_method(rb_cMODULE, "cpath", node_cpath, 0);
|
|
4692
|
-
rb_ary_push(members, rb_str_new2("cpath"));
|
|
4693
|
-
|
|
4694
4540
|
/* Document-method: body
|
|
4695
4541
|
* the body of the module definition
|
|
4696
4542
|
*/
|
|
4697
4543
|
rb_define_method(rb_cMODULE, "body", node_body, 0);
|
|
4698
4544
|
rb_ary_push(members, rb_str_new2("body"));
|
|
4545
|
+
|
|
4546
|
+
/* Document-method: cpath
|
|
4547
|
+
* the name of the module to define
|
|
4548
|
+
*/
|
|
4549
|
+
rb_define_method(rb_cMODULE, "cpath", node_cpath, 0);
|
|
4550
|
+
rb_ary_push(members, rb_str_new2("cpath"));
|
|
4699
4551
|
}
|
|
4700
4552
|
|
|
4701
4553
|
/* Document-class: Node::NEXT
|
|
@@ -4800,11 +4652,11 @@ void define_node_subclass_methods()
|
|
|
4800
4652
|
rb_iv_set(rb_cOP_ASGN1, "__type__", INT2NUM(NODE_OP_ASGN1));
|
|
4801
4653
|
rb_define_singleton_method(rb_cOP_ASGN1, "members", node_s_members, 0);
|
|
4802
4654
|
|
|
4803
|
-
/* Document-method:
|
|
4804
|
-
* the
|
|
4655
|
+
/* Document-method: recv
|
|
4656
|
+
* the receiver of the assignment
|
|
4805
4657
|
*/
|
|
4806
|
-
rb_define_method(rb_cOP_ASGN1, "
|
|
4807
|
-
rb_ary_push(members, rb_str_new2("
|
|
4658
|
+
rb_define_method(rb_cOP_ASGN1, "recv", node_recv, 0);
|
|
4659
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4808
4660
|
|
|
4809
4661
|
/* Document-method: mid
|
|
4810
4662
|
* 0, 1, or the name a method to call to calculate the value of the
|
|
@@ -4813,11 +4665,11 @@ void define_node_subclass_methods()
|
|
|
4813
4665
|
rb_define_method(rb_cOP_ASGN1, "mid", node_mid, 0);
|
|
4814
4666
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
4815
4667
|
|
|
4816
|
-
/* Document-method:
|
|
4817
|
-
* the
|
|
4668
|
+
/* Document-method: args
|
|
4669
|
+
* the arguments to the assigment
|
|
4818
4670
|
*/
|
|
4819
|
-
rb_define_method(rb_cOP_ASGN1, "
|
|
4820
|
-
rb_ary_push(members, rb_str_new2("
|
|
4671
|
+
rb_define_method(rb_cOP_ASGN1, "args", node_args, 0);
|
|
4672
|
+
rb_ary_push(members, rb_str_new2("args"));
|
|
4821
4673
|
}
|
|
4822
4674
|
|
|
4823
4675
|
/* Document-class: Node::OP_ASGN2
|
|
@@ -4840,11 +4692,11 @@ void define_node_subclass_methods()
|
|
|
4840
4692
|
rb_iv_set(rb_cOP_ASGN2, "__type__", INT2NUM(NODE_OP_ASGN2));
|
|
4841
4693
|
rb_define_singleton_method(rb_cOP_ASGN2, "members", node_s_members, 0);
|
|
4842
4694
|
|
|
4843
|
-
/* Document-method:
|
|
4844
|
-
* the
|
|
4695
|
+
/* Document-method: recv
|
|
4696
|
+
* the receiver of the attribute
|
|
4845
4697
|
*/
|
|
4846
|
-
rb_define_method(rb_cOP_ASGN2, "
|
|
4847
|
-
rb_ary_push(members, rb_str_new2("
|
|
4698
|
+
rb_define_method(rb_cOP_ASGN2, "recv", node_recv, 0);
|
|
4699
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4848
4700
|
|
|
4849
4701
|
/* Document-method: next
|
|
4850
4702
|
* another node of type OP_ASGN2 which contains more information
|
|
@@ -4853,11 +4705,11 @@ void define_node_subclass_methods()
|
|
|
4853
4705
|
rb_define_method(rb_cOP_ASGN2, "next", node_next, 0);
|
|
4854
4706
|
rb_ary_push(members, rb_str_new2("next"));
|
|
4855
4707
|
|
|
4856
|
-
/* Document-method:
|
|
4857
|
-
* the
|
|
4708
|
+
/* Document-method: value
|
|
4709
|
+
* the value to assign to the attribute
|
|
4858
4710
|
*/
|
|
4859
|
-
rb_define_method(rb_cOP_ASGN2, "
|
|
4860
|
-
rb_ary_push(members, rb_str_new2("
|
|
4711
|
+
rb_define_method(rb_cOP_ASGN2, "value", node_value, 0);
|
|
4712
|
+
rb_ary_push(members, rb_str_new2("value"));
|
|
4861
4713
|
}
|
|
4862
4714
|
|
|
4863
4715
|
/* Document-class: Node::OP_ASGN2_ARG
|
|
@@ -4873,12 +4725,6 @@ void define_node_subclass_methods()
|
|
|
4873
4725
|
rb_iv_set(rb_cOP_ASGN2_ARG, "__type__", INT2NUM(NODE_OP_ASGN2_ARG));
|
|
4874
4726
|
rb_define_singleton_method(rb_cOP_ASGN2_ARG, "members", node_s_members, 0);
|
|
4875
4727
|
|
|
4876
|
-
/* Document-method: vid
|
|
4877
|
-
* The method to call on the receiver to retrieve the attribute
|
|
4878
|
-
*/
|
|
4879
|
-
rb_define_method(rb_cOP_ASGN2_ARG, "vid", node_vid, 0);
|
|
4880
|
-
rb_ary_push(members, rb_str_new2("vid"));
|
|
4881
|
-
|
|
4882
4728
|
/* Document-method: aid
|
|
4883
4729
|
* The method to call on the receiver to set the attribute
|
|
4884
4730
|
*/
|
|
@@ -4892,6 +4738,12 @@ void define_node_subclass_methods()
|
|
|
4892
4738
|
*/
|
|
4893
4739
|
rb_define_method(rb_cOP_ASGN2_ARG, "mid", node_mid, 0);
|
|
4894
4740
|
rb_ary_push(members, rb_str_new2("mid"));
|
|
4741
|
+
|
|
4742
|
+
/* Document-method: vid
|
|
4743
|
+
* The method to call on the receiver to retrieve the attribute
|
|
4744
|
+
*/
|
|
4745
|
+
rb_define_method(rb_cOP_ASGN2_ARG, "vid", node_vid, 0);
|
|
4746
|
+
rb_ary_push(members, rb_str_new2("vid"));
|
|
4895
4747
|
}
|
|
4896
4748
|
|
|
4897
4749
|
/* Document-class: Node::OP_ASGN_AND
|
|
@@ -4910,18 +4762,18 @@ void define_node_subclass_methods()
|
|
|
4910
4762
|
rb_iv_set(rb_cOP_ASGN_AND, "__type__", INT2NUM(NODE_OP_ASGN_AND));
|
|
4911
4763
|
rb_define_singleton_method(rb_cOP_ASGN_AND, "members", node_s_members, 0);
|
|
4912
4764
|
|
|
4765
|
+
/* Document-method: recv
|
|
4766
|
+
* an expression representing the left hand side of the assignment
|
|
4767
|
+
*/
|
|
4768
|
+
rb_define_method(rb_cOP_ASGN_AND, "recv", node_recv, 0);
|
|
4769
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4770
|
+
|
|
4913
4771
|
/* Document-method: value
|
|
4914
4772
|
* an expression representing the assignment that should be
|
|
4915
4773
|
* performed if the left hand side is true
|
|
4916
4774
|
*/
|
|
4917
4775
|
rb_define_method(rb_cOP_ASGN_AND, "value", node_value, 0);
|
|
4918
4776
|
rb_ary_push(members, rb_str_new2("value"));
|
|
4919
|
-
|
|
4920
|
-
/* Document-method: recv
|
|
4921
|
-
* an expression representing the left hand side of the assignment
|
|
4922
|
-
*/
|
|
4923
|
-
rb_define_method(rb_cOP_ASGN_AND, "recv", node_recv, 0);
|
|
4924
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
4925
4777
|
}
|
|
4926
4778
|
|
|
4927
4779
|
/* Document-class: Node::OP_ASGN_OR
|
|
@@ -4940,6 +4792,12 @@ void define_node_subclass_methods()
|
|
|
4940
4792
|
rb_iv_set(rb_cOP_ASGN_OR, "__type__", INT2NUM(NODE_OP_ASGN_OR));
|
|
4941
4793
|
rb_define_singleton_method(rb_cOP_ASGN_OR, "members", node_s_members, 0);
|
|
4942
4794
|
|
|
4795
|
+
/* Document-method: recv
|
|
4796
|
+
* the receiver of the assignment
|
|
4797
|
+
*/
|
|
4798
|
+
rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
|
|
4799
|
+
rb_ary_push(members, rb_str_new2("recv"));
|
|
4800
|
+
|
|
4943
4801
|
/* Document-method: aid
|
|
4944
4802
|
* if this indicator is nonzero, ruby will check to see if the
|
|
4945
4803
|
* provided expression is defined, otherwise it will assume that
|
|
@@ -4953,12 +4811,6 @@ void define_node_subclass_methods()
|
|
|
4953
4811
|
*/
|
|
4954
4812
|
rb_define_method(rb_cOP_ASGN_OR, "value", node_value, 0);
|
|
4955
4813
|
rb_ary_push(members, rb_str_new2("value"));
|
|
4956
|
-
|
|
4957
|
-
/* Document-method: recv
|
|
4958
|
-
* the receiver of the assignment
|
|
4959
|
-
*/
|
|
4960
|
-
rb_define_method(rb_cOP_ASGN_OR, "recv", node_recv, 0);
|
|
4961
|
-
rb_ary_push(members, rb_str_new2("recv"));
|
|
4962
4814
|
}
|
|
4963
4815
|
|
|
4964
4816
|
/* Document-class: Node::OR
|
|
@@ -4976,17 +4828,17 @@ void define_node_subclass_methods()
|
|
|
4976
4828
|
rb_iv_set(rb_cOR, "__type__", INT2NUM(NODE_OR));
|
|
4977
4829
|
rb_define_singleton_method(rb_cOR, "members", node_s_members, 0);
|
|
4978
4830
|
|
|
4979
|
-
/* Document-method: first
|
|
4980
|
-
* the expression on the left hand side
|
|
4981
|
-
*/
|
|
4982
|
-
rb_define_method(rb_cOR, "first", node_1st, 0);
|
|
4983
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
4984
|
-
|
|
4985
4831
|
/* Document-method: second
|
|
4986
4832
|
* the expression on the right hand side
|
|
4987
4833
|
*/
|
|
4988
4834
|
rb_define_method(rb_cOR, "second", node_2nd, 0);
|
|
4989
4835
|
rb_ary_push(members, rb_str_new2("second"));
|
|
4836
|
+
|
|
4837
|
+
/* Document-method: first
|
|
4838
|
+
* the expression on the left hand side
|
|
4839
|
+
*/
|
|
4840
|
+
rb_define_method(rb_cOR, "first", node_1st, 0);
|
|
4841
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
4990
4842
|
}
|
|
4991
4843
|
|
|
4992
4844
|
/* Document-class: Node::POSTEXE
|
|
@@ -5038,11 +4890,11 @@ void define_node_subclass_methods()
|
|
|
5038
4890
|
rb_iv_set(rb_cRESBODY, "__type__", INT2NUM(NODE_RESBODY));
|
|
5039
4891
|
rb_define_singleton_method(rb_cRESBODY, "members", node_s_members, 0);
|
|
5040
4892
|
|
|
5041
|
-
/* Document-method:
|
|
5042
|
-
* the
|
|
4893
|
+
/* Document-method: body
|
|
4894
|
+
* the expresion to evaluate if the exception type matches
|
|
5043
4895
|
*/
|
|
5044
|
-
rb_define_method(rb_cRESBODY, "
|
|
5045
|
-
rb_ary_push(members, rb_str_new2("
|
|
4896
|
+
rb_define_method(rb_cRESBODY, "body", node_body, 0);
|
|
4897
|
+
rb_ary_push(members, rb_str_new2("body"));
|
|
5046
4898
|
|
|
5047
4899
|
/* Document-method: args
|
|
5048
4900
|
* the expression type to match against
|
|
@@ -5050,11 +4902,11 @@ void define_node_subclass_methods()
|
|
|
5050
4902
|
rb_define_method(rb_cRESBODY, "args", node_args, 0);
|
|
5051
4903
|
rb_ary_push(members, rb_str_new2("args"));
|
|
5052
4904
|
|
|
5053
|
-
/* Document-method:
|
|
5054
|
-
* the
|
|
4905
|
+
/* Document-method: head
|
|
4906
|
+
* the next rescue
|
|
5055
4907
|
*/
|
|
5056
|
-
rb_define_method(rb_cRESBODY, "
|
|
5057
|
-
rb_ary_push(members, rb_str_new2("
|
|
4908
|
+
rb_define_method(rb_cRESBODY, "head", node_head, 0);
|
|
4909
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
5058
4910
|
}
|
|
5059
4911
|
|
|
5060
4912
|
/* Document-class: Node::RESCUE
|
|
@@ -5094,11 +4946,11 @@ void define_node_subclass_methods()
|
|
|
5094
4946
|
rb_iv_set(rb_cRESCUE, "__type__", INT2NUM(NODE_RESCUE));
|
|
5095
4947
|
rb_define_singleton_method(rb_cRESCUE, "members", node_s_members, 0);
|
|
5096
4948
|
|
|
5097
|
-
/* Document-method:
|
|
5098
|
-
* the
|
|
4949
|
+
/* Document-method: resq
|
|
4950
|
+
* the expression to be evaluated if an exception is raised
|
|
5099
4951
|
*/
|
|
5100
|
-
rb_define_method(rb_cRESCUE, "
|
|
5101
|
-
rb_ary_push(members, rb_str_new2("
|
|
4952
|
+
rb_define_method(rb_cRESCUE, "resq", node_resq, 0);
|
|
4953
|
+
rb_ary_push(members, rb_str_new2("resq"));
|
|
5102
4954
|
|
|
5103
4955
|
/* Document-method: else
|
|
5104
4956
|
* the expression to be evaluated if no exception is raised
|
|
@@ -5106,11 +4958,11 @@ void define_node_subclass_methods()
|
|
|
5106
4958
|
rb_define_method(rb_cRESCUE, "else", node_else, 0);
|
|
5107
4959
|
rb_ary_push(members, rb_str_new2("else"));
|
|
5108
4960
|
|
|
5109
|
-
/* Document-method:
|
|
5110
|
-
* the
|
|
4961
|
+
/* Document-method: head
|
|
4962
|
+
* the body of the block to evaluate
|
|
5111
4963
|
*/
|
|
5112
|
-
rb_define_method(rb_cRESCUE, "
|
|
5113
|
-
rb_ary_push(members, rb_str_new2("
|
|
4964
|
+
rb_define_method(rb_cRESCUE, "head", node_head, 0);
|
|
4965
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
5114
4966
|
}
|
|
5115
4967
|
|
|
5116
4968
|
/* Document-class: Node::RETRY
|
|
@@ -5389,10 +5241,10 @@ void define_node_subclass_methods()
|
|
|
5389
5241
|
rb_iv_set(rb_cVALIAS, "__member__", members);
|
|
5390
5242
|
rb_iv_set(rb_cVALIAS, "__type__", INT2NUM(NODE_VALIAS));
|
|
5391
5243
|
rb_define_singleton_method(rb_cVALIAS, "members", node_s_members, 0);
|
|
5392
|
-
rb_define_method(rb_cVALIAS, "first", node_1st, 0);
|
|
5393
|
-
rb_ary_push(members, rb_str_new2("first"));
|
|
5394
5244
|
rb_define_method(rb_cVALIAS, "second", node_2nd, 0);
|
|
5395
5245
|
rb_ary_push(members, rb_str_new2("second"));
|
|
5246
|
+
rb_define_method(rb_cVALIAS, "first", node_1st, 0);
|
|
5247
|
+
rb_ary_push(members, rb_str_new2("first"));
|
|
5396
5248
|
}
|
|
5397
5249
|
|
|
5398
5250
|
/* Document-class: Node::VCALL
|
|
@@ -5452,12 +5304,6 @@ void define_node_subclass_methods()
|
|
|
5452
5304
|
rb_iv_set(rb_cWHEN, "__type__", INT2NUM(NODE_WHEN));
|
|
5453
5305
|
rb_define_singleton_method(rb_cWHEN, "members", node_s_members, 0);
|
|
5454
5306
|
|
|
5455
|
-
/* Document-method: head
|
|
5456
|
-
* a value to compare against, or a condition to be tested
|
|
5457
|
-
*/
|
|
5458
|
-
rb_define_method(rb_cWHEN, "head", node_head, 0);
|
|
5459
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
5460
|
-
|
|
5461
5307
|
/* Document-method: body
|
|
5462
5308
|
* an expression to evaluate if the condition evaluates to true
|
|
5463
5309
|
*/
|
|
@@ -5469,6 +5315,12 @@ void define_node_subclass_methods()
|
|
|
5469
5315
|
*/
|
|
5470
5316
|
rb_define_method(rb_cWHEN, "next", node_next, 0);
|
|
5471
5317
|
rb_ary_push(members, rb_str_new2("next"));
|
|
5318
|
+
|
|
5319
|
+
/* Document-method: head
|
|
5320
|
+
* a value to compare against, or a condition to be tested
|
|
5321
|
+
*/
|
|
5322
|
+
rb_define_method(rb_cWHEN, "head", node_head, 0);
|
|
5323
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
5472
5324
|
}
|
|
5473
5325
|
|
|
5474
5326
|
/* Document-class: Node::WHILE
|
|
@@ -5534,17 +5386,17 @@ void define_node_subclass_methods()
|
|
|
5534
5386
|
rb_iv_set(rb_cYIELD, "__type__", INT2NUM(NODE_YIELD));
|
|
5535
5387
|
rb_define_singleton_method(rb_cYIELD, "members", node_s_members, 0);
|
|
5536
5388
|
|
|
5537
|
-
/* Document-method: head
|
|
5538
|
-
* the value to yield
|
|
5539
|
-
*/
|
|
5540
|
-
rb_define_method(rb_cYIELD, "head", node_head, 0);
|
|
5541
|
-
rb_ary_push(members, rb_str_new2("head"));
|
|
5542
|
-
|
|
5543
5389
|
/* Document-method: state
|
|
5544
5390
|
* if nonzero, splats the value before yielding
|
|
5545
5391
|
*/
|
|
5546
5392
|
rb_define_method(rb_cYIELD, "state", node_state, 0);
|
|
5547
5393
|
rb_ary_push(members, rb_str_new2("state"));
|
|
5394
|
+
|
|
5395
|
+
/* Document-method: head
|
|
5396
|
+
* the value to yield
|
|
5397
|
+
*/
|
|
5398
|
+
rb_define_method(rb_cYIELD, "head", node_head, 0);
|
|
5399
|
+
rb_ary_push(members, rb_str_new2("head"));
|
|
5548
5400
|
}
|
|
5549
5401
|
|
|
5550
5402
|
/* Document-class: Node::ZARRAY
|