Change soft-fail to use the config, rather than env
[rbx.git] / shotgun / lib / node_types.rb
blob966d4e3db740b33cd30344f209cd5677c5a822f7
1 node_types = %w{
2   method
3   fbody
4   cfunc
5   scope
6   block
7   if
8   case
9   when
10   opt_n
11   while
12   until
13   iter
14   for
15   break
16   next
17   redo
18   retry
19   begin
20   rescue
21   resbody
22   ensure
23   and
24   or
25   not
26   masgn
27   lasgn
28   dasgn
29   dasgn_curr
30   gasgn
31   iasgn
32   cdecl
33   cvasgn
34   cvdecl
35   op_asgn1
36   op_asgn2
37   op_asgn_and
38   op_asgn_or
39   call
40   fcall
41   vcall
42   super
43   zsuper
44   array
45   zarray
46   hash
47   return
48   yield
49   lvar
50   dvar
51   gvar
52   ivar
53   const
54   cvar
55   nth_ref
56   back_ref
57   match
58   match2
59   match3
60   lit
61   str
62   dstr
63   xstr
64   dxstr
65   evstr
66   dregx
67   dregx_once
68   args
69   argscat
70   argspush
71   splat
72   to_ary
73   svalue
74   block_arg
75   block_pass
76   defn
77   defs
78   alias
79   valias
80   undef
81   class
82   module
83   sclass
84   colon2
85   colon3
86   cref
87   dot2
88   dot3
89   flip2
90   flip3
91   attrset
92   self
93   nil
94   true
95   false
96   defined
97   newline
98   postexe
99   dmethod
100   bmethod
101   memo
102   ifunc
103   dsym
104   attrasgn
105   regex
106   fixnum
107   number
108   hexnum
109   binnum
110   octnum
111   float
112   negate
113   last
114   file
117 File.open("node_types.c", "w") do |f|
118   f.puts <<EOF
119 /* This file is generated by node_types.rb. Do not edit. */
121 #include "node_types.h"
123 static const char node_types[] = {
126   node_types.each do |type|
127     f.puts("  \"#{type}\\0\"")
128   end
129   
130   f.puts("};")
131   f.puts
132   
133   f.puts("static const unsigned short node_types_offsets[] = {")
134   offset = 0
135   
136   node_types.each_with_index do |type, index|
137     f.puts(",") if index > 0
138     f.write("  #{offset}")
139     offset += node_types[index].length + 1
140   end
141   
142   f.puts <<EOF
146 const char *get_node_type_string(enum node_type nt) {
147   return node_types + node_types_offsets[nt];
152 File.open("node_types.h", "w") do |f|
153   f.puts <<EOF
154 /* This file is generated by node_types.rb. Do not edit. */
156 enum node_type {
159   node_types.each_with_index do |type, index|
160     f.puts(",") if index > 0
161     f.write("  NODE_#{type.upcase}")
162   end
164   f.puts <<EOF
168 const char *get_node_type_string(enum node_type nt);