ruby-internal 0.7.3 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
vm.h -
|
4
4
|
|
5
|
-
$Author:
|
5
|
+
$Author: yugui $
|
6
6
|
created at: 04/01/01 16:56:59 JST
|
7
7
|
|
8
8
|
Copyright (C) 2004-2007 Koichi Sasada
|
9
9
|
|
10
10
|
**********************************************************************/
|
11
11
|
|
12
|
-
#ifndef
|
13
|
-
#define
|
12
|
+
#ifndef RUBY_VM_EXEC_H
|
13
|
+
#define RUBY_VM_EXEC_H
|
14
14
|
|
15
15
|
typedef long OFFSET;
|
16
16
|
typedef unsigned long lindex_t;
|
@@ -59,9 +59,6 @@ typedef rb_iseq_t *ISEQ;
|
|
59
59
|
#define throwdebug if(0)printf
|
60
60
|
/* #define throwdebug printf */
|
61
61
|
|
62
|
-
#define SDR2(cfp) vm_stack_dump_raw(GET_THREAD(), (cfp))
|
63
|
-
|
64
|
-
|
65
62
|
/************************************************/
|
66
63
|
#if DISPATCH_XXX
|
67
64
|
error !
|
@@ -184,4 +181,4 @@ default: \
|
|
184
181
|
|
185
182
|
#define SCREG(r) (reg_##r)
|
186
183
|
|
187
|
-
#endif /*
|
184
|
+
#endif /* RUBY_VM_EXEC_H */
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
insnhelper.h - helper macros to implement each instructions
|
4
4
|
|
5
|
-
$Author:
|
5
|
+
$Author: wanabe $
|
6
6
|
created at: 04/01/01 15:50:34 JST
|
7
7
|
|
8
8
|
Copyright (C) 2004-2007 Koichi Sasada
|
@@ -34,32 +34,33 @@
|
|
34
34
|
#define VMDEBUG 3
|
35
35
|
#endif
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
37
|
+
enum {
|
38
|
+
BOP_PLUS,
|
39
|
+
BOP_MINUS,
|
40
|
+
BOP_MULT,
|
41
|
+
BOP_DIV,
|
42
|
+
BOP_MOD,
|
43
|
+
BOP_EQ,
|
44
|
+
BOP_EQQ,
|
45
|
+
BOP_LT,
|
46
|
+
BOP_LE,
|
47
|
+
BOP_LTLT,
|
48
|
+
BOP_AREF,
|
49
|
+
BOP_ASET,
|
50
|
+
BOP_LENGTH,
|
51
|
+
BOP_SIZE,
|
52
|
+
BOP_SUCC,
|
53
|
+
BOP_GT,
|
54
|
+
BOP_GE,
|
55
|
+
BOP_NOT,
|
56
|
+
BOP_NEQ,
|
57
|
+
|
58
|
+
BOP_LAST_
|
59
|
+
};
|
60
|
+
|
61
|
+
extern char ruby_vm_redefined_flag[BOP_LAST_];
|
62
|
+
extern VALUE ruby_vm_const_missing_count;
|
63
|
+
|
63
64
|
|
64
65
|
/**********************************************************/
|
65
66
|
/* deal with stack */
|
@@ -133,10 +134,10 @@ extern VALUE ruby_vm_redefined_flag;
|
|
133
134
|
|
134
135
|
#define GET_PREV_DFP(dfp) ((VALUE *)((dfp)[0] & ~0x03))
|
135
136
|
|
136
|
-
#define GET_GLOBAL(entry) rb_gvar_get((struct
|
137
|
-
#define SET_GLOBAL(entry, val) rb_gvar_set((struct
|
137
|
+
#define GET_GLOBAL(entry) rb_gvar_get((struct rb_global_entry*)entry)
|
138
|
+
#define SET_GLOBAL(entry, val) rb_gvar_set((struct rb_global_entry*)entry, val)
|
138
139
|
|
139
|
-
#define GET_CONST_INLINE_CACHE(dst) ((IC) * (GET_PC() + (dst) +
|
140
|
+
#define GET_CONST_INLINE_CACHE(dst) ((IC) * (GET_PC() + (dst) + 2))
|
140
141
|
|
141
142
|
/**********************************************************/
|
142
143
|
/* deal with values */
|
@@ -151,12 +152,12 @@ extern VALUE ruby_vm_redefined_flag;
|
|
151
152
|
#define COPY_CREF(c1, c2) do { \
|
152
153
|
NODE *__tmp_c2 = (c2); \
|
153
154
|
c1->nd_clss = __tmp_c2->nd_clss; \
|
154
|
-
c1->nd_visi = __tmp_c2->nd_visi
|
155
|
+
c1->nd_visi = __tmp_c2->nd_visi;\
|
155
156
|
c1->nd_next = __tmp_c2->nd_next; \
|
156
157
|
} while (0)
|
157
158
|
|
158
|
-
#define CALL_METHOD(num, blockptr, flag, id,
|
159
|
-
VALUE v = vm_call_method(th, GET_CFP(), num, blockptr, flag, id,
|
159
|
+
#define CALL_METHOD(num, blockptr, flag, id, me, recv) do { \
|
160
|
+
VALUE v = vm_call_method(th, GET_CFP(), num, blockptr, flag, id, me, recv); \
|
160
161
|
if (v == Qundef) { \
|
161
162
|
RESTORE_REGS(); \
|
162
163
|
NEXT_INSN(); \
|
@@ -167,7 +168,8 @@ extern VALUE ruby_vm_redefined_flag;
|
|
167
168
|
} while (0)
|
168
169
|
|
169
170
|
#define GET_BLOCK_PTR() \
|
170
|
-
((rb_block_t *)(GC_GUARDED_PTR_REF(GET_LFP()[0]
|
171
|
+
((rb_block_t *)(GC_GUARDED_PTR_REF(GET_LFP()[0] & \
|
172
|
+
((GET_LFP()[0] & 0x02) - 0x02))))
|
171
173
|
|
172
174
|
/**********************************************************/
|
173
175
|
/* deal with control flow 3: exception */
|
@@ -180,12 +182,27 @@ extern VALUE ruby_vm_redefined_flag;
|
|
180
182
|
|
181
183
|
/* optimize insn */
|
182
184
|
#define FIXNUM_2_P(a, b) ((a) & (b) & 1)
|
183
|
-
#define BASIC_OP_UNREDEFINED_P(op) (LIKELY(
|
185
|
+
#define BASIC_OP_UNREDEFINED_P(op) (LIKELY(ruby_vm_redefined_flag[op] == 0))
|
184
186
|
#define HEAP_CLASS_OF(obj) RBASIC(obj)->klass
|
185
187
|
|
188
|
+
#ifndef USE_IC_FOR_SPECIALIZED_METHOD
|
189
|
+
#define USE_IC_FOR_SPECIALIZED_METHOD 1
|
190
|
+
#endif
|
191
|
+
|
192
|
+
#if USE_IC_FOR_SPECIALIZED_METHOD
|
193
|
+
|
194
|
+
#define CALL_SIMPLE_METHOD(num, id, recv) do { \
|
195
|
+
VALUE klass = CLASS_OF(recv); \
|
196
|
+
CALL_METHOD(num, 0, 0, id, vm_method_search(id, klass, ic), recv); \
|
197
|
+
} while (0)
|
198
|
+
|
199
|
+
#else
|
200
|
+
|
186
201
|
#define CALL_SIMPLE_METHOD(num, id, recv) do { \
|
187
202
|
VALUE klass = CLASS_OF(recv); \
|
188
|
-
CALL_METHOD(num, 0, 0, id,
|
203
|
+
CALL_METHOD(num, 0, 0, id, rb_method_entry(klass, id), recv); \
|
189
204
|
} while (0)
|
190
205
|
|
206
|
+
#endif
|
207
|
+
|
191
208
|
#endif /* RUBY_INSNHELPER_H */
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#ifndef ruby_internal_method__h_
|
2
|
+
#define ruby_internal_method__h_
|
3
|
+
|
4
|
+
#include <ruby.h>
|
5
|
+
|
6
|
+
#ifdef RUBY_VM
|
7
|
+
#include "method.h"
|
8
|
+
#endif
|
9
|
+
|
10
|
+
#include "internal/node/ruby_internal_node.h"
|
11
|
+
|
12
|
+
#ifndef FALSE
|
13
|
+
#define FALSE 0
|
14
|
+
#endif
|
15
|
+
|
16
|
+
#ifndef TRUE
|
17
|
+
#define TRUE (!FALSE)
|
18
|
+
#endif
|
19
|
+
|
20
|
+
struct METHOD {
|
21
|
+
VALUE recv;
|
22
|
+
VALUE rclass;
|
23
|
+
ID id;
|
24
|
+
rb_method_entry_t *me;
|
25
|
+
struct unlinked_method_entry_list_entry *ume;
|
26
|
+
};
|
27
|
+
|
28
|
+
#define METHOD_OCLASS(m) m->klass
|
29
|
+
#define METHOD_RCLASS(m) m->rclass
|
30
|
+
|
31
|
+
#endif
|
32
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#include "classpath.h"
|
2
|
+
|
3
|
+
VALUE
|
4
|
+
class2path(VALUE klass)
|
5
|
+
{
|
6
|
+
VALUE path = rb_class_path(klass);
|
7
|
+
const char *n;
|
8
|
+
|
9
|
+
n = must_not_be_anonymous((TYPE(klass) == T_CLASS ? "class" : "module"), path);
|
10
|
+
if (rb_path_to_class(path) != rb_class_real(klass)) {
|
11
|
+
rb_raise(rb_eTypeError, "%s can't be referred to", n);
|
12
|
+
}
|
13
|
+
return path;
|
14
|
+
}
|
15
|
+
|
16
|
+
VALUE
|
17
|
+
path2class(VALUE path)
|
18
|
+
{
|
19
|
+
VALUE v = rb_path_to_class(path);
|
20
|
+
|
21
|
+
if (TYPE(v) != T_CLASS) {
|
22
|
+
rb_raise(rb_eArgError, "%.*s does not refer to class",
|
23
|
+
(int)RSTRING_LEN(path), RSTRING_PTR(path));
|
24
|
+
}
|
25
|
+
return v;
|
26
|
+
}
|
27
|
+
|
28
|
+
VALUE
|
29
|
+
path2module(VALUE path)
|
30
|
+
{
|
31
|
+
VALUE v = rb_path_to_class(path);
|
32
|
+
|
33
|
+
if (TYPE(v) != T_MODULE) {
|
34
|
+
rb_raise(rb_eArgError, "%.*s does not refer to module",
|
35
|
+
(int)RSTRING_LEN(path), RSTRING_PTR(path));
|
36
|
+
}
|
37
|
+
return v;
|
38
|
+
}
|
39
|
+
|
40
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#ifndef getcfp__h
|
2
|
+
#define getcfp__h
|
3
|
+
|
4
|
+
#include "ruby.h"
|
5
|
+
|
6
|
+
#ifdef RUBY_VM
|
7
|
+
|
8
|
+
#include "vm_core.h"
|
9
|
+
|
10
|
+
static rb_control_frame_t *
|
11
|
+
getcfp(rb_thread_t *th, rb_control_frame_t *cfp)
|
12
|
+
{
|
13
|
+
while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp)) {
|
14
|
+
if (RUBY_VM_NORMAL_ISEQ_P(cfp->iseq)) {
|
15
|
+
return cfp;
|
16
|
+
}
|
17
|
+
cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
|
18
|
+
}
|
19
|
+
return 0;
|
20
|
+
}
|
21
|
+
|
22
|
+
|
23
|
+
#endif
|
24
|
+
|
25
|
+
#endif
|
@@ -0,0 +1,93 @@
|
|
1
|
+
#ifndef global_entry__h_
|
2
|
+
#define global_entry__h_
|
3
|
+
|
4
|
+
st_table * rb_global_tbl;
|
5
|
+
|
6
|
+
#define global_entry rb_global_entry
|
7
|
+
#define gvar_getter_t rb_gvar_getter_t
|
8
|
+
#define gvar_setter_t rb_gvar_setter_t
|
9
|
+
#define gvar_marker_t rb_gvar_marker_t
|
10
|
+
struct trace_var {
|
11
|
+
int removed;
|
12
|
+
void (*func)(VALUE arg, VALUE val);
|
13
|
+
VALUE data;
|
14
|
+
struct trace_var *next;
|
15
|
+
};
|
16
|
+
struct global_variable {
|
17
|
+
int counter;
|
18
|
+
void *data;
|
19
|
+
gvar_getter_t *getter;
|
20
|
+
gvar_setter_t *setter;
|
21
|
+
gvar_marker_t *marker;
|
22
|
+
int block_trace;
|
23
|
+
struct trace_var *trace;
|
24
|
+
};
|
25
|
+
#define undef_getter rb_gvar_undef_getter
|
26
|
+
#define undef_setter rb_gvar_undef_setter
|
27
|
+
#define undef_marker rb_gvar_undef_marker
|
28
|
+
struct global_entry*
|
29
|
+
rb_global_entry(ID id)
|
30
|
+
{
|
31
|
+
struct global_entry *entry;
|
32
|
+
st_data_t data;
|
33
|
+
|
34
|
+
if (!st_lookup(rb_global_tbl, (st_data_t)id, &data)) {
|
35
|
+
struct global_variable *var;
|
36
|
+
entry = ALLOC(struct global_entry);
|
37
|
+
var = ALLOC(struct global_variable);
|
38
|
+
entry->id = id;
|
39
|
+
entry->var = var;
|
40
|
+
var->counter = 1;
|
41
|
+
var->data = 0;
|
42
|
+
var->getter = undef_getter;
|
43
|
+
var->setter = undef_setter;
|
44
|
+
var->marker = undef_marker;
|
45
|
+
|
46
|
+
var->block_trace = 0;
|
47
|
+
var->trace = 0;
|
48
|
+
st_add_direct(rb_global_tbl, id, (st_data_t)entry);
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
entry = (struct global_entry *)data;
|
52
|
+
}
|
53
|
+
return entry;
|
54
|
+
}
|
55
|
+
VALUE
|
56
|
+
undef_getter(ID id, void *data, struct global_variable *var)
|
57
|
+
{
|
58
|
+
rb_warning("global variable `%s' not initialized", rb_id2name(id));
|
59
|
+
|
60
|
+
return Qnil;
|
61
|
+
}
|
62
|
+
void
|
63
|
+
undef_setter(VALUE val, ID id, void *data, struct global_variable *var)
|
64
|
+
{
|
65
|
+
var->getter = val_getter;
|
66
|
+
var->setter = val_setter;
|
67
|
+
var->marker = val_marker;
|
68
|
+
|
69
|
+
var->data = (void*)val;
|
70
|
+
}
|
71
|
+
void
|
72
|
+
undef_marker(VALUE *var)
|
73
|
+
{
|
74
|
+
}
|
75
|
+
VALUE
|
76
|
+
val_getter(ID id, void *data, struct global_variable *var)
|
77
|
+
{
|
78
|
+
return (VALUE)data;
|
79
|
+
}
|
80
|
+
void
|
81
|
+
val_setter(VALUE val, ID id, void *data, struct global_variable *var)
|
82
|
+
{
|
83
|
+
var->data = (void*)val;
|
84
|
+
}
|
85
|
+
void
|
86
|
+
val_marker(VALUE *var)
|
87
|
+
{
|
88
|
+
VALUE data = (VALUE)var;
|
89
|
+
if (data) rb_gc_mark_maybe(data);
|
90
|
+
}
|
91
|
+
|
92
|
+
#endif
|
93
|
+
|
@@ -2,111 +2,102 @@
|
|
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
|
-
{ NODE_ALLOCA, NEN_CFNC,
|
7
|
+
{ NODE_ALLOCA, NEN_CFNC, NEN_CNT, NEN_VALUE, "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
|
-
{ NODE_ARRAY, NEN_HEAD, NEN_ALEN,
|
13
|
+
{ NODE_ARRAY, NEN_NEXT, NEN_HEAD, NEN_ALEN, "ARRAY" },
|
14
14
|
{ NODE_ATTRASGN, NEN_ARGS, NEN_MID, NEN_RECV, "ATTRASGN" },
|
15
|
-
{ NODE_ATTRSET, NEN_VID, NEN_NONE, NEN_NONE, "ATTRSET" },
|
16
15
|
{ NODE_BACK_REF, NEN_NTH, NEN_CNT, NEN_NONE, "BACK_REF" },
|
17
16
|
{ NODE_BEGIN, NEN_BODY, NEN_NONE, NEN_NONE, "BEGIN" },
|
18
|
-
{ NODE_BLOCK,
|
17
|
+
{ NODE_BLOCK, NEN_NEXT, NEN_HEAD, NEN_NONE, "BLOCK" },
|
19
18
|
{ NODE_BLOCK_ARG, NEN_CNT, NEN_NONE, NEN_NONE, "BLOCK_ARG" },
|
20
|
-
{ NODE_BLOCK_PASS,
|
19
|
+
{ NODE_BLOCK_PASS, NEN_ITER, NEN_BODY, NEN_NONE, "BLOCK_PASS" },
|
21
20
|
{ NODE_BMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "BMETHOD" },
|
22
21
|
{ NODE_BREAK, NEN_STTS, NEN_NONE, NEN_NONE, "BREAK" },
|
23
22
|
{ NODE_CALL, NEN_ARGS, NEN_MID, NEN_RECV, "CALL" },
|
24
|
-
{ NODE_CASE, NEN_HEAD, NEN_BODY,
|
25
|
-
{ NODE_CDECL,
|
26
|
-
{
|
27
|
-
{ NODE_CLASS, NEN_CPATH, NEN_BODY, NEN_SUPER, "CLASS" },
|
23
|
+
{ NODE_CASE, NEN_NEXT, NEN_HEAD, NEN_BODY, "CASE" },
|
24
|
+
{ NODE_CDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CDECL" },
|
25
|
+
{ NODE_CLASS, NEN_SUPER, NEN_CPATH, NEN_BODY, "CLASS" },
|
28
26
|
{ NODE_COLON2, NEN_HEAD, NEN_MID, NEN_NONE, "COLON2" },
|
29
27
|
{ NODE_COLON3, NEN_MID, NEN_NONE, NEN_NONE, "COLON3" },
|
30
28
|
{ NODE_CONST, NEN_VID, NEN_NONE, NEN_NONE, "CONST" },
|
31
|
-
{ NODE_CREF, NEN_BODY, NEN_NEXT, NEN_CLSS, "CREF" },
|
32
29
|
{ NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
|
33
|
-
{ NODE_CVASGN,
|
34
|
-
{ NODE_CVDECL,
|
35
|
-
{ NODE_DASGN,
|
36
|
-
{ NODE_DASGN_CURR,
|
30
|
+
{ NODE_CVASGN, NEN_VID, NEN_VALUE, NEN_NONE, "CVASGN" },
|
31
|
+
{ NODE_CVDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CVDECL" },
|
32
|
+
{ NODE_DASGN, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN" },
|
33
|
+
{ NODE_DASGN_CURR, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN_CURR" },
|
37
34
|
{ NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
|
38
|
-
{ NODE_DEFN, NEN_DEFN, NEN_MID,
|
35
|
+
{ NODE_DEFN, NEN_NOEX, NEN_DEFN, NEN_MID, "DEFN" },
|
39
36
|
{ NODE_DEFS, NEN_DEFN, NEN_MID, NEN_RECV, "DEFS" },
|
40
|
-
{
|
41
|
-
{
|
42
|
-
{
|
43
|
-
{
|
44
|
-
{
|
45
|
-
{
|
46
|
-
{ NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
|
37
|
+
{ NODE_DOT2, NEN_STATE, NEN_BEG, NEN_END, "DOT2" },
|
38
|
+
{ NODE_DOT3, NEN_STATE, NEN_BEG, NEN_END, "DOT3" },
|
39
|
+
{ NODE_DREGX, NEN_NEXT, NEN_CFLAG, NEN_LIT, "DREGX" },
|
40
|
+
{ NODE_DREGX_ONCE, NEN_NEXT, NEN_CFLAG, NEN_LIT, "DREGX_ONCE" },
|
41
|
+
{ NODE_DSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DSTR" },
|
42
|
+
{ NODE_DSYM, NEN_NEXT, NEN_LIT, NEN_NONE, "DSYM" },
|
47
43
|
{ NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
|
48
|
-
{ NODE_DXSTR,
|
44
|
+
{ NODE_DXSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DXSTR" },
|
49
45
|
{ NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
|
50
46
|
{ NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
|
51
47
|
{ NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
|
52
|
-
{ NODE_FBODY, NEN_HEAD, NEN_ORIG, NEN_MID, "FBODY" },
|
53
48
|
{ NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
|
54
|
-
{ NODE_FLIP2, NEN_BEG, NEN_END,
|
55
|
-
{ NODE_FLIP3, NEN_BEG, NEN_END,
|
56
|
-
{ NODE_FOR,
|
57
|
-
{ NODE_GASGN,
|
49
|
+
{ NODE_FLIP2, NEN_CNT, NEN_BEG, NEN_END, "FLIP2" },
|
50
|
+
{ NODE_FLIP3, NEN_CNT, NEN_BEG, NEN_END, "FLIP3" },
|
51
|
+
{ NODE_FOR, NEN_ITER, NEN_VAR, NEN_BODY, "FOR" },
|
52
|
+
{ NODE_GASGN, NEN_VID, NEN_ENTRY, NEN_VALUE, "GASGN" },
|
58
53
|
{ NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
|
59
54
|
{ NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
|
60
|
-
{ NODE_IASGN,
|
61
|
-
{ NODE_IF, NEN_COND, NEN_BODY,
|
62
|
-
{ NODE_IFUNC,
|
63
|
-
{ NODE_ITER,
|
55
|
+
{ NODE_IASGN, NEN_VID, NEN_VALUE, NEN_NONE, "IASGN" },
|
56
|
+
{ NODE_IF, NEN_ELSE, NEN_COND, NEN_BODY, "IF" },
|
57
|
+
{ NODE_IFUNC, NEN_TVAL, NEN_STATE, NEN_CFNC, "IFUNC" },
|
58
|
+
{ NODE_ITER, NEN_ITER, NEN_VAR, NEN_BODY, "ITER" },
|
64
59
|
{ NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
|
65
|
-
{ NODE_LASGN,
|
60
|
+
{ NODE_LASGN, NEN_VID, NEN_CNT, NEN_VALUE, "LASGN" },
|
66
61
|
{ NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
|
67
62
|
{ NODE_LVAR, NEN_VID, NEN_CNT, NEN_NONE, "LVAR" },
|
68
63
|
{ NODE_MASGN, NEN_ARGS, NEN_HEAD, NEN_VALUE, "MASGN" },
|
69
64
|
{ NODE_MATCH, NEN_LIT, NEN_VALUE, NEN_NONE, "MATCH" },
|
70
|
-
{ NODE_MATCH2,
|
71
|
-
{ NODE_MATCH3,
|
65
|
+
{ NODE_MATCH2, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH2" },
|
66
|
+
{ NODE_MATCH3, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH3" },
|
72
67
|
{ NODE_MEMO, NEN_NONE, NEN_NONE, NEN_NONE, "MEMO" },
|
73
|
-
{ NODE_METHOD, NEN_BODY, NEN_NOEX, NEN_NONE, "METHOD" },
|
74
68
|
{ NODE_MODULE, NEN_CPATH, NEN_BODY, NEN_NONE, "MODULE" },
|
75
|
-
{ NODE_NEWLINE, NEN_NEXT, NEN_NONE, NEN_NONE, "NEWLINE" },
|
76
69
|
{ NODE_NEXT, NEN_STTS, NEN_NONE, NEN_NONE, "NEXT" },
|
77
70
|
{ NODE_NIL, NEN_NONE, NEN_NONE, NEN_NONE, "NIL" },
|
78
|
-
{ NODE_NOT, NEN_BODY, NEN_NONE, NEN_NONE, "NOT" },
|
79
71
|
{ NODE_NTH_REF, NEN_NTH, NEN_CNT, NEN_NONE, "NTH_REF" },
|
80
72
|
{ NODE_OPT_N, NEN_BODY, NEN_NONE, NEN_NONE, "OPT_N" },
|
81
73
|
{ NODE_OP_ASGN1, NEN_ARGS, NEN_MID, NEN_RECV, "OP_ASGN1" },
|
82
|
-
{ NODE_OP_ASGN2,
|
83
|
-
{ NODE_OP_ASGN2_ARG,
|
84
|
-
{ NODE_OP_ASGN_AND,
|
85
|
-
{ NODE_OP_ASGN_OR, NEN_AID,
|
86
|
-
{ NODE_OR,
|
74
|
+
{ NODE_OP_ASGN2, NEN_NEXT, NEN_RECV, NEN_VALUE, "OP_ASGN2" },
|
75
|
+
{ NODE_OP_ASGN2_ARG, NEN_AID, NEN_MID, NEN_VID, "OP_ASGN2_ARG" },
|
76
|
+
{ NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
|
77
|
+
{ NODE_OP_ASGN_OR, NEN_AID, NEN_RECV, NEN_VALUE, "OP_ASGN_OR" },
|
78
|
+
{ NODE_OR, NEN_2ND, NEN_1ST, NEN_NONE, "OR" },
|
87
79
|
{ NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
|
88
80
|
{ NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
|
89
|
-
{ NODE_RESBODY,
|
90
|
-
{ NODE_RESCUE,
|
81
|
+
{ NODE_RESBODY, NEN_ARGS, NEN_HEAD, NEN_BODY, "RESBODY" },
|
82
|
+
{ NODE_RESCUE, NEN_ELSE, NEN_HEAD, NEN_RESQ, "RESCUE" },
|
91
83
|
{ NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
|
92
84
|
{ NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
|
93
|
-
{ NODE_SCLASS,
|
94
|
-
{ NODE_SCOPE, NEN_TBL, NEN_RVAL,
|
85
|
+
{ NODE_SCLASS, NEN_RECV, NEN_BODY, NEN_NONE, "SCLASS" },
|
86
|
+
{ NODE_SCOPE, NEN_NEXT, NEN_TBL, NEN_RVAL, "SCOPE" },
|
95
87
|
{ NODE_SELF, NEN_NONE, NEN_NONE, NEN_NONE, "SELF" },
|
96
88
|
{ NODE_SPLAT, NEN_HEAD, NEN_NONE, NEN_NONE, "SPLAT" },
|
97
89
|
{ NODE_STR, NEN_LIT, NEN_NONE, NEN_NONE, "STR" },
|
98
90
|
{ NODE_SUPER, NEN_ARGS, NEN_NONE, NEN_NONE, "SUPER" },
|
99
|
-
{ NODE_SVALUE, NEN_HEAD, NEN_NONE, NEN_NONE, "SVALUE" },
|
100
91
|
{ NODE_TO_ARY, NEN_HEAD, NEN_NONE, NEN_NONE, "TO_ARY" },
|
101
92
|
{ NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
|
102
|
-
{ NODE_UNDEF,
|
103
|
-
{ NODE_UNTIL,
|
104
|
-
{ NODE_VALIAS,
|
93
|
+
{ NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
|
94
|
+
{ NODE_UNTIL, NEN_STATE, NEN_COND, NEN_BODY, "UNTIL" },
|
95
|
+
{ NODE_VALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "VALIAS" },
|
105
96
|
{ NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
|
106
|
-
{ NODE_WHEN, NEN_HEAD, NEN_BODY,
|
107
|
-
{ NODE_WHILE,
|
97
|
+
{ NODE_WHEN, NEN_NEXT, NEN_HEAD, NEN_BODY, "WHEN" },
|
98
|
+
{ NODE_WHILE, NEN_STATE, NEN_COND, NEN_BODY, "WHILE" },
|
108
99
|
{ NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
|
109
|
-
{ NODE_YIELD,
|
100
|
+
{ NODE_YIELD, NEN_STATE, NEN_HEAD, NEN_NONE, "YIELD" },
|
110
101
|
{ NODE_ZARRAY, NEN_NONE, NEN_NONE, NEN_NONE, "ZARRAY" },
|
111
102
|
{ NODE_ZSUPER, NEN_NONE, NEN_NONE, NEN_NONE, "ZSUPER" },
|
112
103
|
{ NODE_LAST, NEN_NONE, NEN_NONE, NEN_NONE, "LAST" },
|