ruby-internal 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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" },