ruby-internal 0.8.0 → 0.8.1

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.
Files changed (36) hide show
  1. data/Rakefile +1 -1
  2. data/bin/ruby-internal-node-dump +1 -1
  3. data/bin/ruby-internal-obfuscate +1 -1
  4. data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +45 -45
  5. data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +259 -258
  6. data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +43 -43
  7. data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +261 -260
  8. data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +45 -45
  9. data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +261 -260
  10. data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +37 -37
  11. data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +219 -218
  12. data/ext/cached/ruby-1.9.1/internal/node/global_entry.h +4 -0
  13. data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +41 -41
  14. data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +231 -230
  15. data/ext/cached/ruby-1.9.2/internal/node/global_entry.h +4 -0
  16. data/ext/cached/ruby-1.9.2/internal/node/node_type_descrip.c +37 -37
  17. data/ext/cached/ruby-1.9.2/internal/node/nodeinfo.c +206 -205
  18. data/ext/cached/ruby-1.9.3/internal/node/global_entry.h +4 -0
  19. data/ext/cached/ruby-1.9.3/internal/node/node_type_descrip.c +41 -41
  20. data/ext/cached/ruby-1.9.3/internal/node/nodeinfo.c +230 -229
  21. data/ext/internal/binding/block.h +0 -20
  22. data/ext/internal/method/internal_method.h +5 -5
  23. data/ext/internal/module/classpath.c +13 -18
  24. data/ext/internal/module/classpath.h +3 -3
  25. data/ext/internal/module/getcfp.h +12 -0
  26. data/ext/internal/node/block.h +0 -20
  27. data/ext/internal/node/global_entry.h +31 -42
  28. data/ext/internal/node/global_entry.h.rpp +1 -1
  29. data/ext/internal/node/node_type_descrip.c +38 -47
  30. data/ext/internal/node/nodeinfo.c +311 -626
  31. data/ext/internal/node/nodeinfo.h +4 -1
  32. data/ext/internal/proc/block.h +0 -20
  33. data/ext/internal/tag/tag.h +0 -10
  34. data/ext/internal/vm/instruction/insns_info.c +5974 -3
  35. data/ext/internal/vm/instruction/insns_info.h +878 -0
  36. metadata +37 -51
@@ -7,26 +7,6 @@
7
7
  #include "env.h"
8
8
  #endif
9
9
 
10
- struct BLOCK {
11
- NODE *var;
12
- NODE *body;
13
- VALUE self;
14
- struct FRAME frame;
15
- struct SCOPE *scope;
16
- VALUE klass;
17
- NODE *cref;
18
- int iter;
19
- int vmode;
20
- int flags;
21
- int uniq;
22
- struct RVarmap *dyna_vars;
23
- VALUE orig_thread;
24
- VALUE wrapper;
25
- VALUE block_obj;
26
- struct BLOCK *outer;
27
- struct BLOCK *prev;
28
- };
29
-
30
10
 
31
11
  #endif
32
12
 
@@ -18,15 +18,15 @@
18
18
  #endif
19
19
 
20
20
  struct METHOD {
21
- VALUE klass, rklass;
22
21
  VALUE recv;
23
- ID id, oid;
24
- int safe_level;
25
- NODE *body;
22
+ VALUE rclass;
23
+ ID id;
24
+ rb_method_entry_t *me;
25
+ struct unlinked_method_entry_list_entry *ume;
26
26
  };
27
27
 
28
28
  #define METHOD_OCLASS(m) m->klass
29
- #define METHOD_RCLASS(m) m->rklass
29
+ #define METHOD_RCLASS(m) m->rclass
30
30
 
31
31
  #endif
32
32
 
@@ -1,43 +1,38 @@
1
1
  #include "classpath.h"
2
2
 
3
3
  VALUE
4
- class2path(klass)
5
- VALUE klass;
4
+ class2path(VALUE klass)
6
5
  {
7
6
  VALUE path = rb_class_path(klass);
8
- char *n = RSTRING(path)->ptr;
7
+ const char *n;
9
8
 
10
- if (n[0] == '#') {
11
- rb_raise(rb_eTypeError, "can't dump anonymous %s %s",
12
- (TYPE(klass) == T_CLASS ? "class" : "module"),
13
- n);
14
- }
15
- if (rb_path2class(n) != rb_class_real(klass)) {
16
- rb_raise(rb_eTypeError, "%s can't be referred", n);
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);
17
12
  }
