source: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb@ 270

Last change on this file since 270 was 270, checked in by coas-nagasima, 7 years ago

mruby版ECNLプロトタイピング・ツールを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby
File size: 67.0 KB
Line 
1#
2# DO NOT MODIFY!!!!
3# This file is automatically generated by Racc 1.4.12
4# from Racc grammer file "".
5#
6
7require 'racc/parser.rb'
8class C_parser < Racc::Parser
9
10module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 715)
11
12 RESERVED = {
13 # keyword
14 'typedef' => :TYPEDEF,
15 'struct' => :STRUCT,
16 'union' => :UNION,
17 'sizeof' => :SIZEOF,
18 'throw' => :THROW,
19
20 # specifier
21 # types
22 'void' => :VOID,
23 'char' => :CHAR,
24 'short' => :SHORT,
25
26 'volatile'=> :VOLATILE,
27 'const' => :CONST,
28 'extern' => :EXTERN,
29
30 'long' => :LONG,
31 'float' => :FLOAT,
32 'double' => :DOUBLE,
33 'signed' => :SIGNED,
34 'unsigned'=> :UNSIGNED,
35
36 'int' => :INT,
37 'enum' => :ENUM,
38
39 'if' => :IF,
40 'else' => :ELSE,
41 'while' => :WHILE,
42 'do' => :DO,
43 'for' => :FOR,
44 'case' => :CASE,
45 'default' => :DEFAULT,
46 'goto' => :GOTO,
47 'continue' => :CONTINUE,
48 'break' => :BREAK,
49 'return' => :RETURN,
50 '__inline__' => :__INLINE__,
51 'inline' => :INLINE,
52 '__inline' => :__INLINE,
53 'Inline' => :CINLINE, # inline starting with Capital letter
54 'static' => :STATIC,
55 'register' => :REGISTER,
56 'auto' => :AUTO,
57 '__extension__' => :EXTENSION,
58
59 }
60
61 @@generator_nest = -1
62 @@generator_stack = []
63 @@current_locale = []
64
65 def finalize
66
67 # mikan Namespace.pop
68 Celltype.pop
69 Cell.pop
70 CompositeCelltype.pop
71 Region.pop
72
73 end
74
75 def set_plugin( plugin )
76 @plugin = plugin
77 end
78
79 def self.get_plugin
80 @@generator_stack[@@generator_nest].get_plugin
81 end
82
83 def get_plugin
84 @plugin
85 end
86
87 def parse(files)
88
89 # mikan Namespace.push
90 Celltype.push
91 Cell.push
92 CompositeCelltype.push
93 Region.push
94
95 @@generator_nest += 1
96 @@generator_stack[@@generator_nest] = self
97 @b_no_type_name = false
98
99 begin
100
101 @q = []
102 comment = false
103
104 # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
105 TECS_LANG::set_kcode_binary
106
107 # 800U, 0xffLL など (整数リテラルにå…
108±é€šã®ä¿®é£¾å­)
109 integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
110
111 files.each {|file|
112 lineno = 1
113 begin
114#2.0 IO.foreach(file) {|line|
115 TECSIO.foreach(file) {|line|
116 col = 1
117 line.rstrip!
118
119 until line.empty?
120
121 if comment
122 case line
123 # コメント終了
124 when /\A\*\//
125 comment = false
126 when /\A./
127 ;
128 end
129 else
130 case line
131 # 空白、プリプロセスディレクティブ
132 when /\A\s+/
133 ;
134 # 識別子
135 when /\A[a-zA-Z_]\w*/
136 word = $&
137 @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
138 # 16 進数定数
139 when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
140 @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
141 # 8 進数定数
142 when /\A0[0-7]+#{integer_qualifier}/
143 @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
144 # 浮動小数定数
145 when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
146 @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
147 # 整数定数
148 when /\A\d+#{integer_qualifier}/
149 # when /\A\d+/
150 @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
151 # 文字
152 when /\A'(?:[^'\\]|\\.)'/
153 @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
154 # 文字列
155# "#include #include #include \"../systask/logtask.cfg\" 最後の " 忘れ)で無限ループ
156# when /\A"(?:[^"\\]+|\\.)*"/
157 when /\A"(?:[^"\\]|\\.)*"/ # これはうまく行くようだ
158 @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
159 # 行コメント
160 when /\A\/\/.*$/
161 # 読み飛ばすだけ
162 # コメント開始
163 when /\A\/\*/
164 comment = true
165 when /\A>>=/, /\A<<=/, /\A>>/, /\A<</
166 @q << [$&, Token.new($&, file, lineno, col)]
167 when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
168 @q << [$&, Token.new($&, file, lineno, col)]
169 when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
170 @q << [$&, Token.new($&, file, lineno, col)]
171 when /\A./
172 @q << [$&, Token.new($&, file, lineno, col)]
173 else
174 raise
175 end
176 end
177
178 line = $'
179 col += $&.length
180 end
181
182 lineno += 1
183 }
184
185 rescue => evar
186 Generator.error( "B1002 while open or reading \'$1\'" , file )
187 print_exception( evar )
188 end
189 }
190
191 # 終了の印
192 @q << nil
193
194 @yydebug = true
195 do_parse
196
197 ensure
198 @@generator_nest -= 1
199 TECS_LANG::reset_kcode
200 end
201
202 end
203
204
205 def next_token
206 token = @q.shift
207
208 if token then
209 @@current_locale[@@generator_nest] = token[1].locale
210
211 case token[1].val
212 when ";", ":", ",", "(", ")", "{", "}"
213 set_no_type_name false
214 when ".", "->"
215 set_no_type_name true
216 end
217
218 # TYPE_NAME トークンへ置き換え
219 if @b_no_type_name == false
220 if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
221 token[0] = :TYPE_NAME
222 end
223 end
224
225 if $debug then # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
226 locale = @@current_locale[@@generator_nest]
227 if token then
228 print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
229 else
230 print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
231 end
232 end
233 end
234
235 token
236 end
237
238 def on_error(t, v, vstack)
239 if v == "$" then
240 Generator.error( "B1003 Unexpected EOF" )
241 else
242 Generator.error( "B1004 syntax error near \'$1\'" , v.val )
243 end
244
245 end
246
247 def self.current_locale
248 @@current_locale[ @@generator_nest ]
249 end
250
251 @@n_error = 0
252 @@n_warning = 0
253
254 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
255 def self.error( msg )
256 @@n_error += 1
257 locale = @@current_locale[ @@generator_nest ]
258
259 if locale then
260 Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
261 else
262 Console.puts "error: #{msg}"
263 end
264 end
265
266 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
267 def self.warning( msg )
268 @@n_warning += 1
269 locale = @@current_locale[ @@generator_nest ]
270 Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
271 end
272
273 def self.get_n_error
274 @@n_error
275 end
276
277 def self.get_n_warning
278 @@n_warning
279 end
280
281 def self.get_nest
282 @@generator_nest
283 end
284
285 def set_no_type_name b_no_type_name
286 # print "b_no_type_name=#{b_no_type_name}\n"
287 @b_no_type_name = b_no_type_name
288 end
289
290...end C_parser.y.rb/module_eval...
291##### State transition tables begin ###
292
293clist = [
294'104,105,106,107,108,110,68,111,66,179,300,141,53,116,117,206,115,118',
295'119,120,121,122,123,104,105,106,107,108,110,168,111,203,204,207,141',
296'74,116,117,168,115,118,119,120,121,122,123,303,208,67,299,65,26,27,104',
297'105,106,107,108,110,73,111,26,27,75,141,348,116,117,167,115,118,119',
298'120,121,122,123,77,265,195,196,160,304,305,306,307,308,309,310,311,312',
299'313,262,351,142,8,9,10,11,15,16,17,18,19,20,21,22,53,192,23,25,26,27',
300'193,194,343,261,142,104,105,106,107,108,110,344,111,172,340,151,141',
301'272,116,117,251,115,118,119,120,121,122,123,104,105,106,107,108,110',
302'142,111,355,171,339,141,81,116,117,80,115,118,119,120,121,122,123,104',
303'105,106,107,108,110,52,111,195,196,3,141,51,116,117,359,115,118,119',
304'120,121,122,123,104,105,106,107,108,110,373,111,96,335,361,141,334,116',
305'117,344,115,118,119,120,121,122,123,79,142,247,335,272,251,334,251,51',
306'104,105,106,107,108,110,81,111,53,80,362,234,363,116,117,142,115,118',
307'119,120,121,122,123,247,52,364,251,197,198,51,51,197,198,79,197,198',
308'53,53,142,228,365,8,9,10,11,15,16,17,18,19,20,21,22,77,192,23,25,26',
309'27,193,194,142,229,95,230,231,232,233,87,235,236,238,239,240,241,192',
310'199,200,201,202,193,194,197,198,370,37,38,39,40,41,42,43,44,142,104',
311'105,106,107,108,110,86,111,203,204,85,141,375,116,117,376,115,118,119',
312'120,121,122,123,104,105,106,107,108,110,377,111,195,196,378,141,379',
313'116,117,380,115,118,119,120,121,122,123,104,105,106,107,108,110,382',
314'111,383,35,384,141,63,116,117,60,115,118,119,120,121,122,123,104,105',
315'106,107,108,110,389,111,209,210,390,141,391,116,117,392,115,118,119',
316'120,121,122,123,59,142,394,34,396,8,9,10,11,15,16,17,18,19,20,21,22',
317'52,278,23,25,26,27,51,142,36,52,52,52,35,53,52,51,51,51,197,198,51,45',
318'53,53,53,277,275,53,269,268,142,267,37,38,39,40,41,42,43,44,181,95,182',
319'254,183,184,185,199,200,201,202,253,34,142,8,9,10,11,15,16,17,18,19',
320'20,21,22,245,244,23,25,26,27,243,30,36,104,105,106,107,108,110,214,111',
321'213,208,207,141,206,116,117,205,115,118,119,120,121,122,123,37,38,39',
322'40,41,42,43,44,301,104,105,106,107,108,110,314,111,315,317,318,234,319',
323'116,117,321,115,118,119,120,121,122,123,52,52,52,322,52,323,51,51,51',
324'324,51,327,174,53,53,53,228,53,8,9,10,11,15,16,17,18,19,20,21,22,77',
325'173,23,25,26,27,75,95,142,229,169,230,231,232,233,161,235,236,238,239',
326'240,241,199,200,201,202,346,347,205,,,,37,38,39,40,41,42,43,44,142,104',
327'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
328',,104,105,106,107,108,110,,111,,,,234,,116,117,,115,118,119,120,121',
329'122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11,15,16,17,18,19,20,21,22,77,,23',
330'25,26,27,,,,229,,230,231,232,233,142,235,236,238,239,240,241,,,,,,,',
331',,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,,,,234,',
332'116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11',
333'15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,,230,231,232,233,,235',
334'236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105,106',
335'107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104,105',
336'106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104',
337'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
338'104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122',
339'123,,142,,,,,,,,104,105,106,107,108,110,,111,,,,141,,116,117,142,115',
340'118,119,120,121,122,123,104,105,106,107,108,110,,111,,366,,141,,116',
341'117,142,115,118,119,120,121,122,123,,,,,,,,104,105,106,107,108,110,',
342'111,142,,,234,,116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,',
343'228,142,8,9,10,11,15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,142',
344'230,231,232,233,,235,236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42',
345'43,44,142,104,105,106,107,108,110,,111,,,,234,,116,117,,115,118,119',
346'120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11,15,16,17,18,19,20,21',
347'22,77,,23,25,26,27,,,,229,,230,231,232,233,,235,236,238,239,240,241',
348',,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,',
349',,234,,116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9',
350'10,11,15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,,230,231,232,233',
351',235,236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105',
352'106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104',
353'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
354'104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122',
355'123,104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121',
356'122,123,,142,,,,,,139,,,,,,140,104,105,106,107,108,110,,111,,145,142',
357'141,,116,117,,115,118,119,120,121,122,123,104,105,106,107,108,110,,111',
358',,142,141,,116,117,,115,118,119,120,121,122,123,104,105,106,107,108',
359'110,,111,,,142,141,,116,117,,115,118,119,120,121,122,123,104,105,106',
360'107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,,142,',
361',,,,,,104,105,106,107,108,110,,111,,,,141,,116,117,142,115,118,119,120',
362'121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,142,115,118',
363'119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,142',
364'115,118,119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116',
365'117,,115,118,119,120,121,122,123,,142,,,,,,139,349,,,,,140,104,105,106',
366'107,108,110,,111,,,142,141,,116,117,,115,118,119,120,121,122,123,104',
367'105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120,121,122',
368'123,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120',
369'121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119',
370'120,121,122,123,,142,,,,,,,,104,105,106,107,108,110,,111,,,,141,,116',
371'117,142,115,118,119,120,121,122,123,104,105,106,107,108,110,,111,,,',
372'141,,116,117,142,115,118,119,120,121,122,123,104,105,106,107,108,110',
373',111,,,,141,,116,117,142,115,118,119,120,121,122,123,,,,,,,,,,104,105',
374'106,107,108,110,,111,,,,234,,116,117,142,115,118,119,120,121,122,123',
375',,,,,,,,,,,,,,,142,228,,8,9,10,11,15,16,17,18,19,20,21,22,77,237,23',
376'25,26,27,,,142,229,,230,231,232,233,,235,236,238,239,240,241,,,,,,,',
377',,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,,336,,141',
378',116,117,,115,118,119,120,121,122,123,104,105,106,107,108,110,,111,',
379',,141,,116,117,,115,118,119,120,121,122,123,8,9,10,11,15,16,17,18,19',
380'20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26',
381'27,,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120',
382'121,122,123,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118',
383'119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,,115',
384'118,119,120,121,122,123,104,105,106,107,108,187,,111,,,,141,,116,117',
385',115,118,119,120,121,122,123,,142,,,,,,,,104,105,106,107,108,189,,111',
386',,,141,,116,117,142,115,118,119,120,121,122,123,104,105,106,107,108',
387'189,,111,,,,141,,116,117,142,115,118,119,120,121,122,123,104,105,106',
388'107,108,110,,111,,,,141,,116,117,142,115,118,119,120,121,122,123,104',
389'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
390',142,,,,,,139,,,,,,140,272,332,326,251,104,105,106,107,108,110,142,111',
391',53,,141,,116,117,,115,118,119,120,121,122,123,,,,,,,142,,,8,9,10,11',
392'15,16,17,18,19,20,21,22,,,23,25,26,27,,,142,104,105,106,107,108,110',
393',111,,,,234,,116,117,,115,118,119,120,121,122,123,37,38,39,40,41,42',
394'43,44,,,,,,,,,228,142,8,9,10,11,15,16,17,18,19,20,21,22,77,,23,25,26',
395'27,,,,229,,230,231,232,233,,235,236,238,239,240,241,368,,,,,,,,,,37',
396'38,39,40,41,42,43,44,142,247,332,,251,,,51,,,,,,,53,,,8,9,10,11,15,16',
397'17,18,19,20,21,22,,,23,25,26,27,,,8,9,10,11,15,16,17,18,19,20,21,22',
398',,23,25,26,27,147,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,328,,,,37,38',
399'39,40,41,42,43,44,,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,8',
400'9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41',
401'42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19',
402'20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,338,23,25',
403'26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,,,37,38,39,40,41,42,43',
404'44,8,9,10,11,15,16,17,18,19,20,21,22,,162,23,25,26,27,8,9,10,11,15,16',
405'17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,',
406',,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22,,,23',
407'25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37',
408'38,39,40,41,42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15',
409'16,17,18,19,20,21,22,,255,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21',
410'22,,,23,25,26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,,,37,38,39',
411'40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22,,260,23,25,26,27,8',
412'9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41',
413'42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19',
414'20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26',
415'27,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22',
416',,23,25,26,27' ]
417 racc_action_table = arr = ::Array.new(2877, nil)
418 idx = 0
419 clist.each do |str|
420 str.split(',', -1).each do |i|
421 arr[idx] = i.to_i unless i.empty?
422 idx += 1
423 end
424 end
425
426clist = [
427'208,208,208,208,208,208,24,208,23,112,211,208,53,208,208,295,208,208',
428'208,208,208,208,208,209,209,209,209,209,209,93,209,130,130,296,209,46',
429'209,209,170,209,209,209,209,209,209,209,215,297,24,211,23,53,53,187',
430'187,187,187,187,187,46,187,112,112,48,187,298,187,187,93,187,187,187',
431'187,187,187,187,48,170,285,285,88,215,215,215,215,215,215,215,215,215',
432'215,164,301,208,187,187,187,187,187,187,187,187,187,187,187,187,83,283',
433'187,187,187,187,283,283,273,164,209,392,392,392,392,392,392,273,392',
434'99,257,82,392,271,392,392,271,392,392,392,392,392,392,392,179,179,179',
435'179,179,179,187,179,316,99,257,179,50,179,179,50,179,179,179,179,179',
436'179,179,192,192,192,192,192,192,49,192,286,286,1,192,49,192,192,320',
437'192,192,192,192,192,192,192,193,193,193,193,193,193,345,193,68,250,322',
438'193,250,193,193,345,193,193,193,193,193,193,193,49,392,246,330,178,246',
439'330,178,246,390,390,390,390,390,390,78,390,178,78,325,390,328,390,390',
440'179,390,390,390,390,390,390,390,150,158,331,150,287,287,150,158,288',
441'288,246,289,289,150,158,192,390,333,390,390,390,390,390,390,390,390',
442'390,390,390,390,390,284,390,390,390,390,284,284,193,390,67,390,390,390',
443'390,64,390,390,390,390,390,390,126,129,129,129,129,126,126,290,290,337',
444'390,390,390,390,390,390,390,390,390,379,379,379,379,379,379,62,379,293',
445'293,61,379,352,379,379,353,379,379,379,379,379,379,379,378,378,378,378',
446'378,378,354,378,127,127,355,378,356,378,378,357,378,378,378,378,378',
447'378,378,194,194,194,194,194,194,363,194,367,30,369,194,22,194,194,14',
448'194,194,194,194,194,194,194,195,195,195,195,195,195,380,195,135,135',
449'385,195,387,195,195,388,195,195,195,195,195,195,195,12,379,391,30,395',
450'30,30,30,30,30,30,30,30,30,30,30,30,92,183,30,30,30,30,92,378,30,262',
451'74,4,2,92,72,262,74,4,128,128,72,3,262,74,4,182,180,72,176,175,194,173',
452'30,30,30,30,30,30,30,30,113,168,113,155,113,113,113,291,291,291,291',
453'154,2,195,2,2,2,2,2,2,2,2,2,2,2,2,148,146,2,2,2,2,144,2,2,196,196,196',
454'196,196,196,142,196,140,134,133,196,132,196,196,131,196,196,196,196',
455'196,196,196,2,2,2,2,2,2,2,2,213,377,377,377,377,377,377,229,377,230',
456'232,233,377,234,377,377,236,377,377,377,377,377,377,377,340,216,172',
457'238,52,239,340,216,172,240,52,242,109,340,216,172,377,52,377,377,377',
458'377,377,377,377,377,377,377,377,377,377,103,377,377,377,377,102,96,196',
459'377,95,377,377,377,377,89,377,377,377,377,377,377,292,292,292,292,276',
460'279,294,,,,377,377,377,377,377,377,377,377,377,169,169,169,169,169,169',
461',169,,,,169,,169,169,,169,169,169,169,169,169,169,,,376,376,376,376',
462'376,376,,376,,,,376,,376,376,,376,376,376,376,376,376,376,,,,,,,,,,',
463',,,,,,376,,376,376,376,376,376,376,376,376,376,376,376,376,376,,376',
464'376,376,376,,,,376,,376,376,376,376,169,376,376,376,376,376,376,,,,',
465',,,,,,376,376,376,376,376,376,376,376,376,359,359,359,359,359,359,,359',
466',,,359,,359,359,,359,359,359,359,359,359,359,,,,,,,,,,,,,,,,,359,,359',
467'359,359,359,359,359,359,359,359,359,359,359,359,,359,359,359,359,,,',
468'359,,359,359,359,359,,359,359,359,359,359,359,,,,,,,,,,,359,359,359',
469'359,359,359,359,359,359,197,197,197,197,197,197,,197,,,,197,,197,197',
470',197,197,197,197,197,197,197,348,348,348,348,348,348,,348,,,,348,,348',
471'348,,348,348,348,348,348,348,348,344,344,344,344,344,344,,344,,,,344',
472',344,344,,344,344,344,344,344,344,344,189,189,189,189,189,189,,189,',
473',,189,,189,189,,189,189,189,189,189,189,189,,197,,,,,,,,198,198,198',
474'198,198,198,,198,,,,198,,198,198,348,198,198,198,198,198,198,198,334',
475'334,334,334,334,334,,334,,334,,334,,334,334,344,334,334,334,334,334',
476'334,334,,,,,,,,321,321,321,321,321,321,,321,189,,,321,,321,321,,321',
477'321,321,321,321,321,321,,,,,,,,,,,,,,,,,321,198,321,321,321,321,321',
478'321,321,321,321,321,321,321,321,,321,321,321,321,,,,321,334,321,321',
479'321,321,,321,321,321,321,321,321,,,,,,,,,,,321,321,321,321,321,321,321',
480'321,321,319,319,319,319,319,319,,319,,,,319,,319,319,,319,319,319,319',
481'319,319,319,,,,,,,,,,,,,,,,,319,,319,319,319,319,319,319,319,319,319',
482'319,319,319,319,,319,319,319,319,,,,319,,319,319,319,319,,319,319,319',
483'319,319,319,,,,,,,,,,,319,319,319,319,319,319,319,319,319,396,396,396',
484'396,396,396,,396,,,,396,,396,396,,396,396,396,396,396,396,396,,,,,,',
485',,,,,,,,,,396,,396,396,396,396,396,396,396,396,396,396,396,396,396,',
486'396,396,396,396,,,,396,,396,396,396,396,,396,396,396,396,396,396,,,',
487',,,,,,,396,396,396,396,396,396,396,396,396,318,318,318,318,318,318,',
488'318,,,,318,,318,318,,318,318,318,318,318,318,318,317,317,317,317,317',
489'317,,317,,,,317,,317,317,,317,317,317,317,317,317,317,75,75,75,75,75',
490'75,,75,,,,75,,75,75,,75,75,75,75,75,75,75,315,315,315,315,315,315,,315',
491',,,315,,315,315,,315,315,315,315,315,315,315,,318,,,,,,75,,,,,,75,80',
492'80,80,80,80,80,,80,,80,317,80,,80,80,,80,80,80,80,80,80,80,181,181,181',
493'181,181,181,,181,,,75,181,,181,181,,181,181,181,181,181,181,181,314',
494'314,314,314,314,314,,314,,,315,314,,314,314,,314,314,314,314,314,314',
495'314,302,302,302,302,302,302,,302,,,,302,,302,302,,302,302,302,302,302',
496'302,302,,80,,,,,,,,199,199,199,199,199,199,,199,,,,199,,199,199,181',
497'199,199,199,199,199,199,199,200,200,200,200,200,200,,200,,,,200,,200',
498'200,314,200,200,200,200,200,200,200,300,300,300,300,300,300,,300,,,',
499'300,,300,300,302,300,300,300,300,300,300,300,275,275,275,275,275,275',
500',275,,,,275,,275,275,,275,275,275,275,275,275,275,,199,,,,,,300,300',
501',,,,300,201,201,201,201,201,201,,201,,,200,201,,201,201,,201,201,201',
502'201,201,201,201,207,207,207,207,207,207,,207,,,300,207,,207,207,,207',
503'207,207,207,207,207,207,210,210,210,210,210,210,,210,,,275,210,,210',
504'210,,210,210,210,210,210,210,210,202,202,202,202,202,202,,202,,,,202',
505',202,202,,202,202,202,202,202,202,202,,201,,,,,,,,269,269,269,269,269',
506'269,,269,,,,269,,269,269,207,269,269,269,269,269,269,269,203,203,203',
507'203,203,203,,203,,,,203,,203,203,210,203,203,203,203,203,203,203,204',
508'204,204,204,204,204,,204,,,,204,,204,204,202,204,204,204,204,204,204',
509'204,,,,,,,,,,143,143,143,143,143,143,,143,,,,143,,143,143,269,143,143',
510'143,143,143,143,143,,,,,,,,,,,,,,,,203,143,,143,143,143,143,143,143',
511'143,143,143,143,143,143,143,143,143,143,143,143,,,204,143,,143,143,143',
512'143,,143,143,143,143,143,143,,,,,,,,,,,143,143,143,143,143,143,143,143',
513'143,251,251,251,251,251,251,,251,,251,,251,,251,251,,251,251,251,251',
514'251,251,251,110,110,110,110,110,110,,110,,,,110,,110,110,,110,110,110',
515'110,110,110,110,70,70,70,70,70,70,70,70,70,70,70,70,,,70,70,70,70,110',
516'110,110,110,110,110,110,110,110,110,110,110,,,110,110,110,110,,205,205',
517'205,205,205,205,,205,,,251,205,,205,205,,205,205,205,205,205,205,205',
518'206,206,206,206,206,206,,206,,,110,206,,206,206,,206,206,206,206,206',
519'206,206,114,114,114,114,114,114,,114,,,,114,,114,114,,114,114,114,114',
520'114,114,114,115,115,115,115,115,115,,115,,,,115,,115,115,,115,115,115',
521'115,115,115,115,,205,,,,,,,,116,116,116,116,116,116,,116,,,,116,,116',
522'116,206,116,116,116,116,116,116,116,117,117,117,117,117,117,,117,,,',
523'117,,117,117,114,117,117,117,117,117,117,117,139,139,139,139,139,139',
524',139,,,,139,,139,139,115,139,139,139,139,139,139,139,241,241,241,241',
525'241,241,,241,,,,241,,241,241,,241,241,241,241,241,241,241,,116,,,,,',
526'139,,,,,,139,272,272,241,272,235,235,235,235,235,235,117,235,,272,,235',
527',235,235,,235,235,235,235,235,235,235,,,,,,,139,,,272,272,272,272,272',
528'272,272,272,272,272,272,272,,,272,272,272,272,,,241,231,231,231,231',
529'231,231,,231,,,,231,,231,231,,231,231,231,231,231,231,231,272,272,272',
530'272,272,272,272,272,,,,,,,,,231,235,231,231,231,231,231,231,231,231',
531'231,231,231,231,231,,231,231,231,231,,,,231,,231,231,231,231,,231,231',
532'231,231,231,231,335,,,,,,,,,,231,231,231,231,231,231,231,231,231,247',
533'247,,247,,,247,,,,,,,247,,,335,335,335,335,335,335,335,335,335,335,335',
534'335,,,335,335,335,335,,,247,247,247,247,247,247,247,247,247,247,247',
535'247,,,247,247,247,247,81,,,,,,335,335,335,335,335,335,335,335,,,,,,',
536',,245,,,,247,247,247,247,247,247,247,247,,81,81,81,81,81,81,81,81,81',
537'81,81,81,,,81,81,81,81,245,245,245,245,245,245,245,245,245,245,245,245',
538',,245,245,245,245,,,,,,,,,81,81,81,81,81,81,81,81,,,,,,,,,,,245,245',
539'245,245,245,245,245,245,5,5,5,5,5,5,5,5,5,5,5,5,,,5,5,5,5,252,252,252',
540'252,252,252,252,252,252,252,252,252,,252,252,252,252,252,,,,,,,,,5,5',
541'5,5,5,5,5,5,,,,,,,,,,,252,252,252,252,252,252,252,252,90,90,90,90,90',
542'90,90,90,90,90,90,90,,90,90,90,90,90,153,153,153,153,153,153,153,153',
543'153,153,153,153,,,153,153,153,153,,,,,,,,,90,90,90,90,90,90,90,90,,',
544',,,,,,,,153,153,153,153,153,153,153,153,87,87,87,87,87,87,87,87,87,87',
545'87,87,,,87,87,87,87,86,86,86,86,86,86,86,86,86,86,86,86,,,86,86,86,86',
546',,,,,,,,87,87,87,87,87,87,87,87,,,,,,,,,,,86,86,86,86,86,86,86,86,156',
547'156,156,156,156,156,156,156,156,156,156,156,,156,156,156,156,156,65',
548'65,65,65,65,65,65,65,65,65,65,65,,,65,65,65,65,,,,,,,,,156,156,156,156',
549'156,156,156,156,,,,,,,,,,,65,65,65,65,65,65,65,65,159,159,159,159,159',
550'159,159,159,159,159,159,159,,159,159,159,159,159,7,7,7,7,7,7,7,7,7,7',
551'7,7,,,7,7,7,7,,,,,,,,,159,159,159,159,159,159,159,159,,,,,,,,,,,7,7',
552'7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,,,6,6,6,6,36,36,36,36,36,36,36,36',
553'36,36,36,36,,,36,36,36,36,,,,,,,,,6,6,6,6,6,6,6,6,71,71,71,71,71,71',
554'71,71,71,71,71,71,,,71,71,71,71' ]
555 racc_action_check = arr = ::Array.new(2877, nil)
556 idx = 0
557 clist.each do |str|
558 str.split(',', -1).each do |i|
559 arr[idx] = i.to_i unless i.empty?
560 idx += 1
561 end
562 end
563
564racc_action_pointer = [
565 nil, 173, 432, 442, 425, 2414, 2764, 2712, nil, nil,
566 nil, nil, 363, nil, 332, nil, nil, nil, nil, nil,
567 nil, nil, 357, -5, -7, nil, nil, nil, nil, nil,
568 366, nil, nil, nil, nil, nil, 2782, nil, nil, nil,
569 nil, nil, nil, nil, nil, nil, 18, nil, 21, 162,
570 145, nil, 548, -8, nil, nil, nil, nil, nil, nil,
571 nil, 267, 263, nil, 231, 2642, nil, 268, 139, nil,
572 1860, 2816, 428, nil, 424, 1315, nil, nil, 217, nil,
573 1375, 2344, 119, 86, nil, nil, 2572, 2554, 39, 555,
574 2484, nil, 414, 12, nil, 549, 575, nil, nil, 108,
575 nil, nil, 545, 487, nil, nil, nil, nil, nil, 554,
576 1878, nil, 2, 451, 1984, 2007, 2039, 2062, nil, nil,
577 nil, nil, nil, nil, nil, nil, 273, 322, 412, 265,
578 -2, 492, 473, 470, 468, 351, nil, nil, nil, 2085,
579 497, nil, 489, 1761, 482, nil, 480, nil, 470, nil,
580 234, nil, nil, 2502, 431, 423, 2624, nil, 235, 2694,
581 nil, nil, nil, nil, 74, nil, nil, nil, 449, 620,
582 21, nil, 546, 439, nil, 442, 441, nil, 206, 138,
583 440, 1398, 433, 409, nil, nil, nil, 51, nil, 902,
584 nil, nil, 161, 184, 356, 379, 494, 833, 934, 1476,
585 1499, 1582, 1651, 1706, 1729, 1938, 1961, 1605, -2, 21,
586 1628, -7, nil, 518, nil, 4, 545, nil, nil, nil,
587 nil, nil, nil, nil, nil, nil, nil, nil, nil, 527,
588 529, 2202, 530, 531, 500, 2149, 503, nil, 541, 515,
589 519, 2108, 521, nil, nil, 2362, 204, 2291, nil, nil,
590 188, 1855, 2432, nil, nil, nil, nil, 109, nil, nil,
591 nil, nil, 423, nil, nil, nil, nil, nil, nil, 1683,
592 nil, 122, 2140, 106, nil, 1545, 596, nil, nil, 600,
593 nil, nil, nil, 87, 252, 57, 150, 218, 222, 225,
594 273, 439, 574, 287, 590, -20, -3, 10, 25, nil,
595 1522, 84, 1444, nil, nil, nil, nil, nil, nil, nil,
596 nil, nil, nil, nil, 1421, 1338, 82, 1292, 1269, 1081,
597 138, 987, 155, nil, nil, 187, nil, nil, 218, nil,
598 205, 235, nil, 250, 957, 2271, nil, 291, nil, nil,
599 544, nil, nil, nil, 879, 184, nil, nil, 856, nil,
600 nil, nil, 283, 319, 333, 338, 306, 342, nil, 739,
601 nil, nil, nil, 352, nil, nil, nil, 355, nil, 360,
602 nil, nil, nil, nil, nil, nil, 645, 526, 333, 310,
603 317, nil, nil, nil, nil, 326, nil, 385, 355, nil,
604 216, 365, 115, nil, nil, 400, 1175, nil ]
605
606racc_action_default = [
607 -174, -241, -1, -241, -241, -70, -71, -72, -80, -81,
608 -82, -83, -84, -85, -86, -87, -88, -89, -90, -91,
609 -92, -93, -96, -241, -241, -127, -132, -133, -175, -176,
610 -241, -178, -179, -182, -183, -184, -241, -230, -231, -232,
611 -233, -234, -235, -236, -237, 398, -241, -76, -78, -241,
612 -135, -137, -241, -143, -73, -84, -86, -74, -75, -181,
613 -180, -98, -241, -101, -114, -241, -117, -241, -126, -177,
614 -105, -107, -241, -69, -241, -241, -188, -189, -134, -136,
615 -241, -241, -241, -144, -145, -94, -241, -241, -84, -85,
616 -241, -115, -241, -241, -128, -130, -241, -106, -108, -241,
617 -186, -77, -78, -2, -3, -4, -5, -6, -7, -8,
618 -241, -10, -12, -23, -241, -241, -241, -241, -29, -30,
619 -31, -32, -33, -34, -35, -37, -41, -44, -47, -52,
620 -55, -57, -59, -61, -63, -65, -68, -79, -168, -241,
621 -241, -238, -241, -241, -241, -140, -241, -142, -147, -149,
622 -153, -138, -146, -241, -84, -85, -241, -99, -241, -241,
623 -120, -119, -113, -116, -241, -121, -123, -124, -241, -241,
624 -241, -185, -241, -241, -11, -241, -241, -67, -154, -20,
625 -241, -241, -241, -241, -18, -19, -24, -241, -25, -241,
626 -27, -28, -241, -241, -241, -241, -241, -241, -241, -241,
627 -241, -241, -241, -241, -241, -241, -241, -241, -241, -241,
628 -241, -241, -172, -241, -239, -35, -241, -190, -191, -192,
629 -193, -194, -195, -196, -197, -198, -199, -200, -201, -241,
630 -241, -241, -241, -241, -238, -241, -241, -211, -241, -241,
631 -241, -241, -241, -139, -141, -241, -156, -241, -151, -152,
632 -157, -241, -241, -104, -103, -97, -100, -241, -109, -111,
633 -112, -118, -241, -129, -131, -125, -187, -240, -9, -241,
634 -155, -156, -241, -241, -21, -20, -241, -16, -17, -241,
635 -38, -39, -40, -42, -43, -45, -46, -48, -49, -50,
636 -51, -53, -54, -56, -58, -60, -62, -64, -241, -169,
637 -241, -241, -241, -219, -220, -221, -222, -223, -224, -225,
638 -226, -227, -228, -229, -241, -241, -241, -241, -241, -241,
639 -241, -241, -241, -213, -214, -241, -216, -217, -241, -150,
640 -158, -241, -164, -241, -241, -241, -160, -241, -95, -102,
641 -241, -122, -36, -13, -241, -241, -15, -26, -241, -170,
642 -173, -171, -241, -241, -241, -241, -241, -241, -208, -241,
643 -210, -212, -215, -241, -159, -165, -162, -241, -166, -241,
644 -161, -110, -22, -14, -66, -218, -241, -241, -241, -241,
645 -241, -209, -148, -163, -167, -202, -204, -241, -241, -207,
646 -241, -241, -241, -203, -205, -241, -241, -206 ]
647
648racc_goto_table = [
649 48, 4, 144, 146, 54, 57, 58, 217, 84, 12,
650 136, 137, 78, 175, 258, 136, 273, 165, 188, 190,
651 191, 186, 72, 89, 256, 93, 176, 163, 70, 4,
652 33, 156, 249, 29, 283, 284, 302, 12, 152, 14,
653 330, 2, 71, 293, 155, 89, 215, 90, 89, 287,
654 288, 289, 290, 294, 170, 295, 97, 98, 33, 83,
655 270, 69, 70, 70, 92, 330, 296, 14, 100, 159,
656 102, 297, 88, 101, 136, 212, 71, 71, 285, 286,
657 150, 61, 274, 153, 276, 158, 92, 62, 166, 92,
658 175, 264, 175, 154, 88, 316, 163, 88, 252, 280,
659 281, 282, 70, 279, 136, 246, 291, 292, 257, 64,
660 164, 155, 345, 298, 155, 263, 71, 89, 180, 329,
661 256, 211, 28, 99, 76, 143, 1, nil, nil, nil,
662 nil, nil, nil, 271, 215, nil, nil, nil, nil, nil,
663 nil, nil, nil, nil, 325, nil, 248, nil, nil, nil,
664 nil, nil, 158, nil, 259, 158, nil, 320, 92, nil,
665 154, nil, nil, 154, nil, nil, 88, nil, 266, nil,
666 136, nil, nil, 337, nil, nil, 342, nil, 274, 70,
667 nil, nil, nil, 358, nil, 360, 136, 341, nil, nil,
668 nil, nil, nil, 71, nil, nil, 371, nil, nil, nil,
669 nil, nil, 246, nil, nil, 352, nil, nil, nil, 78,
670 155, nil, 102, nil, nil, nil, nil, 353, 354, nil,
671 356, 357, 215, 381, 215, nil, nil, 271, nil, nil,
672 nil, nil, nil, nil, nil, 136, 350, nil, nil, nil,
673 385, 386, nil, nil, 150, nil, 150, 372, nil, nil,
674 nil, 158, nil, nil, 393, nil, 367, 369, 166, 154,
675 397, nil, 215, nil, nil, nil, nil, nil, nil, 136,
676 nil, 150, nil, nil, nil, nil, nil, nil, nil, 215,
677 215, 387, 388, 374, nil, nil, nil, nil, nil, nil,
678 nil, nil, nil, 215, nil, 395, nil, nil, nil, 215,
679 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
680 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
681 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
682 nil, nil, nil, nil, 150, nil, 259 ]
683
684racc_goto_check = [
685 32, 27, 25, 55, 27, 27, 27, 68, 53, 34,
686 24, 33, 54, 6, 44, 24, 8, 49, 10, 10,
687 10, 12, 43, 35, 41, 51, 13, 47, 30, 27,
688 26, 38, 58, 62, 14, 14, 77, 34, 53, 36,
689 59, 2, 9, 18, 35, 35, 10, 46, 35, 16,
690 16, 16, 16, 19, 51, 20, 43, 43, 26, 9,
691 58, 62, 30, 30, 27, 59, 21, 36, 32, 46,
692 32, 22, 34, 31, 24, 33, 9, 9, 15, 15,
693 27, 37, 6, 39, 6, 27, 27, 40, 32, 27,
694 6, 25, 6, 34, 34, 68, 47, 34, 38, 12,
695 12, 12, 30, 13, 24, 53, 17, 17, 42, 45,
696 48, 35, 8, 6, 35, 52, 9, 35, 9, 57,
697 41, 60, 61, 65, 66, 67, 1, nil, nil, nil,
698 nil, nil, nil, 53, 10, nil, nil, nil, nil, nil,
699 nil, nil, nil, nil, 6, nil, 32, nil, nil, nil,
700 nil, nil, 27, nil, 32, 27, nil, 25, 27, nil,
701 34, nil, nil, 34, nil, nil, 34, nil, 32, nil,
702 24, nil, nil, 25, nil, nil, 12, nil, 6, 30,
703 nil, nil, nil, 68, nil, 68, 24, 49, nil, nil,
704 nil, nil, nil, 9, nil, nil, 44, nil, nil, nil,
705 nil, nil, 53, nil, nil, 6, nil, nil, nil, 54,
706 35, nil, 32, nil, nil, nil, nil, 6, 6, nil,
707 6, 6, 10, 68, 10, nil, nil, 53, nil, nil,
708 nil, nil, nil, nil, nil, 24, 33, nil, nil, nil,
709 68, 68, nil, nil, 27, nil, 27, 6, nil, nil,
710 nil, 27, nil, nil, 68, nil, 25, 55, 32, 34,
711 68, nil, 10, nil, nil, nil, nil, nil, nil, 24,
712 nil, 27, nil, nil, nil, nil, nil, nil, nil, 10,
713 10, 6, 6, 24, nil, nil, nil, nil, nil, nil,
714 nil, nil, nil, 10, nil, 6, nil, nil, nil, 10,
715 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
716 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
717 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
718 nil, nil, nil, nil, 27, nil, 32 ]
719
720racc_goto_pointer = [
721 nil, 126, 41, nil, nil, nil, -97, nil, -163, 6,
722 -97, nil, -93, -84, -161, -119, -150, -97, -162, -153,
723 -152, -142, -138, nil, -65, -78, 28, -1, nil, nil,
724 -8, -1, -4, -64, 7, -42, 37, 59, -55, -2,
725 65, -132, -50, -14, -144, 86, -18, -63, 18, -75,
726 nil, -42, -53, -45, -37, -78, nil, -126, -118, -206,
727 -18, 120, 31, nil, nil, 51, 76, 48, -136, nil,
728 nil, nil, nil, nil, nil, nil, nil, -179 ]
729
730racc_goto_default = [
731 nil, nil, nil, 112, 103, 109, 242, 113, nil, 7,
732 124, 114, 125, nil, 126, 127, 128, 129, 130, 131,
733 132, 133, 134, 135, 177, 138, 218, 216, 46, 5,
734 6, 47, 82, nil, 55, 13, 56, nil, nil, nil,
735 nil, 157, nil, 178, nil, nil, nil, 91, nil, nil,
736 24, nil, 94, 49, 50, 333, 148, 149, 331, 250,
737 nil, nil, nil, 31, 32, nil, 225, nil, nil, 219,
738 220, 221, 222, 223, 224, 226, 227, nil ]
739
740racc_reduce_table = [
741 0, 0, :racc_error,
742 1, 97, :_reduce_none,
743 1, 99, :_reduce_2,
744 1, 99, :_reduce_3,
745 1, 99, :_reduce_4,
746 1, 99, :_reduce_5,
747 1, 99, :_reduce_6,
748 1, 99, :_reduce_7,
749 1, 99, :_reduce_8,
750 3, 99, :_reduce_9,
751 1, 101, :_reduce_10,
752 2, 101, :_reduce_11,
753 1, 103, :_reduce_none,
754 4, 103, :_reduce_none,
755 5, 103, :_reduce_none,
756 4, 103, :_reduce_15,
757 3, 103, :_reduce_16,
758 3, 103, :_reduce_17,
759 2, 103, :_reduce_18,
760 2, 103, :_reduce_19,
761 0, 104, :_reduce_none,
762 1, 104, :_reduce_none,
763 3, 104, :_reduce_none,
764 1, 106, :_reduce_none,
765 2, 106, :_reduce_24,
766 2, 106, :_reduce_25,
767 4, 106, :_reduce_26,
768 2, 106, :_reduce_27,
769 2, 106, :_reduce_28,
770 1, 107, :_reduce_29,
771 1, 107, :_reduce_30,
772 1, 107, :_reduce_31,
773 1, 107, :_reduce_32,
774 1, 107, :_reduce_33,
775 1, 107, :_reduce_34,
776 1, 108, :_reduce_none,
777 4, 108, :_reduce_36,
778 1, 110, :_reduce_none,
779 3, 110, :_reduce_38,
780 3, 110, :_reduce_39,
781 3, 110, :_reduce_40,
782 1, 111, :_reduce_none,
783 3, 111, :_reduce_42,
784 3, 111, :_reduce_43,
785 1, 112, :_reduce_none,
786 3, 112, :_reduce_45,
787 3, 112, :_reduce_46,
788 1, 113, :_reduce_none,
789 3, 113, :_reduce_48,
790 3, 113, :_reduce_49,
791 3, 113, :_reduce_50,
792 3, 113, :_reduce_51,
793 1, 114, :_reduce_none,
794 3, 114, :_reduce_53,
795 3, 114, :_reduce_54,
796 1, 115, :_reduce_none,
797 3, 115, :_reduce_56,
798 1, 116, :_reduce_none,
799 3, 116, :_reduce_58,
800 1, 117, :_reduce_none,
801 3, 117, :_reduce_60,
802 1, 118, :_reduce_none,
803 3, 118, :_reduce_62,
804 1, 119, :_reduce_none,
805 3, 119, :_reduce_64,
806 1, 120, :_reduce_none,
807 5, 120, :_reduce_66,
808 1, 102, :_reduce_67,
809 1, 121, :_reduce_68,
810 3, 122, :_reduce_none,
811 1, 123, :_reduce_70,
812 1, 123, :_reduce_none,
813 1, 123, :_reduce_72,
814 2, 123, :_reduce_73,
815 2, 123, :_reduce_74,
816 2, 123, :_reduce_75,
817 1, 124, :_reduce_76,
818 3, 124, :_reduce_77,
819 1, 127, :_reduce_none,
820 3, 127, :_reduce_79,
821 1, 126, :_reduce_80,
822 1, 126, :_reduce_81,
823 1, 126, :_reduce_82,
824 1, 126, :_reduce_83,
825 1, 126, :_reduce_84,
826 1, 126, :_reduce_85,
827 1, 126, :_reduce_86,
828 1, 126, :_reduce_87,
829 1, 126, :_reduce_88,
830 1, 126, :_reduce_89,
831 1, 126, :_reduce_90,
832 1, 126, :_reduce_91,
833 1, 126, :_reduce_92,
834 1, 126, :_reduce_93,
835 0, 135, :_reduce_94,
836 6, 130, :_reduce_95,
837 0, 136, :_reduce_96,
838 5, 130, :_reduce_97,
839 2, 130, :_reduce_98,
840 1, 134, :_reduce_none,
841 2, 134, :_reduce_none,
842 1, 133, :_reduce_101,
843 3, 137, :_reduce_102,
844 2, 137, :_reduce_none,
845 2, 137, :_reduce_none,
846 1, 139, :_reduce_none,
847 2, 139, :_reduce_106,
848 1, 139, :_reduce_107,
849 2, 139, :_reduce_108,
850 1, 138, :_reduce_109,
851 3, 138, :_reduce_110,
852 1, 140, :_reduce_none,
853 5, 131, :_reduce_none,
854 4, 131, :_reduce_none,
855 2, 131, :_reduce_none,
856 1, 142, :_reduce_none,
857 2, 142, :_reduce_none,
858 1, 141, :_reduce_none,
859 3, 143, :_reduce_none,
860 2, 143, :_reduce_none,
861 2, 143, :_reduce_none,
862 1, 144, :_reduce_none,
863 3, 144, :_reduce_none,
864 1, 145, :_reduce_none,
865 4, 132, :_reduce_none,
866 5, 132, :_reduce_none,
867 2, 132, :_reduce_none,
868 1, 146, :_reduce_127,
869 1, 147, :_reduce_none,
870 3, 147, :_reduce_none,
871 1, 148, :_reduce_none,
872 3, 148, :_reduce_none,
873 1, 105, :_reduce_132,
874 1, 105, :_reduce_133,
875 2, 128, :_reduce_134,
876 1, 128, :_reduce_none,
877 2, 128, :_reduce_136,
878 1, 150, :_reduce_137,
879 3, 150, :_reduce_138,
880 4, 150, :_reduce_139,
881 3, 150, :_reduce_140,
882 4, 150, :_reduce_141,
883 3, 150, :_reduce_142,
884 1, 149, :_reduce_143,
885 2, 149, :_reduce_144,
886 2, 149, :_reduce_145,
887 3, 149, :_reduce_146,
888 1, 151, :_reduce_none,
889 5, 151, :_reduce_none,
890 1, 152, :_reduce_none,
891 3, 152, :_reduce_none,
892 2, 153, :_reduce_none,
893 2, 153, :_reduce_none,
894 1, 153, :_reduce_none,
895 1, 109, :_reduce_none,
896 2, 109, :_reduce_none,
897 1, 154, :_reduce_none,
898 1, 154, :_reduce_none,
899 2, 154, :_reduce_none,
900 3, 155, :_reduce_none,
901 2, 155, :_reduce_none,
902 3, 155, :_reduce_none,
903 3, 155, :_reduce_none,
904 4, 155, :_reduce_none,
905 2, 155, :_reduce_164,
906 3, 155, :_reduce_none,
907 3, 155, :_reduce_166,
908 4, 155, :_reduce_none,
909 1, 129, :_reduce_168,
910 3, 129, :_reduce_169,
911 4, 129, :_reduce_170,
912 4, 129, :_reduce_171,
913 1, 156, :_reduce_172,
914 3, 156, :_reduce_173,
915 0, 98, :_reduce_none,
916 2, 98, :_reduce_none,
917 1, 157, :_reduce_none,
918 2, 157, :_reduce_none,
919 1, 158, :_reduce_none,
920 1, 158, :_reduce_none,
921 2, 158, :_reduce_none,
922 2, 158, :_reduce_none,
923 1, 158, :_reduce_none,
924 1, 158, :_reduce_none,
925 1, 158, :_reduce_none,
926 4, 159, :_reduce_185,
927 1, 161, :_reduce_186,
928 3, 161, :_reduce_187,
929 3, 160, :_reduce_none,
930 0, 163, :_reduce_none,
931 2, 163, :_reduce_none,
932 1, 164, :_reduce_none,
933 1, 164, :_reduce_none,
934 1, 164, :_reduce_none,
935 1, 164, :_reduce_none,
936 1, 164, :_reduce_none,
937 1, 164, :_reduce_none,
938 1, 164, :_reduce_none,
939 1, 164, :_reduce_none,
940 1, 164, :_reduce_none,
941 1, 164, :_reduce_none,
942 1, 164, :_reduce_none,
943 5, 165, :_reduce_none,
944 7, 165, :_reduce_none,
945 5, 166, :_reduce_none,
946 7, 167, :_reduce_none,
947 9, 168, :_reduce_none,
948 5, 169, :_reduce_none,
949 3, 170, :_reduce_none,
950 4, 170, :_reduce_none,
951 3, 170, :_reduce_none,
952 3, 162, :_reduce_none,
953 3, 171, :_reduce_none,
954 2, 171, :_reduce_none,
955 2, 171, :_reduce_none,
956 3, 171, :_reduce_none,
957 2, 171, :_reduce_none,
958 2, 172, :_reduce_none,
959 4, 172, :_reduce_none,
960 1, 173, :_reduce_none,
961 1, 173, :_reduce_none,
962 1, 173, :_reduce_none,
963 1, 173, :_reduce_none,
964 1, 173, :_reduce_none,
965 1, 173, :_reduce_none,
966 1, 173, :_reduce_none,
967 1, 173, :_reduce_none,
968 1, 173, :_reduce_none,
969 1, 173, :_reduce_none,
970 1, 173, :_reduce_none,
971 1, 125, :_reduce_none,
972 1, 125, :_reduce_none,
973 1, 125, :_reduce_none,
974 1, 125, :_reduce_none,
975 1, 125, :_reduce_none,
976 1, 125, :_reduce_none,
977 1, 125, :_reduce_none,
978 1, 125, :_reduce_none,
979 1, 100, :_reduce_238,
980 2, 100, :_reduce_239,
981 3, 100, :_reduce_240 ]
982
983racc_reduce_n = 241
984
985racc_shift_n = 398
986
987racc_token_table = {
988 false => 0,
989 :error => 1,
990 :INTEGER_CONSTANT => 2,
991 :FLOATING_CONSTANT => 3,
992 :OCTAL_CONSTANT => 4,
993 :HEX_CONSTANT => 5,
994 :CHARACTER_LITERAL => 6,
995 "(" => 7,
996 ")" => 8,
997 :STRING_LITERAL => 9,
998 "[" => 10,
999 "]" => 11,
1000 "." => 12,
1001 :IDENTIFIER => 13,
1002 "->" => 14,
1003 "++" => 15,
1004 "--" => 16,
1005 "," => 17,
1006 :SIZEOF => 18,
1007 "&" => 19,
1008 "*" => 20,
1009 "+" => 21,
1010 "-" => 22,
1011 "~" => 23,
1012 "!" => 24,
1013 "/" => 25,
1014 "%" => 26,
1015 "<<" => 27,
1016 ">>" => 28,
1017 "<" => 29,
1018 ">" => 30,
1019 "<=" => 31,
1020 ">=" => 32,
1021 "==" => 33,
1022 "!=" => 34,
1023 "^" => 35,
1024 "|" => 36,
1025 "&&" => 37,
1026 "||" => 38,
1027 "?" => 39,
1028 ":" => 40,
1029 ";" => 41,
1030 "=" => 42,
1031 :VOID => 43,
1032 :FLOAT => 44,
1033 :DOUBLE => 45,
1034 :BOOL => 46,
1035 :TYPE_NAME => 47,
1036 :CHAR => 48,
1037 :SHORT => 49,
1038 :INT => 50,
1039 :LONG => 51,
1040 :SIGNED => 52,
1041 :UNSIGNED => 53,
1042 :STRUCT => 54,
1043 "{" => 55,
1044 "}" => 56,
1045 :UNION => 57,
1046 :ENUM => 58,
1047 :CONST => 59,
1048 :VOLATILE => 60,
1049 :C_EXP => 61,
1050 :EXTENSION => 62,
1051 :TYPEDEF => 63,
1052 :IF => 64,
1053 :ELSE => 65,
1054 :WHILE => 66,
1055 :DO => 67,
1056 :FOR => 68,
1057 :SWITCH => 69,
1058 :infunc_statment => 70,
1059 :CASE => 71,
1060 :DEFAULT => 72,
1061 :GOTO => 73,
1062 :CONTINUE => 74,
1063 :BREAK => 75,
1064 :RETURN => 76,
1065 "+=" => 77,
1066 "-=" => 78,
1067 "*=" => 79,
1068 "/=" => 80,
1069 "%=" => 81,
1070 "<<=" => 82,
1071 ">>=" => 83,
1072 "&=" => 84,
1073 "|=" => 85,
1074 "^=" => 86,
1075 :__INLINE__ => 87,
1076 :INLINE => 88,
1077 :__INLINE => 89,
1078 :CINLINE => 90,
1079 :EXTERN => 91,
1080 :STATIC => 92,
1081 :AUTO => 93,
1082 :REGISTER => 94,
1083 "::" => 95 }
1084
1085racc_nt_base = 96
1086
1087racc_use_result_var = true
1088
1089Racc_arg = [
1090 racc_action_table,
1091 racc_action_check,
1092 racc_action_default,
1093 racc_action_pointer,
1094 racc_goto_table,
1095 racc_goto_check,
1096 racc_goto_default,
1097 racc_goto_pointer,
1098 racc_nt_base,
1099 racc_reduce_table,
1100 racc_token_table,
1101 racc_shift_n,
1102 racc_reduce_n,
1103 racc_use_result_var ]
1104
1105Racc_token_to_s_table = [
1106 "$end",
1107 "error",
1108 "INTEGER_CONSTANT",
1109 "FLOATING_CONSTANT",
1110 "OCTAL_CONSTANT",
1111 "HEX_CONSTANT",
1112 "CHARACTER_LITERAL",
1113 "\"(\"",
1114 "\")\"",
1115 "STRING_LITERAL",
1116 "\"[\"",
1117 "\"]\"",
1118 "\".\"",
1119 "IDENTIFIER",
1120 "\"->\"",
1121 "\"++\"",
1122 "\"--\"",
1123 "\",\"",
1124 "SIZEOF",
1125 "\"&\"",
1126 "\"*\"",
1127 "\"+\"",
1128 "\"-\"",
1129 "\"~\"",
1130 "\"!\"",
1131 "\"/\"",
1132 "\"%\"",
1133 "\"<<\"",
1134 "\">>\"",
1135 "\"<\"",
1136 "\">\"",
1137 "\"<=\"",
1138 "\">=\"",
1139 "\"==\"",
1140 "\"!=\"",
1141 "\"^\"",
1142 "\"|\"",
1143 "\"&&\"",
1144 "\"||\"",
1145 "\"?\"",
1146 "\":\"",
1147 "\";\"",
1148 "\"=\"",
1149 "VOID",
1150 "FLOAT",
1151 "DOUBLE",
1152 "BOOL",
1153 "TYPE_NAME",
1154 "CHAR",
1155 "SHORT",
1156 "INT",
1157 "LONG",
1158 "SIGNED",
1159 "UNSIGNED",
1160 "STRUCT",
1161 "\"{\"",
1162 "\"}\"",
1163 "UNION",
1164 "ENUM",
1165 "CONST",
1166 "VOLATILE",
1167 "C_EXP",
1168 "EXTENSION",
1169 "TYPEDEF",
1170 "IF",
1171 "ELSE",
1172 "WHILE",
1173 "DO",
1174 "FOR",
1175 "SWITCH",
1176 "infunc_statment",
1177 "CASE",
1178 "DEFAULT",
1179 "GOTO",
1180 "CONTINUE",
1181 "BREAK",
1182 "RETURN",
1183 "\"+=\"",
1184 "\"-=\"",
1185 "\"*=\"",
1186 "\"/=\"",
1187 "\"%=\"",
1188 "\"<<=\"",
1189 "\">>=\"",
1190 "\"&=\"",
1191 "\"|=\"",
1192 "\"^=\"",
1193 "__INLINE__",
1194 "INLINE",
1195 "__INLINE",
1196 "CINLINE",
1197 "EXTERN",
1198 "STATIC",
1199 "AUTO",
1200 "REGISTER",
1201 "\"::\"",
1202 "$start",
1203 "all",
1204 "C_parser",
1205 "primary_expression",
1206 "namespace_identifier",
1207 "string_literal_list",
1208 "expression",
1209 "postfix_expression",
1210 "argument_list",
1211 "type_qualifier",
1212 "unary_expression",
1213 "unary_operator",
1214 "cast_expression",
1215 "type_name",
1216 "multiplicative_expression",
1217 "additive_expression",
1218 "shift_expression",
1219 "relational_expression",
1220 "equality_expression",
1221 "and_expression",
1222 "exclusive_or_expression",
1223 "inclusive_or_expression",
1224 "logical_and_expression",
1225 "logical_or_expression",
1226 "conditional_expression",
1227 "constant_expression",
1228 "declaration",
1229 "declaration_specifiers",
1230 "init_declarator_list",
1231 "storage_class",
1232 "type_specifier",
1233 "init_declarator",
1234 "declarator",
1235 "initializer",
1236 "struct_specifier",
1237 "union_specifier",
1238 "enum_specifier",
1239 "struct_tag",
1240 "struct_declaration_list",
1241 "@1",
1242 "@2",
1243 "struct_declaration",
1244 "struct_declarator_list",
1245 "type_specifier_qualifier_list",
1246 "struct_declarator",
1247 "union_tag",
1248 "union_declaration_list",
1249 "union_declaration",
1250 "union_declarator_list",
1251 "union_declarator",
1252 "enum_type",
1253 "enumerator_list",
1254 "enumerator",
1255 "pointer",
1256 "direct_declarator",
1257 "parameter_type_list",
1258 "parameter_list",
1259 "parameter_declaration",
1260 "abstract_declarator",
1261 "direct_abstract_declarator",
1262 "initializer_list",
1263 "extension_statement",
1264 "statement",
1265 "typedef",
1266 "func_def",
1267 "declarator_list",
1268 "compoundstatement",
1269 "infunc_statement_list",
1270 "infunc_statement",
1271 "ifstatement",
1272 "whilestatement",
1273 "dowhilestatement",
1274 "forstatement",
1275 "switchstatement",
1276 "labelstatement",
1277 "gotostatement",
1278 "expressionstatement",
1279 "assignment_operator" ]
1280
1281Racc_debug_parser = false
1282
1283##### State transition tables end #####
1284
1285# reduce 0 omitted
1286
1287# reduce 1 omitted
1288
1289module_eval(<<'.,.,', 'C_parser.y.rb', 52)
1290 def _reduce_2(val, _values, result)
1291 result = [ :IDENTIFIER, val[0] ]
1292 result
1293 end
1294.,.,
1295
1296module_eval(<<'.,.,', 'C_parser.y.rb', 60)
1297 def _reduce_3(val, _values, result)
1298 result = [ :INTEGER_CONSTANT, val[0] ]
1299 result
1300 end
1301.,.,
1302
1303module_eval(<<'.,.,', 'C_parser.y.rb', 62)
1304 def _reduce_4(val, _values, result)
1305 result = [ :FLOATING_CONSTANT, val[0] ]
1306 result
1307 end
1308.,.,
1309
1310module_eval(<<'.,.,', 'C_parser.y.rb', 64)
1311 def _reduce_5(val, _values, result)
1312 result = [ :OCTAL_CONSTANT, val[0] ]
1313 result
1314 end
1315.,.,
1316
1317module_eval(<<'.,.,', 'C_parser.y.rb', 66)
1318 def _reduce_6(val, _values, result)
1319 result = [ :HEX_CONSTANT, val[0] ]
1320 result
1321 end
1322.,.,
1323
1324module_eval(<<'.,.,', 'C_parser.y.rb', 68)
1325 def _reduce_7(val, _values, result)
1326 result = [ :CHARACTER_LITERAL, val[0] ]
1327 result
1328 end
1329.,.,
1330
1331module_eval(<<'.,.,', 'C_parser.y.rb', 70)
1332 def _reduce_8(val, _values, result)
1333 result = [ :STRING_LITERAL_LIST, val[0] ]
1334 result
1335 end
1336.,.,
1337
1338module_eval(<<'.,.,', 'C_parser.y.rb', 72)
1339 def _reduce_9(val, _values, result)
1340 result = [ :PARENTHESES, val[1].get_elements ]
1341 result
1342 end
1343.,.,
1344
1345module_eval(<<'.,.,', 'C_parser.y.rb', 76)
1346 def _reduce_10(val, _values, result)
1347 result = [val[0]]
1348 result
1349 end
1350.,.,
1351
1352module_eval(<<'.,.,', 'C_parser.y.rb', 78)
1353 def _reduce_11(val, _values, result)
1354 result << val[1]
1355 result
1356 end
1357.,.,
1358
1359# reduce 12 omitted
1360
1361# reduce 13 omitted
1362
1363# reduce 14 omitted
1364
1365module_eval(<<'.,.,', 'C_parser.y.rb', 86)
1366 def _reduce_15(val, _values, result)
1367 result = [ :OP_SUBSC, val[0], val[2] ]
1368 result
1369 end
1370.,.,
1371
1372module_eval(<<'.,.,', 'C_parser.y.rb', 88)
1373 def _reduce_16(val, _values, result)
1374 result = [ :OP_DOT, val[0], val[2] ]
1375 result
1376 end
1377.,.,
1378
1379module_eval(<<'.,.,', 'C_parser.y.rb', 90)
1380 def _reduce_17(val, _values, result)
1381 result = [ :OP_REF, val[0], val[2] ]
1382 result
1383 end
1384.,.,
1385
1386module_eval(<<'.,.,', 'C_parser.y.rb', 91)
1387 def _reduce_18(val, _values, result)
1388 result = val[0]
1389 result
1390 end
1391.,.,
1392
1393module_eval(<<'.,.,', 'C_parser.y.rb', 92)
1394 def _reduce_19(val, _values, result)
1395 result = val[0]
1396 result
1397 end
1398.,.,
1399
1400# reduce 20 omitted
1401
1402# reduce 21 omitted
1403
1404# reduce 22 omitted
1405
1406# reduce 23 omitted
1407
1408module_eval(<<'.,.,', 'C_parser.y.rb', 104)
1409 def _reduce_24(val, _values, result)
1410 result = [ val[0], val[1] ]
1411 result
1412 end
1413.,.,
1414
1415module_eval(<<'.,.,', 'C_parser.y.rb', 106)
1416 def _reduce_25(val, _values, result)
1417 result = [ :OP_SIZEOF_EXPR, val[1] ]
1418 result
1419 end
1420.,.,
1421
1422module_eval(<<'.,.,', 'C_parser.y.rb', 108)
1423 def _reduce_26(val, _values, result)
1424 result = [ :OP_SIZEOF_TYPE, val[1] ]
1425 result
1426 end
1427.,.,
1428
1429module_eval(<<'.,.,', 'C_parser.y.rb', 109)
1430 def _reduce_27(val, _values, result)
1431 result = val[1]
1432 result
1433 end
1434.,.,
1435
1436module_eval(<<'.,.,', 'C_parser.y.rb', 110)
1437 def _reduce_28(val, _values, result)
1438 result = val[1]
1439 result
1440 end
1441.,.,
1442
1443module_eval(<<'.,.,', 'C_parser.y.rb', 113)
1444 def _reduce_29(val, _values, result)
1445 result = :OP_U_AMP
1446 result
1447 end
1448.,.,
1449
1450module_eval(<<'.,.,', 'C_parser.y.rb', 114)
1451 def _reduce_30(val, _values, result)
1452 result = :OP_U_ASTER
1453 result
1454 end
1455.,.,
1456
1457module_eval(<<'.,.,', 'C_parser.y.rb', 115)
1458 def _reduce_31(val, _values, result)
1459 result = :OP_U_PLUS
1460 result
1461 end
1462.,.,
1463
1464module_eval(<<'.,.,', 'C_parser.y.rb', 116)
1465 def _reduce_32(val, _values, result)
1466 result = :OP_U_MINUS
1467 result
1468 end
1469.,.,
1470
1471module_eval(<<'.,.,', 'C_parser.y.rb', 117)
1472 def _reduce_33(val, _values, result)
1473 result = :OP_U_TILDE
1474 result
1475 end
1476.,.,
1477
1478module_eval(<<'.,.,', 'C_parser.y.rb', 118)
1479 def _reduce_34(val, _values, result)
1480 result = :OP_U_EXCLAM
1481 result
1482 end
1483.,.,
1484
1485# reduce 35 omitted
1486
1487module_eval(<<'.,.,', 'C_parser.y.rb', 123)
1488 def _reduce_36(val, _values, result)
1489 result = [ :CAST, val[1], val[3] ]
1490 result
1491 end
1492.,.,
1493
1494# reduce 37 omitted
1495
1496module_eval(<<'.,.,', 'C_parser.y.rb', 128)
1497 def _reduce_38(val, _values, result)
1498 result = [ :OP_MULT, val[0], val[2] ]
1499 result
1500 end
1501.,.,
1502
1503module_eval(<<'.,.,', 'C_parser.y.rb', 130)
1504 def _reduce_39(val, _values, result)
1505 result = [ :OP_DIV, val[0], val[2] ]
1506 result
1507 end
1508.,.,
1509
1510module_eval(<<'.,.,', 'C_parser.y.rb', 132)
1511 def _reduce_40(val, _values, result)
1512 result = [ :OP_REMAIN, val[0], val[2] ]
1513 result
1514 end
1515.,.,
1516
1517# reduce 41 omitted
1518
1519module_eval(<<'.,.,', 'C_parser.y.rb', 137)
1520 def _reduce_42(val, _values, result)
1521 result = [ :OP_ADD, val[0], val[2] ]
1522 result
1523 end
1524.,.,
1525
1526module_eval(<<'.,.,', 'C_parser.y.rb', 139)
1527 def _reduce_43(val, _values, result)
1528 result = [ :OP_SUB, val[0], val[2] ]
1529 result
1530 end
1531.,.,
1532
1533# reduce 44 omitted
1534
1535module_eval(<<'.,.,', 'C_parser.y.rb', 144)
1536 def _reduce_45(val, _values, result)
1537 result = [ :OP_LSFT, val[0], val[2] ]
1538 result
1539 end
1540.,.,
1541
1542module_eval(<<'.,.,', 'C_parser.y.rb', 146)
1543 def _reduce_46(val, _values, result)
1544 result = [ :OP_RSFT, val[0], val[2] ]
1545 result
1546 end
1547.,.,
1548
1549# reduce 47 omitted
1550
1551module_eval(<<'.,.,', 'C_parser.y.rb', 151)
1552 def _reduce_48(val, _values, result)
1553 result = [ :OP_LT, val[0], val[2] ]
1554 result
1555 end
1556.,.,
1557
1558module_eval(<<'.,.,', 'C_parser.y.rb', 153)
1559 def _reduce_49(val, _values, result)
1560 result = [ :OP_GT, val[0], val[2] ]
1561 result
1562 end
1563.,.,
1564
1565module_eval(<<'.,.,', 'C_parser.y.rb', 155)
1566 def _reduce_50(val, _values, result)
1567 result = [ :OP_LE, val[0], val[2] ]
1568 result
1569 end
1570.,.,
1571
1572module_eval(<<'.,.,', 'C_parser.y.rb', 157)
1573 def _reduce_51(val, _values, result)
1574 result = [ :OP_GE, val[0], val[2] ]
1575 result
1576 end
1577.,.,
1578
1579# reduce 52 omitted
1580
1581module_eval(<<'.,.,', 'C_parser.y.rb', 162)
1582 def _reduce_53(val, _values, result)
1583 result = [ :OP_EQ, val[0], val[2] ]
1584 result
1585 end
1586.,.,
1587
1588module_eval(<<'.,.,', 'C_parser.y.rb', 164)
1589 def _reduce_54(val, _values, result)
1590 result = [ :OP_NE, val[0], val[2] ]
1591 result
1592 end
1593.,.,
1594
1595# reduce 55 omitted
1596
1597module_eval(<<'.,.,', 'C_parser.y.rb', 169)
1598 def _reduce_56(val, _values, result)
1599 result = [ :OP_AND, val[0], val[2] ]
1600 result
1601 end
1602.,.,
1603
1604# reduce 57 omitted
1605
1606module_eval(<<'.,.,', 'C_parser.y.rb', 174)
1607 def _reduce_58(val, _values, result)
1608 result = [ :OP_EOR, val[0], val[2] ]
1609 result
1610 end
1611.,.,
1612
1613# reduce 59 omitted
1614
1615module_eval(<<'.,.,', 'C_parser.y.rb', 179)
1616 def _reduce_60(val, _values, result)
1617 result = [ :OP_OR, val[0], val[2] ]
1618 result
1619 end
1620.,.,
1621
1622# reduce 61 omitted
1623
1624module_eval(<<'.,.,', 'C_parser.y.rb', 184)
1625 def _reduce_62(val, _values, result)
1626 result = [ :OP_LAND, val[0], val[2] ]
1627 result
1628 end
1629.,.,
1630
1631# reduce 63 omitted
1632
1633module_eval(<<'.,.,', 'C_parser.y.rb', 189)
1634 def _reduce_64(val, _values, result)
1635 result = [ :OP_LOR, val[0], val[2] ]
1636 result
1637 end
1638.,.,
1639
1640# reduce 65 omitted
1641
1642module_eval(<<'.,.,', 'C_parser.y.rb', 194)
1643 def _reduce_66(val, _values, result)
1644 result = [ :OP_CEX, val[0], val[2].get_elements, val[4] ]
1645 result
1646 end
1647.,.,
1648
1649module_eval(<<'.,.,', 'C_parser.y.rb', 201)
1650 def _reduce_67(val, _values, result)
1651 result = Expression.new( val[0] )
1652 # result.print
1653
1654 result
1655 end
1656.,.,
1657
1658module_eval(<<'.,.,', 'C_parser.y.rb', 208)
1659 def _reduce_68(val, _values, result)
1660 result = Expression.new( val[0] )
1661 # result.print
1662# res = result.eval_const( nil )
1663
1664 # if res then
1665 # puts "val: #{res}"
1666 # else
1667 # puts "val: nil"
1668 # end
1669
1670 result
1671 end
1672.,.,
1673
1674# reduce 69 omitted
1675
1676module_eval(<<'.,.,', 'C_parser.y.rb', 237)
1677 def _reduce_70(val, _values, result)
1678 result = CIntType.new( -3 ) # storage class は無視
1679
1680 result
1681 end
1682.,.,
1683
1684# reduce 71 omitted
1685
1686module_eval(<<'.,.,', 'C_parser.y.rb', 242)
1687 def _reduce_72(val, _values, result)
1688 result = CIntType.new( -3 )
1689 result.set_qualifier val[0]
1690
1691 result
1692 end
1693.,.,
1694
1695module_eval(<<'.,.,', 'C_parser.y.rb', 247)
1696 def _reduce_73(val, _values, result)
1697 result = val[1] # storage class は無視
1698
1699 result
1700 end
1701.,.,
1702
1703module_eval(<<'.,.,', 'C_parser.y.rb', 251)
1704 def _reduce_74(val, _values, result)
1705 result = val[1].merge val[0]
1706
1707 result
1708 end
1709.,.,
1710
1711module_eval(<<'.,.,', 'C_parser.y.rb', 255)
1712 def _reduce_75(val, _values, result)
1713 val[1].set_qualifier val[0]
1714 result = val[1]
1715
1716 result
1717 end
1718.,.,
1719
1720module_eval(<<'.,.,', 'C_parser.y.rb', 262)
1721 def _reduce_76(val, _values, result)
1722 result = [val[0]]
1723 result
1724 end
1725.,.,
1726
1727module_eval(<<'.,.,', 'C_parser.y.rb', 264)
1728 def _reduce_77(val, _values, result)
1729 result << val[2]
1730 result
1731 end
1732.,.,
1733
1734# reduce 78 omitted
1735
1736module_eval(<<'.,.,', 'C_parser.y.rb', 269)
1737 def _reduce_79(val, _values, result)
1738 val[0].set_initializer( val[2] )
1739 result
1740 end
1741.,.,
1742
1743module_eval(<<'.,.,', 'C_parser.y.rb', 272)
1744 def _reduce_80(val, _values, result)
1745 set_no_type_name true; result = CVoidType.new
1746 result
1747 end
1748.,.,
1749
1750module_eval(<<'.,.,', 'C_parser.y.rb', 273)
1751 def _reduce_81(val, _values, result)
1752 set_no_type_name true; result = CFloatType.new(-32)
1753 result
1754 end
1755.,.,
1756
1757module_eval(<<'.,.,', 'C_parser.y.rb', 274)
1758 def _reduce_82(val, _values, result)
1759 set_no_type_name true; result = CFloatType.new(-64)
1760 result
1761 end
1762.,.,
1763
1764module_eval(<<'.,.,', 'C_parser.y.rb', 275)
1765 def _reduce_83(val, _values, result)
1766 set_no_type_name true; result = CBoolType.new
1767 result
1768 end
1769.,.,
1770
1771module_eval(<<'.,.,', 'C_parser.y.rb', 276)
1772 def _reduce_84(val, _values, result)
1773 set_no_type_name true; result = val[0]
1774 result
1775 end
1776.,.,
1777
1778module_eval(<<'.,.,', 'C_parser.y.rb', 277)
1779 def _reduce_85(val, _values, result)
1780 set_no_type_name true; result = CVoidType.new
1781 result
1782 end
1783.,.,
1784
1785module_eval(<<'.,.,', 'C_parser.y.rb', 278)
1786 def _reduce_86(val, _values, result)
1787 set_no_type_name true; result = CVoidType.new
1788 result
1789 end
1790.,.,
1791
1792module_eval(<<'.,.,', 'C_parser.y.rb', 279)
1793 def _reduce_87(val, _values, result)
1794 set_no_type_name true; result = CDefinedType.new( val[0].val )
1795 result
1796 end
1797.,.,
1798
1799module_eval(<<'.,.,', 'C_parser.y.rb', 281)
1800 def _reduce_88(val, _values, result)
1801 set_no_type_name true; result = CIntType.new(-11 )
1802 result
1803 end
1804.,.,
1805
1806module_eval(<<'.,.,', 'C_parser.y.rb', 282)
1807 def _reduce_89(val, _values, result)
1808 set_no_type_name true; result = CIntType.new( -2 )
1809 result
1810 end
1811.,.,
1812
1813module_eval(<<'.,.,', 'C_parser.y.rb', 283)
1814 def _reduce_90(val, _values, result)
1815 set_no_type_name true; result = CIntType.new( -3 )
1816 result
1817 end
1818.,.,
1819
1820module_eval(<<'.,.,', 'C_parser.y.rb', 284)
1821 def _reduce_91(val, _values, result)
1822 set_no_type_name true; result = CIntType.new( -4 )
1823 result
1824 end
1825.,.,
1826
1827module_eval(<<'.,.,', 'C_parser.y.rb', 287)
1828 def _reduce_92(val, _values, result)
1829 set_no_type_name true
1830 result = CIntType.new( -3 )
1831 result.set_sign :SIGNED
1832
1833 result
1834 end
1835.,.,
1836
1837module_eval(<<'.,.,', 'C_parser.y.rb', 293)
1838 def _reduce_93(val, _values, result)
1839 set_no_type_name true
1840 result = CIntType.new( -3 )
1841 result.set_sign :UNSIGNED
1842
1843 result
1844 end
1845.,.,
1846
1847module_eval(<<'.,.,', 'C_parser.y.rb', 301)
1848 def _reduce_94(val, _values, result)
1849 StructType.set_define( true )
1850 result
1851 end
1852.,.,
1853
1854module_eval(<<'.,.,', 'C_parser.y.rb', 304)
1855 def _reduce_95(val, _values, result)
1856 StructType.end_of_parse
1857 result = val[1]
1858
1859 result
1860 end
1861.,.,
1862
1863module_eval(<<'.,.,', 'C_parser.y.rb', 309)
1864 def _reduce_96(val, _values, result)
1865 result = CStructType.new()
1866 StructType.set_define( true )
1867
1868 result
1869 end
1870.,.,
1871
1872module_eval(<<'.,.,', 'C_parser.y.rb', 314)
1873 def _reduce_97(val, _values, result)
1874 StructType.end_of_parse
1875 result = val[1]
1876
1877 result
1878 end
1879.,.,
1880
1881module_eval(<<'.,.,', 'C_parser.y.rb', 319)
1882 def _reduce_98(val, _values, result)
1883 StructType.set_define( false )
1884 StructType.end_of_parse
1885 result = val[1]
1886
1887 result
1888 end
1889.,.,
1890
1891# reduce 99 omitted
1892
1893# reduce 100 omitted
1894
1895module_eval(<<'.,.,', 'C_parser.y.rb', 331)
1896 def _reduce_101(val, _values, result)
1897 result = CStructType.new( val[0].val )
1898 set_no_type_name true
1899
1900 result
1901 end
1902.,.,
1903
1904module_eval(<<'.,.,', 'C_parser.y.rb', 340)
1905 def _reduce_102(val, _values, result)
1906 val[1].each { |i| # i: Decl
1907 i.set_type( val[0] )
1908 i.set_kind( :MEMBER )
1909 i.check
1910 CStructType.new_member( i )
1911 }
1912 result = val[1]
1913
1914 result
1915 end
1916.,.,
1917
1918# reduce 103 omitted
1919
1920# reduce 104 omitted
1921
1922# reduce 105 omitted
1923
1924module_eval(<<'.,.,', 'C_parser.y.rb', 359)
1925 def _reduce_106(val, _values, result)
1926 result = val[1].merge val[0]
1927
1928 result
1929 end
1930.,.,
1931
1932module_eval(<<'.,.,', 'C_parser.y.rb', 363)
1933 def _reduce_107(val, _values, result)
1934 result = CIntType.new( -3 )
1935 result.set_qualifier val[0]
1936
1937 result
1938 end
1939.,.,
1940
1941module_eval(<<'.,.,', 'C_parser.y.rb', 368)
1942 def _reduce_108(val, _values, result)
1943 val[1].set_qualifier val[0]
1944 result = val[1]
1945
1946 result
1947 end
1948.,.,
1949
1950module_eval(<<'.,.,', 'C_parser.y.rb', 374)
1951 def _reduce_109(val, _values, result)
1952 result = [ val[0] ]
1953 result
1954 end
1955.,.,
1956
1957module_eval(<<'.,.,', 'C_parser.y.rb', 376)
1958 def _reduce_110(val, _values, result)
1959 result << val[2]
1960 result
1961 end
1962.,.,
1963
1964# reduce 111 omitted
1965
1966# reduce 112 omitted
1967
1968# reduce 113 omitted
1969
1970# reduce 114 omitted
1971
1972# reduce 115 omitted
1973
1974# reduce 116 omitted
1975
1976# reduce 117 omitted
1977
1978# reduce 118 omitted
1979
1980# reduce 119 omitted
1981
1982# reduce 120 omitted
1983
1984# reduce 121 omitted
1985
1986# reduce 122 omitted
1987
1988# reduce 123 omitted
1989
1990# reduce 124 omitted
1991
1992# reduce 125 omitted
1993
1994# reduce 126 omitted
1995
1996module_eval(<<'.,.,', 'C_parser.y.rb', 418)
1997 def _reduce_127(val, _values, result)
1998 result = CEnumType.new( -1 )
1999 result
2000 end
2001.,.,
2002
2003# reduce 128 omitted
2004
2005# reduce 129 omitted
2006
2007# reduce 130 omitted
2008
2009# reduce 131 omitted
2010
2011module_eval(<<'.,.,', 'C_parser.y.rb', 434)
2012 def _reduce_132(val, _values, result)
2013 result = :CONST
2014 result
2015 end
2016.,.,
2017
2018module_eval(<<'.,.,', 'C_parser.y.rb', 435)
2019 def _reduce_133(val, _values, result)
2020 result = :VOLATILE
2021 result
2022 end
2023.,.,
2024
2025module_eval(<<'.,.,', 'C_parser.y.rb', 440)
2026 def _reduce_134(val, _values, result)
2027 val[1].set_type( val[0] )
2028 result = val[1]
2029
2030 result
2031 end
2032.,.,
2033
2034# reduce 135 omitted
2035
2036module_eval(<<'.,.,', 'C_parser.y.rb', 446)
2037 def _reduce_136(val, _values, result)
2038 result = Decl.new( val[1].val )
2039 result.set_type( val[0] )
2040
2041 result
2042 end
2043.,.,
2044
2045module_eval(<<'.,.,', 'C_parser.y.rb', 452)
2046 def _reduce_137(val, _values, result)
2047 result = Decl.new( val[0].val )
2048 result
2049 end
2050.,.,
2051
2052module_eval(<<'.,.,', 'C_parser.y.rb', 454)
2053 def _reduce_138(val, _values, result)
2054 result = val[1]
2055 result
2056 end
2057.,.,
2058
2059module_eval(<<'.,.,', 'C_parser.y.rb', 457)
2060 def _reduce_139(val, _values, result)
2061 val[0].set_type( CArrayType.new( val[2] ) )
2062 result = val[0]
2063
2064 result
2065 end
2066.,.,
2067
2068module_eval(<<'.,.,', 'C_parser.y.rb', 462)
2069 def _reduce_140(val, _values, result)
2070 val[0].set_type( CArrayType.new )
2071 result = val[0]
2072
2073 result
2074 end
2075.,.,
2076
2077module_eval(<<'.,.,', 'C_parser.y.rb', 467)
2078 def _reduce_141(val, _values, result)
2079 # Generator.warning( "W6001 need 'void' for no parameter" )
2080 val[0].set_type( CFuncType.new )
2081 result = val[0]
2082
2083 result
2084 end
2085.,.,
2086
2087module_eval(<<'.,.,', 'C_parser.y.rb', 475)
2088 def _reduce_142(val, _values, result)
2089 # Generator.warning( "W6002 need 'void' for no parameter" )
2090 val[0].set_type( CFuncType.new )
2091 result = val[0]
2092
2093 result
2094 end
2095.,.,
2096
2097module_eval(<<'.,.,', 'C_parser.y.rb', 482)
2098 def _reduce_143(val, _values, result)
2099 result = CPtrType.new
2100 result
2101 end
2102.,.,
2103
2104module_eval(<<'.,.,', 'C_parser.y.rb', 485)
2105 def _reduce_144(val, _values, result)
2106 result = CPtrType.new
2107 result.set_qualifier( val[1] )
2108
2109 result
2110 end
2111.,.,
2112
2113module_eval(<<'.,.,', 'C_parser.y.rb', 490)
2114 def _reduce_145(val, _values, result)
2115 val[1].set_type(CPtrType.new)
2116 result = val[1]
2117
2118 result
2119 end
2120.,.,
2121
2122module_eval(<<'.,.,', 'C_parser.y.rb', 495)
2123 def _reduce_146(val, _values, result)
2124 ptrtype = CPtrType.new
2125 ptrtype.set_qualifier( val[1] )
2126 val[2].set_type( ptrtype )
2127 result = val[2]
2128
2129 result
2130 end
2131.,.,
2132
2133# reduce 147 omitted
2134
2135# reduce 148 omitted
2136
2137# reduce 149 omitted
2138
2139# reduce 150 omitted
2140
2141# reduce 151 omitted
2142
2143# reduce 152 omitted
2144
2145# reduce 153 omitted
2146
2147# reduce 154 omitted
2148
2149# reduce 155 omitted
2150
2151# reduce 156 omitted
2152
2153# reduce 157 omitted
2154
2155# reduce 158 omitted
2156
2157# reduce 159 omitted
2158
2159# reduce 160 omitted
2160
2161# reduce 161 omitted
2162
2163# reduce 162 omitted
2164
2165# reduce 163 omitted
2166
2167module_eval(<<'.,.,', 'C_parser.y.rb', 559)
2168 def _reduce_164(val, _values, result)
2169 Generator.warning( "W6003 need 'void' for no parameter" )
2170
2171 result
2172 end
2173.,.,
2174
2175# reduce 165 omitted
2176
2177module_eval(<<'.,.,', 'C_parser.y.rb', 564)
2178 def _reduce_166(val, _values, result)
2179 Generator.warning( "W6004 need 'void' for no parameter" )
2180
2181 result
2182 end
2183.,.,
2184
2185# reduce 167 omitted
2186
2187module_eval(<<'.,.,', 'C_parser.y.rb', 571)
2188 def _reduce_168(val, _values, result)
2189 result = val[0]
2190 result
2191 end
2192.,.,
2193
2194module_eval(<<'.,.,', 'C_parser.y.rb', 573)
2195 def _reduce_169(val, _values, result)
2196 result = val[1]
2197 result
2198 end
2199.,.,
2200
2201module_eval(<<'.,.,', 'C_parser.y.rb', 575)
2202 def _reduce_170(val, _values, result)
2203 result = val[1]
2204 result
2205 end
2206.,.,
2207
2208module_eval(<<'.,.,', 'C_parser.y.rb', 577)
2209 def _reduce_171(val, _values, result)
2210 result = C_EXP.new( val[2] )
2211 result
2212 end
2213.,.,
2214
2215module_eval(<<'.,.,', 'C_parser.y.rb', 582)
2216 def _reduce_172(val, _values, result)
2217 result = [ val[0] ]
2218
2219 result
2220 end
2221.,.,
2222
2223module_eval(<<'.,.,', 'C_parser.y.rb', 586)
2224 def _reduce_173(val, _values, result)
2225 val[0] << val[2]
2226 result = val[0]
2227
2228 result
2229 end
2230.,.,
2231
2232# reduce 174 omitted
2233
2234# reduce 175 omitted
2235
2236# reduce 176 omitted
2237
2238# reduce 177 omitted
2239
2240# reduce 178 omitted
2241
2242# reduce 179 omitted
2243
2244# reduce 180 omitted
2245
2246# reduce 181 omitted
2247
2248# reduce 182 omitted
2249
2250# reduce 183 omitted
2251
2252# reduce 184 omitted
2253
2254module_eval(<<'.,.,', 'C_parser.y.rb', 614)
2255 def _reduce_185(val, _values, result)
2256 val[2].each{ |i|
2257 i.set_kind( :TYPEDEF )
2258 }
2259 Typedef.new_decl_list( val[1], val[2] )
2260 # val[1].show_tree 0
2261
2262 result
2263 end
2264.,.,
2265
2266module_eval(<<'.,.,', 'C_parser.y.rb', 623)
2267 def _reduce_186(val, _values, result)
2268 result = [ val[0] ]
2269 result
2270 end
2271.,.,
2272
2273module_eval(<<'.,.,', 'C_parser.y.rb', 625)
2274 def _reduce_187(val, _values, result)
2275 result << val[2]
2276 result
2277 end
2278.,.,
2279
2280# reduce 188 omitted
2281
2282# reduce 189 omitted
2283
2284# reduce 190 omitted
2285
2286# reduce 191 omitted
2287
2288# reduce 192 omitted
2289
2290# reduce 193 omitted
2291
2292# reduce 194 omitted
2293
2294# reduce 195 omitted
2295
2296# reduce 196 omitted
2297
2298# reduce 197 omitted
2299
2300# reduce 198 omitted
2301
2302# reduce 199 omitted
2303
2304# reduce 200 omitted
2305
2306# reduce 201 omitted
2307
2308# reduce 202 omitted
2309
2310# reduce 203 omitted
2311
2312# reduce 204 omitted
2313
2314# reduce 205 omitted
2315
2316# reduce 206 omitted
2317
2318# reduce 207 omitted
2319
2320# reduce 208 omitted
2321
2322# reduce 209 omitted
2323
2324# reduce 210 omitted
2325
2326# reduce 211 omitted
2327
2328# reduce 212 omitted
2329
2330# reduce 213 omitted
2331
2332# reduce 214 omitted
2333
2334# reduce 215 omitted
2335
2336# reduce 216 omitted
2337
2338# reduce 217 omitted
2339
2340# reduce 218 omitted
2341
2342# reduce 219 omitted
2343
2344# reduce 220 omitted
2345
2346# reduce 221 omitted
2347
2348# reduce 222 omitted
2349
2350# reduce 223 omitted
2351
2352# reduce 224 omitted
2353
2354# reduce 225 omitted
2355
2356# reduce 226 omitted
2357
2358# reduce 227 omitted
2359
2360# reduce 228 omitted
2361
2362# reduce 229 omitted
2363
2364# reduce 230 omitted
2365
2366# reduce 231 omitted
2367
2368# reduce 232 omitted
2369
2370# reduce 233 omitted
2371
2372# reduce 234 omitted
2373
2374# reduce 235 omitted
2375
2376# reduce 236 omitted
2377
2378# reduce 237 omitted
2379
2380module_eval(<<'.,.,', 'C_parser.y.rb', 706)
2381 def _reduce_238(val, _values, result)
2382 result = NamespacePath.new( val[0].val, false )
2383 result
2384 end
2385.,.,
2386
2387module_eval(<<'.,.,', 'C_parser.y.rb', 707)
2388 def _reduce_239(val, _values, result)
2389 result = NamespacePath.new( val[1].val, true )
2390 result
2391 end
2392.,.,
2393
2394module_eval(<<'.,.,', 'C_parser.y.rb', 709)
2395 def _reduce_240(val, _values, result)
2396 result = val[0].append!( val[2].val )
2397 result
2398 end
2399.,.,
2400
2401def _reduce_none(val, _values, result)
2402 val[0]
2403end
2404
2405end # class C_parser
2406
2407
Note: See TracBrowser for help on using the repository browser.