18
13
  return path;
19
14
  }
20
15
 
21
16
  VALUE
22
- path2class(path)
23
- const char *path;
17
+ path2class(VALUE path)
24
18
  {
25
- VALUE v = rb_path2class(path);
19
+ VALUE v = rb_path_to_class(path);
26
20
 
27
21
  if (TYPE(v) != T_CLASS) {
28
- rb_raise(rb_eArgError, "%s does not refer class", path);
22
+ rb_raise(rb_eArgError, "%.*s does not refer to class",
23
+ (int)RSTRING_LEN(path), RSTRING_PTR(path));
29
24
  }
30
25
  return v;
31
26
  }
32
27
 
33
28
  VALUE
34
- path2module(path)
35
- const char *path;
29
+ path2module(VALUE path)
36
30
  {
37
- VALUE v = rb_path2class(path);
31
+ VALUE v = rb_path_to_class(path);
38
32
 
39
33
  if (TYPE(v) != T_MODULE) {
40
- rb_raise(rb_eArgError, "%s does not refer module", path);
34
+ rb_raise(rb_eArgError, "%.*s does not refer to module",
35
+ (int)RSTRING_LEN(path), RSTRING_PTR(path));
41
36
  }
42
37
  return v;
43
38
  }
@@ -4,13 +4,13 @@
4
4
  #include "ruby.h"
5
5
 
6
6
  VALUE class2path(
7
- VALUE klass
7
+
8
8
  );
9
9
  VALUE path2class(
10
- const char *path
10
+
11
11
  );
12
12
  VALUE path2module(
13
- const char *path
13
+
14
14
  );
15
15
 
16
16
  #endif
@@ -7,6 +7,18 @@
7
7
 
8
8
  #include "vm_core.h"
9
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
+
10
22
 
11
23
  #endif
12
24
 
@@ -7,26 +7,6 @@
7
7
  #include "env.h"
8
8
  #endif
9
9
 
10
- struct BLOCK {
11
- NODE *var;
12
- NODE *body;
13
- VALUE self;
14
- struct FRAME frame;
15
- struct SCOPE *scope;
16
- VALUE klass;
17
- NODE *cref;
18
- int iter;
19
- int vmode;
20
- int flags;
21
- int uniq;
22
- struct RVarmap *dyna_vars;
23
- VALUE orig_thread;
24
- VALUE wrapper;
25
- VALUE block_obj;
26
- struct BLOCK *outer;
27
- struct BLOCK *prev;
28
- };
29
-
30
10
 
31
11
  #endif
32
12
 
@@ -3,39 +3,39 @@
3
3
 
4
4
  st_table * rb_global_tbl;
5
5
 
6
+ #define global_variable rb_global_variable
7
+ #define global_entry rb_global_entry
8
+ #define gvar_getter_t rb_gvar_getter_t
9
+ #define gvar_setter_t rb_gvar_setter_t
10
+ #define gvar_marker_t rb_gvar_marker_t
6
11
  struct trace_var {
7
12
  int removed;
8
- void (*func)();
13
+ void (*func)(VALUE arg, VALUE val);
9
14
  VALUE data;
10
15
  struct trace_var *next;
11
16
  };
12
17
  struct global_variable {
13
18
  int counter;
14
19
  void *data;
15
- VALUE (*getter)();
16
- void (*setter)();
17
- void (*marker)();
20
+ gvar_getter_t *getter;
21
+ gvar_setter_t *setter;
22
+ gvar_marker_t *marker;
18
23
  int block_trace;
19
24
  struct trace_var *trace;
20
25
  };
21
- struct global_entry {
22
- struct global_variable *var;
23
- ID id;
24
- };
25
- static VALUE undef_getter();
26
- static void undef_setter();
27
- static void undef_marker();
28
- static VALUE val_getter();
29
- static void val_setter();
30
- static void val_marker();
26
+ #define undef_getter rb_gvar_undef_getter
27
+ #define undef_setter rb_gvar_undef_setter
28
+ #define undef_marker rb_gvar_undef_marker
29
+ #define val_getter rb_gvar_val_getter
30
+ #define val_setter rb_gvar_val_setter
31
+ #define val_marker rb_gvar_val_marker
31
32
  struct global_entry*
32
- rb_global_entry(id)
33
- ID id;
33
+ rb_global_entry(ID id)
34
34
  {
35
35
  struct global_entry *entry;
36
36
  st_data_t data;
37
37
 
38
- if (!st_lookup(rb_global_tbl, id, &data)) {
38
+ if (!st_lookup(rb_global_tbl, (st_data_t)id, &data)) {
39
39
  struct global_variable *var;
40
40
  entry = ALLOC(struct global_entry);
41
41
  var = ALLOC(struct global_variable);
@@ -56,20 +56,15 @@ rb_global_entry(id)
56
56
  }
57
57
  return entry;
58
58
  }
59
- static VALUE
60
- undef_getter(id)
61
- ID id;
59
+ VALUE
60
+ undef_getter(ID id, void *data, struct global_variable *var)
62
61
  {
63
62
  rb_warning("global variable `%s' not initialized", rb_id2name(id));
64
63
 
65
64
  return Qnil;
66
65
  }
67
- static void
68
- undef_setter(val, id, data, var)
69
- VALUE val;
70
- ID id;
71
- void *data;
72
- struct global_variable *var;
66
+ void
67
+ undef_setter(VALUE val, ID id, void *data, struct global_variable *var)
73
68
  {
74
69
  var->getter = val_getter;
75
70
  var->setter = val_setter;
@@ -77,30 +72,24 @@ undef_setter(val, id, data, var)
77
72
 
78
73
  var->data = (void*)val;
79
74
  }
80
- static void
81
- undef_marker()
75
+ void
76
+ undef_marker(VALUE *var)
82
77
  {
83
78
  }
84
- static VALUE
85
- val_getter(id, val)
86
- ID id;
87
- VALUE val;
79
+ VALUE
80
+ val_getter(ID id, void *data, struct global_variable *var)
88
81
  {
89
- return val;
82
+ return (VALUE)data;
90
83
  }
91
- static void
92
- val_setter(val, id, data, var)
93
- VALUE val;
94
- ID id;
95
- void *data;
96
- struct global_variable *var;
84
+ void
85
+ val_setter(VALUE val, ID id, void *data, struct global_variable *var)
97
86
  {
98
87
  var->data = (void*)val;
99
88
  }
100
- static void
101
- val_marker(data)
102
- VALUE data;
89
+ void
90
+ val_marker(VALUE *var)
103
91
  {
92
+ VALUE data = (VALUE)var;
104
93
  if (data) rb_gc_mark_maybe(data);
105
94
  }
106
95
 
@@ -28,7 +28,7 @@ st_table * rb_global_tbl;
28
28
  puts prev_line
29
29
  write = true
30
30
  stopwrite = false
31
- when /^#define (global_entry|gvar_getter_t|gvar_setter_t|gvar_marker_t|undef_getter|undef_setter|undef_marker)/
31
+ when /^#define (global_entry|global_variable|gvar_getter_t|gvar_setter_t|gvar_marker_t|undef_getter|undef_setter|undef_marker|val_getter|val_setter|val_marker)/
32
32
  puts line
33
33
  when /^\}/
34
34
  stopwrite = true
@@ -2,109 +2,100 @@
2
2
  #include "version.h"
3
3
 
4
4
  Node_Type_Descrip node_type_descrips_unsorted[] = {
5
- { NODE_ALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "ALIAS" },
5
+ { NODE_ALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "ALIAS" },
6
6
  #ifdef HAVE_NODE_ALLOCA
7
- { NODE_ALLOCA, NEN_CNT, NEN_CFNC, NEN_VALUE, "ALLOCA" },
7
+ { NODE_ALLOCA, NEN_CFNC, NEN_VALUE, NEN_CNT, "ALLOCA" },
8
8
  #endif
9
9
  { NODE_AND, NEN_2ND, NEN_1ST, NEN_NONE, "AND" },
10
- { NODE_ARGS, NEN_REST, NEN_CNT, NEN_OPT, "ARGS" },
10
+ { NODE_ARGS, NEN_REST, NEN_OPT, NEN_CNT, "ARGS" },
11
11
  { NODE_ARGSCAT, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSCAT" },
12
12
  { NODE_ARGSPUSH, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSPUSH" },
13
- { NODE_ARRAY, NEN_NEXT, NEN_HEAD, NEN_ALEN, "ARRAY" },
14
- { NODE_ATTRASGN, NEN_ARGS, NEN_RECV, NEN_MID, "ATTRASGN" },
15
- { NODE_ATTRSET, NEN_VID, NEN_NONE, NEN_NONE, "ATTRSET" },
16
- { NODE_BACK_REF, NEN_CNT, NEN_NTH, NEN_NONE, "BACK_REF" },
13
+ { NODE_ARRAY, NEN_ALEN, NEN_HEAD, NEN_NEXT, "ARRAY" },
14
+ { NODE_ATTRASGN, NEN_RECV, NEN_ARGS, NEN_MID, "ATTRASGN" },
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, NEN_NEXT, NEN_HEAD, NEN_NONE, "BLOCK" },
17
+ { NODE_BLOCK, NEN_HEAD, NEN_NEXT, NEN_NONE, "BLOCK" },
19
18
  { NODE_BLOCK_ARG, NEN_CNT, NEN_NONE, NEN_NONE, "BLOCK_ARG" },
20
- { NODE_BLOCK_PASS, NEN_ITER, NEN_BODY, NEN_NONE, "BLOCK_PASS" },
19
+ { NODE_BLOCK_PASS, NEN_BODY, NEN_ITER, 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_NEXT, NEN_HEAD, NEN_BODY, "CASE" },
23
+ { NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
25
24
  { NODE_CDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CDECL" },
26
- { NODE_CFUNC, NEN_ARGC, NEN_CFNC, NEN_NONE, "CFUNC" },
27
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_NEXT, NEN_BODY, NEN_CLSS, "CREF" },
32
29
  { NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
33
30
  { NODE_CVASGN, NEN_VALUE, NEN_VID, NEN_NONE, "CVASGN" },
34
31
  { NODE_CVDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CVDECL" },
35
32
  { NODE_DASGN, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN" },
36
33
  { NODE_DASGN_CURR, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN_CURR" },
37
34
  { NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
38
- { NODE_DEFN, NEN_MID, NEN_NOEX, NEN_DEFN, "DEFN" },
39
- { NODE_DEFS, NEN_RECV, NEN_MID, NEN_DEFN, "DEFS" },
40
- { NODE_DMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "DMETHOD" },
41
- { NODE_DOT2, NEN_END, NEN_STATE, NEN_BEG, "DOT2" },
42
- { NODE_DOT3, NEN_END, NEN_STATE, NEN_BEG, "DOT3" },
43
- { NODE_DREGX, NEN_NEXT, NEN_LIT, NEN_CFLAG, "DREGX" },
44
- { NODE_DREGX_ONCE, NEN_NEXT, NEN_LIT, NEN_CFLAG, "DREGX_ONCE" },
45
- { NODE_DSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DSTR" },
46
- { NODE_DSYM, NEN_NEXT, NEN_LIT, NEN_NONE, "DSYM" },
35
+ { NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
36
+ { NODE_DEFS, NEN_DEFN, NEN_RECV, NEN_MID, "DEFS" },
37
+ { NODE_DOT2, NEN_BEG, NEN_END, NEN_STATE, "DOT2" },
38
+ { NODE_DOT3, NEN_BEG, NEN_END, NEN_STATE, "DOT3" },
39
+ { NODE_DREGX, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX" },
40
+ { NODE_DREGX_ONCE, NEN_LIT, NEN_NEXT, NEN_CFLAG, "DREGX_ONCE" },
41
+ { NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
42
+ { NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
47
43
  { NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
48
- { NODE_DXSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DXSTR" },
44
+ { NODE_DXSTR, NEN_LIT, NEN_NEXT, 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_ORIG, NEN_HEAD, NEN_MID, "FBODY" },
53
48
  { NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
54
- { NODE_FLIP2, NEN_CNT, NEN_END, NEN_BEG, "FLIP2" },
55
- { NODE_FLIP3, NEN_CNT, NEN_END, NEN_BEG, "FLIP3" },
56
- { NODE_FOR, NEN_ITER, NEN_BODY, NEN_VAR, "FOR" },
57
- { NODE_GASGN, NEN_ENTRY, NEN_VALUE, NEN_VID, "GASGN" },
58
- { NODE_GVAR, NEN_ENTRY, NEN_VID, NEN_NONE, "GVAR" },
49
+ { NODE_FLIP2, NEN_CNT, NEN_BEG, NEN_END, "FLIP2" },
50
+ { NODE_FLIP3, NEN_CNT, NEN_BEG, NEN_END, "FLIP3" },
51
+ { NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
52
+ { NODE_GASGN, NEN_VALUE, NEN_VID, NEN_ENTRY, "GASGN" },
53
+ { NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
59
54
  { NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
60
55
  { NODE_IASGN, NEN_VALUE, NEN_VID, NEN_NONE, "IASGN" },
61
- { NODE_IF, NEN_ELSE, NEN_BODY, NEN_COND, "IF" },
62
- { NODE_IFUNC, NEN_TVAL, NEN_CFNC, NEN_STATE, "IFUNC" },
63
- { NODE_ITER, NEN_ITER, NEN_BODY, NEN_VAR, "ITER" },
56
+ { NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
57
+ { NODE_IFUNC, NEN_CFNC, NEN_TVAL, NEN_STATE, "IFUNC" },
58
+ { NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
64
59
  { NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
65
- { NODE_LASGN, NEN_CNT, NEN_VALUE, NEN_VID, "LASGN" },
60
+ { NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
66
61
  { NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
67
- { NODE_LVAR, NEN_CNT, NEN_VID, NEN_NONE, "LVAR" },
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
65
  { NODE_MATCH2, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH2" },
71
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
- { NODE_NTH_REF, NEN_CNT, NEN_NTH, NEN_NONE, "NTH_REF" },
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, NEN_NEXT, NEN_RECV, NEN_VALUE, "OP_ASGN2" },
83
- { NODE_OP_ASGN2_ARG, NEN_AID, NEN_MID, NEN_VID, "OP_ASGN2_ARG" },
74
+ { NODE_OP_ASGN2, NEN_RECV, NEN_NEXT, NEN_VALUE, "OP_ASGN2" },
75
+ { NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID, NEN_MID, "OP_ASGN2_ARG" },
84
76
  { NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
85
77
  { NODE_OP_ASGN_OR, NEN_AID, NEN_VALUE, NEN_RECV, "OP_ASGN_OR" },
86
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, NEN_ARGS, NEN_HEAD, NEN_BODY, "RESBODY" },
90
- { NODE_RESCUE, NEN_RESQ, NEN_HEAD, NEN_ELSE, "RESCUE" },
81
+ { NODE_RESBODY, NEN_HEAD, NEN_BODY, NEN_ARGS, "RESBODY" },
82
+ { NODE_RESCUE, NEN_HEAD, NEN_RESQ, NEN_ELSE, "RESCUE" },
91
83
  { NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
92
84
  { NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
93
85
  { NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
94
- { NODE_SCOPE, NEN_NEXT, NEN_TBL, NEN_RVAL, "SCOPE" },
86
+ { NODE_SCOPE, NEN_TBL, NEN_RVAL, NEN_NEXT, "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
93
  { NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
103
- { NODE_UNTIL, NEN_BODY, NEN_STATE, NEN_COND, "UNTIL" },
104
- { NODE_VALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "VALIAS" },
94
+ { NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
95
+ { NODE_VALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "VALIAS" },
105
96
  { NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
106
- { NODE_WHEN, NEN_NEXT, NEN_HEAD, NEN_BODY, "WHEN" },
107
- { NODE_WHILE, NEN_BODY, NEN_STATE, NEN_COND, "WHILE" },
97
+ { NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
98
+ { NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
108
99
  { NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
109
100
  { NODE_YIELD, NEN_HEAD, NEN_STATE, NEN_NONE, "YIELD" },
110
101
  { NODE_ZARRAY, NEN_NONE, NEN_NONE, NEN_NONE, "ZARRAY" },