source: asp3_gr_sakura/trunk/tecsgen/tecslib/core/bnf.tab.rb@ 317

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

GR-SAKURA向けASP3を追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby
File size: 135.8 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 Generator < Racc::Parser
9
10module_eval(<<'...end bnf.y.rb/module_eval...', 'bnf.y.rb', 1504)
11
12 RESERVED = {
13 # keyword
14 'namespace' => :NAMESPACE,
15 'signature' => :SIGNATURE,
16 'celltype' => :CELLTYPE,
17 'cell' => :CELL,
18 'attr' => :ATTRIBUTE,
19 'var' => :VAR,
20 'call' => :CALL,
21 'entry' => :ENTRY,
22 'composite' => :COMPOSITE,
23 'require' => :REQUIRE,
24 'factory' => :FACTORY,
25 'FACTORY' => :CTFACTORY,
26 'typedef' => :TYPEDEF,
27 'struct' => :STRUCT,
28 'region' => :REGION,
29 'import' => :IMPORT,
30 'import_C' => :IMPORT_C,
31 'generate' => :GENERATE,
32
33 # types
34 'void' => :VOID,
35
36 'volatile'=> :VOLATILE,
37 'const' => :CONST,
38
39 'signed' => :SIGNED,
40 'unsigned'=> :UNSIGNED,
41
42 'int8_t' => :INT8_T,
43 'int16_t' => :INT16_T,
44 'int32_t' => :INT32_T,
45 'int64_t' => :INT64_T,
46 'int128_t' => :INT128_T,
47 'uint8_t' => :UINT8_T,
48 'uint16_t' => :UINT16_T,
49 'uint32_t' => :UINT32_T,
50 'uint64_t' => :UINT64_T,
51 'uint128_t' => :UINT128_T,
52
53 'float32_t' => :FLOAT32_T,
54 'double64_t' => :DOUBLE64_T,
55 'bool_t' => :BOOL_T,
56 'char_t' => :CHAR_T,
57 'schar_t' => :SCHAR_T,
58 'uchar_t' => :UCHAR_T,
59
60 # unrecommened types
61 'int' => :INT,
62# 'intptr' => :INTPTR,
63 'short' => :SHORT,
64 'long' => :LONG,
65
66 # obsolete types
67 'char' => :CHAR,
68# 'int8' => :INT8,
69# 'int16' => :INT16,
70# 'int32' => :INT32,
71# 'int64' => :INT64,
72# 'int128' => :INT128,
73# 'float' => :FLOAT,
74# 'double' => :DOUBLE,
75# 'bool' => :BOOL,
76
77 'enum' => :ENUM,
78 'enum8' => :ENUM8,
79 'enum16' => :ENUM16,
80 'enum32' => :ENUM32,
81 'enum64' => :ENUM64,
82
83 'true' => :TRUE,
84 'false' => :FALSE,
85
86 'C_EXP' => :C_EXP,
87
88 'Descriptor' => :DESCRIPTOR,
89
90 # location information for TECSCDE
91 '__location_information__' => :__LOCATION_INFORMATION__,
92 '__cell__' => :__CELL__,
93 '__join__' => :__JOIN__,
94 }
95
96 # 指定子 '[]' 内
97でのみ使用できるキーワード
98 RESERVED2 = {
99 # specifier
100 'id' => :ID,
101
102 # signature
103 'callback' => :CALLBACK,
104 'context' => :CONTEXT,
105 'deviate' => :DEVIATE,
106
107 # celltype
108 'singleton' => :SINGLETON,
109 'idx_is_id' => :IDX_IS_ID,
110 'active' => :ACTIVE,
111
112 # port (entry)
113 'inline' => :INLINE,
114 'ref_desc' => :REF_DESC, # call も可
115
116 # port (call)
117 'optional' => :OPTIONAL,
118 'dynamic' => :DYNAMIC,
119
120 # port (call), attribute
121 'omit' => :OMIT,
122
123 # attribute
124 'choice' => :CHOICE,
125
126 # cell
127 'allocator' => :ALLOCATOR,
128 'prototype' => :PROTOTYPE,
129 'restrict' => :RESTRICT,
130
131 # FuncType
132 'oneway' => :ONEWAY,
133
134 # parameter (basic)
135 'in' => :IN,
136 'out' => :OUT,
137 'inout' => :INOUT,
138 'send' => :SEND,
139 'receive' => :RECEIVE,
140
141 # parameter
142 'size_is' => :SIZE_IS,
143 'count_is' => :COUNT_IS,
144 'string' => :STRING,
145 'nullable' => :NULLABLE,
146
147 'through' => :THROUGH,
148 'in_through' => :IN_THROUGH,
149 'out_through' => :OUT_THROUGH,
150 'to_through' => :TO_THROUGH,
151
152 'node' => :NODE,
153 'linkunit' => :LINKUNIT ,
154 'domain' => :DOMAIN,
155 'class' => :CLASS,
156 }
157
158 # 再帰的なパーサのためのスタック
159 @@generator_nest = -1
160 @@generator_stack = []
161 @@current_locale = []
162
163 # import_C 中である
164 @@import_C = false
165
166 # すべての構文解析が完了した
167 @@b_end_all_parse = false
168
169 def self.parse( file_name, plugin = nil, b_reuse = false )
170 # パーサインスタンスを生成(別パーサで読み込む)
171 parser = Generator.new
172
173 # plugin から import されている場合の plugin 設定
174 parser.set_plugin plugin
175
176 # reuse フラグを設定
177 parser.set_reuse b_reuse
178
179 # cdl をパース
180 parser.parse( [file_name] )
181
182 # 終期化 パーサスタックを戻す
183 parser.finalize
184 end
185
186 def finalize
187
188 # mikan Namespace.pop
189 Namespace.pop
190 Signature.pop
191 Celltype.pop
192 Cell.pop
193 CompositeCelltype.pop
194 end
195
196 def set_plugin( plugin )
197 @plugin = plugin
198 end
199
200 def self.get_plugin
201 if @@generator_stack[@@generator_nest] then
202 # tecsgen 引数の cdl が import される場合は nil
203 return @@generator_stack[@@generator_nest].get_plugin
204 else
205 return nil
206 end
207 end
208
209 def get_plugin
210 @plugin
211 end
212
213 def set_reuse( b_reuse )
214 @b_reuse = b_reuse
215 end
216
217 def self.is_reuse?
218 if @@generator_stack[@@generator_nest] then
219 # tecsgen 引数の cdl が import される場合は nil
220 return @@generator_stack[@@generator_nest].is_reuse?
221 else
222 return false
223 end
224 end
225
226 def is_reuse?
227 @b_reuse
228 end
229
230 def parse(files)
231
232 # mikan Namespace.push
233 Namespace.push
234 Signature.push
235 Celltype.push
236 Cell.push
237 CompositeCelltype.push
238
239 @@generator_nest += 1
240 @@generator_stack[@@generator_nest] = self
241 @in_specifier = false
242
243 begin
244
245 @q = []
246 b_in_comment = false
247 b_in_string = false
248
249 # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
250 TECS_LANG::set_kcode_binary
251
252 files.each {|file|
253 lineno = 1
254 begin
255 string = ""
256#2.0 IO.foreach(file) {|line|
257 TECSIO.foreach(file) {|line|
258 col = 1
259# line.rstrip! 改行含む文字列を扱うようになったので、ここで空白を取り除けなくなった
260
261 until line.empty?
262
263 if b_in_comment
264 case line
265 # コメント終了
266 when /\A\*\//
267 b_in_comment = false
268 when /\A./
269 ;
270 when /\s+/ # line.rstrip! を止めたため \n などの空白文字とまっちするルールが必
271要になった
272 ;
273 end
274 elsif b_in_string
275 if line =~ /\A(?:[^"\\]|\\.)*"/
276 string = "#{string}#{$&}"
277 @q << [:STRING_LITERAL, Token.new(string, file, lineno, col)]
278 b_in_string = false
279 elsif line =~ /\A.*\\\n/ # 改行 \n は '.' にマッチしない
280 string += $&
281 elsif line =~ /\A.*\n/ # 改行 \n は '.' にマッチしない
282 string += line
283 # この位置では error メソッドは使えない (token 読出し前)
284 puts "error: #{file} line #{lineno}: string literal has newline without escape"
285 @@n_error += 1
286 end
287 else
288 case line
289 # 空白、プリプロセスディレクティブ
290 when /\A\s+/
291 ;
292 # 識別子
293 when /\A[a-zA-Z_]\w*/
294 word = $&
295 @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
296 # 16 進数定数
297 when /\A0x[0-9A-Fa-f]+/
298 @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
299 # 8 進数定数
300 when /\A0[0-7]+/
301 @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
302 # 浮動小数定数
303 when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
304 @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
305 # 整数定数
306 when /\A\d+/
307 @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
308 # 文字定数
309 when /\A'(?:[^'\\]|\\.)'/
310 @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
311 # 文字列
312# "#include #include #include \"../systask/logtask.cfg\" 最後の " 忘れ)で無限ループ
313# when /\A"(?:[^"\\]+|\\.)*"/
314 when /\A"(?:[^"\\]|\\.)*"/ # これはうまく行くようだ
315 @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
316 # 文字列 (改行あり)
317 when /\A"(?:[^"\\]|\\.)*\\\n$/
318 string = $&
319 b_in_string = true
320 # 文字列 (改行あり, escape なし)
321 when /\A("(?:[^"\\]|\e\.)*)\n$/
322 string = $1 + "\\\n"
323 b_in_string = true
324 # この位置では error メソッドは使えない (token 読出し前) # mikan cdl_error ではない
325 puts "error: #{file} line #{lineno}: string literal has newline without escape"
326 @@n_error += 1
327 # 山括弧で囲まれた文字列
328 when /\A<[0-9A-Za-z_\. \/]+>/ # AB: angle bracke
329 @q << [:AB_STRING_LITERAL, Token.new($&, file, lineno, col)]
330 # 行コメント
331 when /\A\/\/.*$/
332 # 読み飛ばすだけ
333 # コメント開始
334 when /\A\/\*/
335 b_in_comment = true
336 # '>>', '<<' など
337 when /\A>>/, /\A<</, /\A==/, /\A!=/, /\A\&\&/, /\A\|\|/
338 @q << [$&, Token.new($&, file, lineno, col)]
339 when /\A::/, /\A=>/, /\A<=/, /\A>=/
340 @q << [$&, Token.new($&, file, lineno, col)]
341 # '(', ')' など一文字の記号、または未知の記号
342 when /\A./
343 @q << [$&, Token.new($&, file, lineno, col)]
344 else
345 raise
346 end
347 end
348
349 line = $'
350 col += $&.length
351 end
352
353 lineno += 1
354 }
355
356 rescue => evar
357 Generator.error( "G1014 while open or reading \'$1\'" , file )
358 if $debug then
359 p puts( evar )
360 pp $@
361 end
362 end
363 }
364
365 # 終了の印
366 @q << nil
367
368 @yydebug = true
369 do_parse
370
371 ensure
372 @@generator_nest -= 1
373 TECS_LANG::reset_kcode
374 end
375
376 end
377
378 def next_token
379 token = @q.shift
380
381 if token then
382 @@current_locale[@@generator_nest] = token[1].locale
383
384 if token[0] == :IDENTIFIER then
385 # TYPE_NAME トークンへ置換え
386 if Namespace.is_typename?( token[1].val ) then
387 token[0] = :TYPE_NAME
388 elsif @in_specifier && RESERVED2[ token[1].val.to_s ] then
389 # 指定子キーワード( '[', ']' 内
390でのみ有効)
391 token[0] = RESERVED2[ token[1].val.to_s ]
392 end
393 end
394
395 if $debug then # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生)
396 locale = @@current_locale[@@generator_nest]
397 if token then
398 print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
399 else
400 print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
401 end
402 end
403 else
404 token = [ false, false ]
405 end
406
407 token
408 end
409
410 def on_error(t, v, vstack)
411 # p t, token_to_str(t), vstack
412 if token_to_str(t) == "$end" then
413 Generator.error( "G1015 Unexpected EOF" )
414 else
415 Generator.error( "G1016 syntax error near \'$1\'" , v.val )
416 end
417 end
418
419 def self.current_locale
420 @@current_locale[ @@generator_nest ]
421 end
422
423 @@n_error = 0
424 @@n_warning = 0
425
426 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でエラー発生は不適切)
427 def self.error( msg, *arg )
428 locale = nil
429 self.error2( locale, msg, *arg )
430 end
431
432 def self.error2( locale, msg, *arg )
433 @@n_error += 1
434
435 msg = TECSMsg.get_error_message( msg )
436 # $1, $2, ... を arg で置換
437 count = 1
438 arg.each{ |a|
439 str = TECSIO.str_code_convert( msg, a.to_s )
440 msg.sub!( /\$#{count}/, str )
441 count += 1
442 }
443
444 # import_C の中でのエラー?
445 if @@import_C then
446 C_parser.error( msg )
447 else
448
449 # Node の記憶する 位置 (locale) を使用した場合、変更以前に比べ、
450 # 問題発生箇所と異なる位置にエラーが出るため、構文解析中のエラー
451 # は、解析中の位置を出力する.(new_XXX で owner が子要素のチェッ
452 # クをすると owner の行番号が出てしまう点で、ずれが生じている)
453
454 if @@b_end_all_parse == false || locale == nil then
455 locale = @@current_locale[ @@generator_nest ]
456 end
457 if locale then
458 Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
459 else
460 Console.puts "error: #{msg}"
461 end
462 end
463 end
464
465 # このメソッドは構文解析、意味解析からのみ呼出し可(コード生成でウォーニング発生は不適切)
466 def self.warning( msg, *arg )
467 locale = nil
468 self.warning2( locale, msg, *arg )
469 end
470
471 def self.warning2( locale, msg, *arg )
472 @@n_warning += 1
473
474 msg = TECSMsg.get_warning_message( msg )
475 # $1, $2, ... を arg で置換
476 count = 1
477 arg.each{ |a|
478 str = TECSIO.str_code_convert( msg, a.to_s )
479 msg.sub!( /\$#{count}/, str )
480 count += 1
481 }
482
483 # import_C の中でのウォーニング?
484 if @@import_C then
485 C_parser.warning( msg )
486 else
487 if @@b_end_all_parse == false || locale == nil then
488 locale = @@current_locale[ @@generator_nest ]
489 end
490 if locale then
491 Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
492 else
493 Console.puts "warning: #{msg}"
494 end
495 end
496 end
497
498 def self.get_n_error
499 @@n_error
500 end
501
502 def self.get_n_warning
503 @@n_warning
504 end
505
506 def self.get_nest
507 @@generator_nest
508 end
509
510 #=== '[' specifier 始め
511 def set_in_specifier
512 # p "set_in_specifier"
513 @in_specifier = true
514 end
515
516 #=== ']' specifier 終わり
517 def unset_in_specifier
518 # p "unset_in_specifier"
519 @in_specifier = false
520 end
521
522 # statement_specifier は構文解釈途中で参ç…
523§ã—たいため
524 @@statement_specifier_stack = []
525 def self.add_statement_specifier( ss )
526 if( @@statement_specifier_stack[ @@generator_nest ] == nil )then
527 @@statement_specifier_stack[ @@generator_nest ] = [ ss ]
528 else
529 @@statement_specifier_stack[ @@generator_nest ] << ss
530 end
531 end
532
533
534 def self.get_statement_specifier
535 spec_list = @@statement_specifier_stack[ @@generator_nest ]
536 @@statement_specifier_stack[ @@generator_nest ] = nil
537 return spec_list
538 end
539
540 #=== すべての構文解析が完了したことを報告
541 def self.end_all_parse
542 @@b_end_all_parse = true
543 end
544
545...end bnf.y.rb/module_eval...
546##### State transition tables begin ###
547
548clist = [
549'65,566,323,779,733,806,77,346,347,323,77,77,77,160,194,195,196,197,198',
550'199,200,202,174,203,664,133,860,133,99,207,208,209,210,211,212,213,663',
551'244,831,551,394,512,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25',
552'26,27,28,29,30,31,32,33,34,35,38,678,395,459,309,696,42,43,44,45,46',
553'47,48,49,858,98,654,827,440,133,133,826,133,133,133,133,133,65,186,186',
554'186,186,69,67,68,308,70,71,77,72,323,73,299,300,319,819,133,175,133',
555'134,320,134,322,186,74,74,74,75,76,76,76,133,86,186,186,186,186,78,85',
556'5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32',
557'33,34,35,38,77,420,186,358,359,42,43,44,45,46,47,48,49,186,134,134,134',
558'65,134,134,134,134,134,133,133,87,571,77,77,570,323,69,67,68,325,70',
559'71,133,72,799,73,530,134,341,134,299,300,319,342,343,397,798,682,320',
560'74,322,75,134,76,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
561'27,28,29,30,31,32,33,34,35,38,444,48,49,352,353,42,43,44,45,46,47,48',
562'49,328,329,509,510,65,299,300,301,186,302,303,305,306,683,606,77,134',
563'134,69,67,68,856,70,71,272,72,607,73,77,177,134,643,299,300,319,77,77',
564'636,203,780,320,74,322,75,684,76,5,6,7,10,13,14,15,16,17,18,19,20,21',
565'22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,795,160,610,676,855,42',
566'43,44,45,46,47,48,49,160,637,403,470,86,160,471,633,426,781,85,793,470',
567'87,87,471,502,705,69,67,68,758,70,71,397,72,396,73,159,625,402,194,195',
568'196,197,198,199,200,202,614,203,74,792,75,133,76,207,208,209,210,211',
569'212,213,299,300,301,160,302,303,305,306,194,195,196,197,198,199,200',
570'202,160,203,624,609,283,133,626,207,208,209,210,211,212,213,867,742',
571'809,194,195,196,197,198,199,200,202,335,203,336,159,337,133,229,207',
572'208,209,210,211,212,213,194,195,196,197,198,199,200,202,810,203,251',
573'160,230,133,409,207,208,209,210,211,212,213,229,649,707,666,400,837',
574'79,134,496,277,676,251,571,704,846,570,160,539,845,393,230,848,596,408',
575'818,229,748,147,619,630,146,706,648,684,667,401,838,134,761,495,278',
576'675,250,705,167,230,620,229,86,847,760,86,817,86,85,177,618,85,87,85',
577'341,87,134,87,270,342,343,230,632,177,194,195,196,197,198,199,200,202',
578'173,203,614,744,869,133,134,207,208,209,210,211,212,213,194,195,196',
579'197,198,199,200,202,147,203,650,146,651,133,172,207,208,209,210,211',
580'212,213,194,195,196,197,198,199,200,202,171,203,388,389,390,133,170',
581'207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,169,203',
582'388,389,390,133,659,207,208,209,210,211,212,213,348,349,350,351,194',
583'195,196,197,198,199,200,202,168,203,583,330,660,133,134,207,208,209',
584'210,211,212,213,194,195,196,197,198,199,200,202,661,203,344,345,165',
585'133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202',
586'164,203,282,283,665,133,134,207,208,209,210,211,212,213,194,195,196',
587'197,198,199,200,202,668,203,352,353,670,133,134,207,208,209,210,211',
588'212,213,348,349,350,351,194,195,196,197,198,199,200,202,431,203,346',
589'347,671,133,134,207,208,209,210,211,212,213,672,448,673,376,377,378',
590'430,432,433,434,435,431,346,347,134,371,372,373,374,375,379,229,450',
591'451,452,449,348,349,350,351,674,430,432,433,434,435,134,341,142,143',
592'677,230,342,343,194,195,196,197,198,199,200,202,163,203,346,347,203',
593'133,134,207,208,209,210,211,212,213,346,347,344,345,194,195,196,197',
594'198,199,200,202,680,203,344,345,162,133,134,207,208,209,210,211,212',
595'213,194,195,196,197,198,199,200,202,161,203,398,330,689,133,160,207',
596'208,209,210,211,212,213,194,195,196,197,198,199,200,202,691,203,719',
597'510,692,133,693,207,208,209,210,211,212,213,194,195,196,197,198,199',
598'200,202,160,203,376,377,378,133,134,207,208,209,210,211,212,213,371',
599'372,373,374,375,379,102,103,104,105,106,107,108,109,110,111,112,695',
600'134,697,698,699,700,703,708,229,20,21,22,23,24,25,26,27,28,29,30,31',
601'32,33,134,711,562,74,714,230,715,716,194,195,196,197,198,199,200,202',
602'717,203,157,744,720,133,134,207,208,209,210,211,212,213,194,195,196',
603'197,198,199,200,202,721,203,722,599,724,133,134,207,208,209,210,211',
604'212,213,194,195,196,197,198,199,200,202,725,203,726,728,614,133,731',
605'207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,732,203',
606'156,153,736,133,152,207,208,209,210,211,212,213,739,743,751,752,194',
607'195,196,197,198,199,200,202,144,203,754,576,755,133,134,207,208,209',
608'210,211,212,213,194,195,196,197,198,199,200,202,757,203,759,762,763',
609'133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202',
610'764,203,767,768,769,133,134,207,208,209,210,211,212,213,194,195,196',
611'197,198,199,200,202,770,203,643,232,703,133,134,207,208,209,210,211',
612'212,213,86,86,86,229,177,775,85,85,85,86,87,87,87,776,86,85,777,778',
613'134,87,85,141,711,230,87,786,194,195,196,197,198,199,200,202,140,203',
614'788,138,132,133,134,207,208,209,210,211,212,213,194,195,196,197,198',
615'199,200,202,791,203,130,796,128,133,134,207,208,209,210,211,212,213',
616'194,195,196,197,198,199,200,202,800,203,801,-383,802,133,134,207,208',
617'209,210,211,212,213,194,195,196,197,198,199,200,202,803,203,804,124',
618'123,133,807,207,208,209,210,211,212,213,767,203,813,816,194,195,196',
619'197,198,199,200,202,821,203,822,94,824,133,134,207,208,209,210,211,212',
620'213,194,195,196,197,198,199,200,202,828,203,829,830,90,133,134,207,208',
621'209,210,211,212,213,194,195,196,197,198,199,200,202,833,203,834,89,836',
622'133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202',
623'798,203,839,840,323,133,134,207,208,209,210,211,212,213,842,843,844',
624'849,194,195,196,197,198,199,200,202,850,203,851,88,857,133,134,207,208',
625'209,210,211,212,213,194,195,196,197,198,199,200,202,357,203,356,362',
626'363,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200',
627'202,365,203,366,122,861,133,134,207,208,209,210,211,212,213,194,195',
628'196,197,198,199,200,202,3,203,156,355,399,133,134,207,208,209,210,211',
629'212,213,404,140,406,407,194,195,196,197,198,199,200,202,410,203,411',
630'412,413,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199',
631'200,202,414,203,415,354,862,133,134,207,208,209,210,211,212,213,194',
632'195,196,197,198,199,200,202,438,203,439,442,453,133,134,207,208,209',
633'210,211,212,213,194,195,196,197,198,199,200,202,330,203,456,457,186',
634'133,134,207,208,209,210,211,212,213,464,465,466,473,194,195,196,197',
635'198,199,200,202,474,203,307,285,284,133,134,207,208,209,210,211,212',
636'213,194,195,196,197,198,199,200,202,281,203,280,279,276,133,134,207',
637'208,209,210,211,212,213,194,195,196,197,198,199,200,202,275,203,274',
638'267,177,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199',
639'200,202,265,203,203,259,203,133,134,207,208,209,210,211,212,213,156',
640'503,504,505,194,195,196,197,198,199,200,202,506,203,507,863,513,133',
641'134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,514',
642'203,515,259,517,133,134,207,208,209,210,211,212,213,86,86,86,86,252',
643'265,85,85,85,85,87,87,87,87,134,299,300,301,520,302,303,305,306,521',
644'194,195,196,197,198,199,200,202,203,203,524,203,134,133,203,207,208',
645'209,210,211,212,213,177,528,194,195,196,197,198,199,200,202,529,203',
646'532,533,534,133,134,207,208,209,210,211,212,213,115,116,117,118,119',
647'120,121,115,116,117,118,119,120,121,134,536,537,540,186,5,6,7,10,13',
648'14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38',
649'265,865,550,554,160,42,43,44,45,46,47,48,49,134,194,195,196,197,198',
650'199,200,202,556,203,866,186,560,133,562,207,208,209,210,211,212,213',
651'323,134,565,87,242,190,578,579,354,355,356,357,580,189,188,186,185,184',
652'183,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
653'32,33,34,35,38,182,181,596,597,599,42,43,44,45,46,47,48,49,194,195,196',
654'197,198,199,200,202,600,203,330,601,603,133,604,207,208,209,210,211',
655'212,213,605,,134,194,195,196,197,198,199,200,339,,203,,,,133,,207,208',
656'209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,685,,133,',
657'207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,,',
658'133,,207,208,209,210,211,212,213,,194,195,196,197,198,199,200,202,,203',
659',576,,133,134,207,208,209,210,211,212,213,,,,194,195,196,197,198,199',
660'200,202,,203,,655,,133,134,207,208,209,210,211,212,213,194,195,196,197',
661'198,199,200,202,,203,,,,133,134,207,208,209,210,211,212,213,194,195',
662'196,197,198,199,200,202,,203,,,,133,134,207,208,209,210,211,212,213',
663',194,195,196,197,198,199,200,202,,203,,,,133,134,207,208,209,210,211',
664'212,213,,,,194,195,196,197,198,199,200,202,,203,,,,133,134,207,208,209',
665'210,211,212,213,194,195,196,197,198,199,200,202,,203,,,,133,134,207',
666'208,209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,,,133',
667'134,207,208,209,210,211,212,213,,194,195,196,197,198,199,200,202,,203',
668',,,133,134,207,208,209,210,211,212,213,,,,194,195,196,197,198,199,200',
669'202,,203,,,,133,134,207,208,209,210,211,212,213,102,103,104,105,106',
670'107,108,109,110,111,112,,,,134,,,,,,,,,,,,,,,,,,,,,,134,,115,116,117',
671'118,119,120,121,,,229,581,,,470,574,,573,,,,,134,,87,,,,,,230,,,,,,',
672',,,,,,,,,,134,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27',
673'28,29,30,31,32,33,34,35,38,236,,77,,,42,43,44,45,46,47,48,49,,,,,,,',
674',,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
675'29,30,31,32,33,34,35,38,657,,77,,,42,43,44,45,46,47,48,49,,,,,,,,,,',
676',,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29',
677'30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,',
678',,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
679'32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,498,,,,,,,,,,,,,,,,,,5',
680'6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33',
681'34,35,38,126,381,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7',
682'10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34',
683'35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14',
684'15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77',
685',,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17',
686'18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,,,,,42,43',
687'44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20',
688'21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,422,,,,42,43,44,45',
689'46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22',
690'23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,508,,,,42,43,44,45,46,47',
691'48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24',
692'25,26,27,28,29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,',
693',,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
694'27,28,29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,',
695',,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
696'29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,',
697',,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30',
698'31,32,33,34,35,38,77,621,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,',
699',,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
700'32,33,34,35,38,77,627,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5',
701'6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33',
702'34,35,38,,646,,,,42,43,44,45,46,47,48,49,102,103,104,105,106,107,108',
703'109,110,111,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,115,116,117,118,119,120,121',
704'5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32',
705'33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18',
706'19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44',
707'45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27',
708'28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13',
709'14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38',
710',,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22',
711'23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47,48',
712'49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
713'32,33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17',
714'18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43',
715'44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
716'27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47' ]
717 racc_action_table = arr = ::Array.new(3597, nil)
718 idx = 0
719 clist.each do |str|
720 str.split(',', -1).each do |i|
721 arr[idx] = i.to_i unless i.empty?
722 idx += 1
723 end
724 end
725
726clist = [
727'2,463,803,749,688,787,189,218,218,189,602,2,324,386,714,714,714,714',
728'714,714,714,714,123,714,586,754,854,714,41,714,714,714,714,714,714,714',
729'585,151,815,441,257,386,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2',
730'2,2,2,2,2,2,602,257,324,187,631,2,2,2,2,2,2,2,2,854,41,567,810,303,298',
731'550,810,90,620,328,74,320,286,749,688,787,463,2,2,2,187,2,2,286,2,555',
732'2,189,189,189,803,799,123,504,754,189,714,189,586,602,2,324,2,602,2',
733'324,503,83,815,441,585,151,2,83,286,286,286,286,286,286,286,286,286',
734'286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286',
735'286,286,184,286,631,225,225,286,286,286,286,286,286,286,286,567,303',
736'298,550,158,90,620,328,74,320,281,706,87,469,310,158,469,310,286,286',
737'286,191,286,286,464,286,776,286,416,799,480,504,555,555,555,480,480',
738'614,776,614,555,286,555,286,503,286,158,158,158,158,158,158,158,158',
739'158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158',
740'158,158,158,310,87,87,220,220,158,158,158,158,158,158,158,158,191,191',
741'383,383,182,184,184,184,416,184,184,184,184,615,528,182,281,706,158',
742'158,158,852,158,158,169,158,529,158,553,169,464,553,310,310,310,289',
743'750,552,530,750,310,158,310,158,615,158,182,182,182,182,182,182,182',
744'182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182',
745'182,182,182,182,772,369,535,723,852,182,182,182,182,182,182,182,182',
746'100,553,264,334,125,536,334,552,289,750,125,765,468,334,125,468,369',
747'772,182,182,182,723,182,182,259,182,259,182,100,545,264,705,705,705',
748'705,705,705,705,705,540,705,182,765,182,705,182,705,705,705,705,705',
749'705,705,289,289,289,701,289,289,289,289,761,761,761,761,761,761,761',
750'761,564,761,545,531,531,761,545,761,761,761,761,761,761,761,865,701',
751'794,760,760,760,760,760,760,760,760,205,760,205,564,205,760,705,760',
752'760,760,760,760,760,760,720,720,720,720,720,720,720,720,794,720,253',
753'428,705,720,273,720,720,720,720,720,720,720,761,559,645,588,262,825',
754'3,705,360,173,598,154,569,642,838,569,113,428,838,253,761,839,728,273',
755'801,760,705,145,541,549,145,642,559,645,588,262,825,761,728,360,173',
756'598,154,642,113,760,541,720,681,839,728,510,801,283,681,124,541,510',
757'681,283,479,510,760,283,168,479,479,720,551,168,704,704,704,704,704',
758'704,704,704,122,704,556,704,868,704,720,704,704,704,704,704,704,704',
759'699,699,699,699,699,699,699,699,84,699,561,84,563,699,121,699,699,699',
760'699,699,699,699,695,695,695,695,695,695,695,695,120,695,512,512,512',
761'695,117,695,695,695,695,695,695,695,691,691,691,691,691,691,691,691',
762'116,691,249,249,249,691,572,691,691,691,691,691,691,691,219,219,219',
763'219,667,667,667,667,667,667,667,667,115,667,497,497,575,667,704,667',
764'667,667,667,667,667,667,285,285,285,285,285,285,285,285,577,285,217',
765'217,112,285,699,285,285,285,285,285,285,285,252,252,252,252,252,252',
766'252,252,108,252,178,178,587,252,695,252,252,252,252,252,252,252,229',
767'229,229,229,229,229,229,229,589,229,489,489,593,229,691,229,229,229',
768'229,229,229,229,488,488,488,488,861,861,861,861,861,861,861,861,539',
769'861,486,486,594,861,667,861,861,861,861,861,861,861,595,313,596,241',
770'241,241,539,539,539,539,539,292,485,485,285,241,241,241,241,241,241',
771'229,313,313,313,313,487,487,487,487,597,292,292,292,292,292,252,216',
772'80,80,600,229,216,216,848,848,848,848,848,848,848,848,106,848,484,484',
773'605,848,229,848,848,848,848,848,848,848,483,483,482,482,821,821,821',
774'821,821,821,821,821,608,821,481,481,104,821,861,821,821,821,821,821',
775'821,821,818,818,818,818,818,818,818,818,102,818,260,260,621,818,623',
776'818,818,818,818,818,818,818,807,807,807,807,807,807,807,807,625,807',
777'669,669,626,807,627,807,807,807,807,807,807,807,798,798,798,798,798',
778'798,798,798,629,798,502,502,502,798,848,798,798,798,798,798,798,798',
779'502,502,502,502,502,502,159,159,159,159,159,159,159,159,159,159,159',
780'630,821,632,633,635,637,640,646,807,36,36,36,36,36,36,36,36,36,36,36',
781'36,36,36,818,650,651,652,653,807,654,656,795,795,795,795,795,795,795',
782'795,658,795,99,795,673,795,807,795,795,795,795,795,795,795,786,786,786',
783'786,786,786,786,786,674,786,676,677,678,786,798,786,786,786,786,786',
784'786,786,775,775,775,775,775,775,775,775,679,775,680,682,684,775,685',
785'775,775,775,775,775,775,775,770,770,770,770,770,770,770,770,686,770',
786'98,93,692,770,92,770,770,770,770,770,770,770,696,703,710,712,471,471',
787'471,471,471,471,471,471,82,471,715,471,718,471,795,471,471,471,471,471',
788'471,471,144,144,144,144,144,144,144,144,721,144,727,732,733,144,786',
789'144,144,144,144,144,144,144,466,466,466,466,466,466,466,466,735,466',
790'736,738,739,466,775,466,466,466,466,466,466,466,146,146,146,146,146',
791'146,146,146,740,146,741,146,742,146,770,146,146,146,146,146,146,146',
792'240,86,4,144,743,744,240,86,4,591,240,86,4,745,418,591,747,748,471,591',
793'418,78,752,144,418,753,867,867,867,867,867,867,867,867,76,867,757,75',
794'73,867,144,867,867,867,867,867,867,867,397,397,397,397,397,397,397,397',
795'763,397,72,774,71,397,466,397,397,397,397,397,397,397,359,359,359,359',
796'359,359,359,359,778,359,779,780,781,359,146,359,359,359,359,359,359',
797'359,358,358,358,358,358,358,358,358,784,358,785,69,68,358,788,358,358',
798'358,358,358,358,358,793,796,797,800,357,357,357,357,357,357,357,357',
799'805,357,806,38,809,357,867,357,357,357,357,357,357,357,163,163,163,163',
800'163,163,163,163,811,163,812,814,16,163,397,163,163,163,163,163,163,163',
801'356,356,356,356,356,356,356,356,819,356,820,9,822,356,359,356,356,356',
802'356,356,356,356,355,355,355,355,355,355,355,355,828,355,831,832,833',
803'355,358,355,355,355,355,355,355,355,835,836,837,840,354,354,354,354',
804'354,354,354,354,841,354,842,8,853,354,357,354,354,354,354,354,354,354',
805'353,353,353,353,353,353,353,353,224,353,223,230,231,353,163,353,353',
806'353,353,353,353,353,352,352,352,352,352,352,352,352,235,352,237,67,856',
807'352,356,352,352,352,352,352,352,352,351,351,351,351,351,351,351,351',
808'1,351,251,222,261,351,355,351,351,351,351,351,351,351,266,267,269,271',
809'350,350,350,350,350,350,350,350,275,350,276,277,278,350,354,350,350',
810'350,350,350,350,350,349,349,349,349,349,349,349,349,279,349,280,221',
811'857,349,353,349,349,349,349,349,349,349,348,348,348,348,348,348,348',
812'348,301,348,302,304,319,348,352,348,348,348,348,348,348,348,347,347',
813'347,347,347,347,347,347,201,347,321,322,193,347,351,347,347,347,347',
814'347,347,347,329,331,332,336,346,346,346,346,346,346,346,346,337,346',
815'186,181,180,346,350,346,346,346,346,346,346,346,345,345,345,345,345',
816'345,345,345,176,345,175,174,172,345,349,345,345,345,345,345,345,345',
817'344,344,344,344,344,344,344,344,171,344,170,166,165,344,348,344,344',
818'344,344,344,344,344,343,343,343,343,343,343,343,343,164,343,162,161',
819'362,343,347,343,343,343,343,343,343,343,157,374,375,376,342,342,342',
820'342,342,342,342,342,377,342,378,860,388,342,346,342,342,342,342,342',
821'342,342,341,341,341,341,341,341,341,341,389,341,390,395,396,341,345',
822'341,341,341,341,341,341,341,424,367,248,143,156,401,424,367,248,143',
823'424,367,248,143,344,538,538,538,402,538,538,538,538,403,335,335,335',
824'335,335,335,335,335,404,335,405,406,343,335,407,335,335,335,335,335',
825'335,335,408,410,339,339,339,339,339,339,339,339,413,339,419,420,422',
826'339,342,339,339,339,339,339,339,339,255,255,255,255,255,255,255,167',
827'167,167,167,167,167,167,341,425,426,431,436,339,339,339,339,339,339',
828'339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339',
829'339,339,339,339,339,437,863,440,444,446,339,339,339,339,339,339,339',
830'339,335,202,202,202,202,202,202,202,202,448,202,864,454,455,202,456',
831'202,202,202,202,202,202,202,457,339,459,149,148,139,472,475,490,491',
832'492,493,494,137,136,135,134,131,129,202,202,202,202,202,202,202,202',
833'202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202',
834'202,202,202,127,126,517,518,520,202,202,202,202,202,202,202,202,206',
835'206,206,206,206,206,206,206,521,206,522,523,525,206,526,206,206,206',
836'206,206,206,206,527,,202,207,207,207,207,207,207,207,207,,207,,,,207',
837',207,207,207,207,207,207,207,619,619,619,619,619,619,619,619,,619,,619',
838',619,,619,619,619,619,619,619,619,580,580,580,580,580,580,580,580,,580',
839',,,580,,580,580,580,580,580,580,580,,573,573,573,573,573,573,573,573',
840',573,,573,,573,206,573,573,573,573,573,573,573,,,,570,570,570,570,570',
841'570,570,570,,570,,570,,570,207,570,570,570,570,570,570,570,566,566,566',
842'566,566,566,566,566,,566,,,,566,619,566,566,566,566,566,566,566,515',
843'515,515,515,515,515,515,515,,515,,,,515,580,515,515,515,515,515,515',
844'515,,514,514,514,514,514,514,514,514,,514,,,,514,573,514,514,514,514',
845'514,514,514,,,,513,513,513,513,513,513,513,513,,513,,,,513,570,513,513',
846'513,513,513,513,513,507,507,507,507,507,507,507,507,,507,,,,507,566',
847'507,507,507,507,507,507,507,506,506,506,506,506,506,506,506,,506,,,',
848'506,515,506,506,506,506,506,506,506,,505,505,505,505,505,505,505,505',
849',505,,,,505,514,505,505,505,505,505,505,505,,,,496,496,496,496,496,496',
850'496,496,,496,,,,496,513,496,496,496,496,496,496,496,458,458,458,458',
851'458,458,458,458,458,458,458,,,,507,,,,,,,,,,,,,,,,,,,,,,506,,458,458',
852'458,458,458,458,458,,,496,496,,,470,470,,470,,,,,505,,470,,,,,,496,',
853',,,,,,,,,,,,,,,496,470,470,470,470,470,470,470,470,470,470,470,470,470',
854'470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,147,,147',
855',,470,470,470,470,470,470,470,470,,,,,,,,,,,,,,,,,,,,,147,147,147,147',
856'147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147',
857'147,147,147,147,147,147,147,571,,571,,,147,147,147,147,147,147,147,147',
858',,,,,,,,,,,,,,,,,,,,571,571,571,571,571,571,571,571,571,571,571,571',
859'571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,366',
860',,,,571,571,571,571,571,571,571,571,,,,,,,,,,,,,,,,,,,366,366,366,366',
861'366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366',
862'366,366,366,366,366,366,366,246,,,,,366,366,366,366,366,366,366,366',
863'366,,,,,,,,,,,,,,,,,,246,246,246,246,246,246,246,246,246,246,246,246',
864'246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,70,246',
865',,,246,246,246,246,246,246,246,246,,,,,,,,,,,,,,,,,,,70,70,70,70,70',
866'70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70',
867'153,,,,,70,70,70,70,70,70,70,70,,,,,,,,,,,,,,,,,,,153,153,153,153,153',
868'153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153',
869'153,153,153,153,153,153,245,,,,,153,153,153,153,153,153,153,153,,,,',
870',,,,,,,,,,,,,,245,245,245,245,245,245,245,245,245,245,245,245,245,245',
871'245,245,245,245,245,245,245,245,245,245,245,245,245,245,288,,,,,245',
872'245,245,245,245,245,245,245,,,,,,,,,,,,,,,,,,,288,288,288,288,288,288',
873'288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,288',
874'288,288,288,288,288,380,288,,,,288,288,288,288,288,288,288,288,,,,,',
875',,,,,,,,,,,,,380,380,380,380,380,380,380,380,380,380,380,380,380,380',
876'380,380,380,380,380,380,380,380,380,380,380,380,380,380,438,380,,,,380',
877'380,380,380,380,380,380,380,,,,,,,,,,,,,,,,,,,438,438,438,438,438,438',
878'438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438',
879'438,438,438,438,438,439,,,,,438,438,438,438,438,438,438,438,,,,,,,,',
880',,,,,,,,,,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439',
881'439,439,439,439,439,439,439,439,439,439,439,439,439,453,,,,,439,439',
882'439,439,439,439,439,439,,,,,,,,,,,,,,,,,,,453,453,453,453,453,453,453',
883'453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453',
884'453,453,453,453,542,,,,,453,453,453,453,453,453,453,453,,,,,,,,,,,,',
885',,,,,,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542',
886'542,542,542,542,542,542,542,542,542,542,542,542,546,542,,,,542,542,542',
887'542,542,542,542,542,,,,,,,,,,,,,,,,,,,546,546,546,546,546,546,546,546',
888'546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546',
889'546,546,546,557,546,,,,546,546,546,546,546,546,546,546,,,,,,,,,,,,,',
890',,,,,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557',
891'557,557,557,557,557,557,557,557,557,557,557,557,,557,,,,557,557,557',
892'557,557,557,557,557,53,53,53,53,53,53,53,53,53,53,53,,,,,,,,,,,,,,,',
893',,,,,,,,,,,,53,53,53,53,53,53,53,694,694,694,694,694,694,694,694,694',
894'694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694',
895'694,694,,,,,,694,694,694,694,694,694,694,694,690,690,690,690,690,690',
896'690,690,690,690,690,690,690,690,690,690,690,690,690,690,690,690,690',
897'690,690,690,690,690,,,,,,690,690,690,690,690,690,690,690,239,239,239',
898'239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239',
899'239,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239,239',
900'40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40',
901'40,40,40,40,40,,,,,,40,40,40,40,40,40,40,40,284,284,284,284,284,284',
902'284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284',
903'284,284,284,284,284,,,,,,284,284,284,284,284,284,284,284,511,511,511',
904'511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511',
905'511,511,511,511,511,511,511,511,,,,,,511,511,511,511,511,511,511,511',
906'611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611',
907'611,611,611,611,611,611,611,611,611,611,611,,,,,,611,611,611,611,611',
908'611,611,611,234,234,234,234,234,234,234,234,234,234,234,234,234,234',
909'234,234,234,234,234,234,234,234,234,234,234,234,234,234,,,,,,234,234',
910'234,234,234,234' ]
911 racc_action_check = arr = ::Array.new(3597, nil)
912 idx = 0
913 clist.each do |str|
914 str.split(',', -1).each do |i|
915 arr[idx] = i.to_i unless i.empty?
916 idx += 1
917 end
918 end
919
920racc_action_pointer = [
921 nil, 1429, -1, 489, 1138, nil, nil, nil, 1326, 1278,
922 nil, nil, nil, nil, nil, nil, 1288, nil, nil, nil,
923 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
924 nil, nil, nil, nil, nil, nil, 889, nil, 1259, nil,
925 3351, 13, nil, nil, nil, nil, nil, nil, nil, nil,
926 nil, nil, nil, 3134, nil, nil, nil, nil, nil, nil,
927 nil, nil, nil, nil, nil, nil, nil, 1401, 1240, 1239,
928 2552, 1190, 1188, 1168, 79, 1167, 1164, nil, 1095, nil,
929 757, nil, 1023, 122, 574, nil, 1137, 172, nil, nil,
930 76, nil, 974, 971, nil, nil, nil, nil, 1026, 904,
931 340, nil, 850, nil, 832, nil, 802, nil, 688, nil,
932 nil, nil, 670, 486, nil, 644, 618, 602, nil, nil,
933 596, 580, 550, 11, 523, 348, 1803, 1804, nil, 1775,
934 nil, 1774, nil, nil, 1829, 1735, 1827, 1770, nil, 1762,
935 nil, nil, nil, 1669, 1077, 501, 1121, 2314, 1822, 1812,
936 nil, 27, nil, 2611, 453, nil, 1637, 1612, 182, 831,
937 nil, 1601, 1604, 1283, 1598, 1580, 1465, 1622, 537, 280,
938 1578, 1576, 1558, 482, 1562, 1561, 1528, nil, 659, nil,
939 1538, 1541, 269, nil, 154, nil, 1534, 33, nil, -6,
940 nil, 128, nil, 1417, nil, nil, nil, nil, nil, nil,
941 nil, 1510, 1804, nil, nil, 435, 1886, 1911, nil, nil,
942 nil, nil, nil, nil, nil, nil, 777, 657, -19, 613,
943 224, 1462, 1398, 1352, 1349, 132, nil, nil, nil, 709,
944 1379, 1376, nil, nil, 3515, 1397, nil, 1368, nil, 3310,
945 1136, 689, nil, nil, nil, 2670, 2493, nil, 1668, 556,
946 nil, 1416, 687, 430, nil, 1615, nil, 30, nil, 365,
947 851, 1423, 477, nil, 341, nil, 1402, 1429, nil, 1404,
948 nil, 1405, nil, 465, nil, 1414, 1447, 1418, 1448, 1437,
949 1439, 174, nil, 527, 3392, 665, 95, nil, 2729, 289,
950 nil, nil, 678, nil, nil, nil, nil, nil, 73, nil,
951 nil, 1428, 1430, 72, 1431, nil, nil, nil, nil, nil,
952 181, nil, nil, 668, nil, nil, nil, nil, nil, 1432,
953 80, 1395, 1510, nil, 0, nil, nil, nil, 78, 1526,
954 nil, 1526, 1527, nil, 347, 1697, 1523, 1532, nil, 1721,
955 nil, 1651, 1629, 1603, 1581, 1559, 1537, 1511, 1489, 1467,
956 1445, 1419, 1397, 1375, 1353, 1327, 1305, 1261, 1235, 1213,
957 450, nil, 1606, nil, nil, nil, 2434, 1667, nil, 328,
958 nil, nil, nil, nil, 1619, 1620, 1621, 1630, 1632, nil,
959 2788, nil, nil, 228, nil, nil, 0, nil, 1634, 1652,
960 1654, nil, nil, nil, nil, 1649, 1650, 1191, nil, nil,
961 nil, 1665, 1622, 1683, 1696, 1638, 1699, 1702, 1706, nil,
962 1711, nil, nil, 1721, nil, nil, 166, nil, 1150, 1723,
963 1694, nil, 1695, nil, 1666, 1650, 1721, nil, 459, nil,
964 nil, 1753, nil, nil, nil, nil, 1655, 1777, 2847, 2906,
965 1752, 25, nil, nil, 1755, nil, 1783, nil, 1805, nil,
966 nil, nil, nil, 2965, 1709, 1803, 1805, 1813, 2119, 1790,
967 nil, nil, nil, -8, 188, nil, 1099, nil, 356, 183,
968 2253, 1055, 1821, nil, nil, 1825, nil, nil, nil, 524,
969 190, 819, 807, 799, 787, 745, 721, 757, 705, 689,
970 1818, 1803, 1803, 1803, 1801, nil, 2187, 645, nil, nil,
971 nil, nil, 832, 115, 102, 2162, 2139, 2117, nil, nil,
972 525, 3433, 534, 2095, 2070, 2047, nil, 1863, 1865, nil,
973 1864, 1854, 1887, 1889, nil, 1890, 1892, 1869, 270, 252,
974 293, 385, nil, nil, nil, 302, 345, nil, 1573, 653,
975 377, 499, 3024, nil, nil, 308, 3083, nil, nil, 438,
976 74, 536, 288, 282, nil, 94, 548, 3142, nil, 444,
977 nil, 571, nil, 459, 409, nil, 2025, 71, nil, 486,
978 2003, 2375, 623, 1978, nil, 647, nil, 662, nil, nil,
979 1955, nil, nil, nil, nil, 26, 14, 691, 476, 709,
980 nil, 1145, nil, 713, 739, 749, 746, 775, 452, nil,
981 728, nil, -2, nil, nil, 804, nil, nil, 827, nil,
982 nil, 3474, nil, nil, 204, 269, nil, nil, nil, 1933,
983 77, 823, nil, 852, nil, 872, 843, 847, nil, 890,
984 925, 60, 896, 897, nil, 929, nil, 899, nil, nil,
985 814, nil, 484, nil, nil, 475, 901, nil, nil, nil,
986 943, 944, 835, 920, 948, nil, 951, nil, 963, nil,
987 nil, nil, nil, nil, nil, nil, nil, 643, nil, 843,
988 nil, nil, nil, 935, 980, nil, 982, 983, 959, 1007,
989 979, 522, 1005, nil, 1006, 983, 1026, nil, -10, nil,
990 3269, 617, 972, nil, 3228, 595, 1038, nil, nil, 573,
991 nil, 396, nil, 1045, 551, 382, 175, nil, nil, nil,
992 1015, nil, 1042, nil, 12, 939, nil, nil, 1059, nil,
993 459, 1073, nil, 302, nil, nil, nil, 1049, 491, nil,
994 nil, nil, 1050, 1076, nil, 1099, 1100, nil, 1102, 1073,
995 1090, 1118, 1009, 1134, 1108, 1145, nil, 1121, 1148, -11,
996 290, nil, 1152, 1129, 10, nil, nil, 1166, nil, nil,
997 437, 412, nil, 1161, nil, 323, nil, nil, nil, nil,
998 1029, nil, 328, nil, 1163, 1007, 175, nil, 1208, 1210,
999 1098, 1187, nil, nil, 1117, 1207, 985, -9, 1209, nil,
1000 nil, nil, nil, 1248, 428, 963, 1249, 1221, 893, 100,
1001 1222, 495, nil, -13, nil, 1230, 1258, 871, nil, 1235,
1002 75, 1280, 1285, nil, 1256, 24, nil, nil, 849, 1301,
1003 1277, 827, 1309, nil, nil, 478, nil, nil, 1295, nil,
1004 nil, 1324, 1327, 1326, nil, 1341, 1281, 1313, 486, 492,
1005 1314, 1323, 1294, nil, nil, nil, nil, nil, 801, nil,
1006 nil, nil, 272, 1354, 11, nil, 1402, 1441, nil, nil,
1007 1633, 735, nil, 1778, 1806, 395, nil, 1169, 555, nil ]
1008
1009racc_action_default = [
1010 -194, -418, -1, -418, -418, -69, -70, -71, -72, -73,
1011 -74, -75, -76, -77, -78, -79, -418, -81, -82, -83,
1012 -84, -85, -86, -87, -88, -89, -90, -91, -92, -93,
1013 -94, -95, -96, -97, -98, -99, -418, -101, -104, -118,
1014 -418, -418, -126, -127, -128, -129, -130, -131, -136, -137,
1015 -192, -193, -195, -418, -197, -198, -199, -200, -201, -202,
1016 -203, -206, -207, -208, -209, -210, -234, -418, -418, -418,
1017 -418, -418, -418, -418, -418, -418, -418, -405, -418, 870,
1018 -418, -65, -67, -418, -139, -140, -418, -146, -205, -204,
1019 -418, -100, -106, -418, -109, -72, -73, -119, -418, -125,
1020 -418, -211, -418, -214, -418, -216, -418, -218, -418, -220,
1021 -221, -222, -418, -418, -386, -418, -418, -418, -394, -395,
1022 -418, -418, -418, -418, -418, -418, -418, -418, -247, -418,
1023 -254, -418, -260, -250, -418, -327, -418, -418, -350, -418,
1024 -398, -410, -62, -418, -418, -138, -418, -418, -418, -147,
1025 -148, -418, -102, -418, -418, -132, -134, -418, -418, -418,
1026 -406, -418, -418, -418, -418, -418, -418, -418, -418, -418,
1027 -418, -418, -418, -418, -418, -418, -418, -337, -418, -244,
1028 -418, -242, -418, -255, -418, -251, -418, -418, -328, -418,
1029 -399, -418, -66, -2, -3, -4, -5, -6, -7, -8,
1030 -9, -10, -418, -12, -14, -18, -418, -418, -22, -23,
1031 -24, -25, -26, -27, -28, -30, -34, -37, -40, -45,
1032 -48, -50, -52, -54, -56, -58, -61, -68, -186, -418,
1033 -418, -418, -143, -63, -418, -418, -145, -150, -152, -418,
1034 -156, -418, -141, -149, -80, -418, -418, -107, -418, -418,
1035 -123, -418, -418, -418, -196, -418, -212, -418, -224, -418,
1036 -418, -418, -418, -228, -418, -291, -418, -418, -387, -418,
1037 -389, -418, -391, -418, -404, -418, -418, -418, -418, -418,
1038 -418, -418, -240, -418, -418, -418, -418, -248, -418, -418,
1039 -261, -263, -418, -265, -266, -267, -268, -269, -418, -288,
1040 -289, -418, -418, -418, -418, -313, -314, -252, -324, -326,
1041 -418, -351, -353, -418, -355, -356, -357, -358, -365, -418,
1042 -418, -418, -418, -381, -418, -407, -408, -409, -418, -418,
1043 -13, -418, -418, -60, -172, -418, -418, -418, -19, -418,
1044 -20, -418, -418, -418, -418, -418, -418, -418, -418, -418,
1045 -418, -418, -418, -418, -418, -418, -418, -418, -418, -418,
1046 -418, -190, -418, -142, -64, -144, -418, -157, -155, -418,
1047 -159, -161, -162, -163, -418, -418, -166, -418, -418, -171,
1048 -418, -105, -108, -418, -120, -122, -418, -112, -114, -418,
1049 -418, -133, -135, -124, -213, -418, -418, -418, -215, -217,
1050 -219, -418, -418, -418, -418, -418, -418, -418, -418, -393,
1051 -418, -397, -235, -418, -237, -238, -418, -245, -418, -418,
1052 -418, -249, -418, -256, -418, -418, -418, -262, -418, -270,
1053 -272, -418, -274, -275, -276, -277, -290, -418, -418, -418,
1054 -250, -418, -315, -329, -418, -352, -418, -359, -418, -361,
1055 -362, -363, -364, -418, -372, -418, -418, -418, -418, -418,
1056 -400, -401, -402, -418, -418, -11, -418, -173, -174, -175,
1057 -418, -418, -418, -16, -17, -418, -31, -32, -33, -35,
1058 -36, -38, -39, -41, -42, -43, -44, -46, -47, -49,
1059 -51, -53, -55, -57, -418, -187, -418, -418, -151, -153,
1060 -154, -158, -418, -418, -418, -418, -418, -418, -103, -110,
1061 -418, -418, -418, -418, -418, -418, -225, -418, -418, -229,
1062 -418, -418, -338, -418, -399, -418, -418, -418, -418, -418,
1063 -418, -418, -243, -246, -253, -418, -418, -259, -418, -418,
1064 -418, -418, -418, -294, -296, -418, -418, -305, -307, -418,
1065 -418, -418, -418, -418, -349, -418, -418, -418, -367, -418,
1066 -373, -418, -382, -418, -418, -385, -418, -418, -29, -176,
1067 -418, -418, -418, -405, -182, -418, -178, -418, -15, -21,
1068 -418, -188, -191, -189, -160, -418, -418, -418, -418, -418,
1069 -121, -418, -113, -418, -418, -418, -418, -418, -418, -232,
1070 -418, -223, -418, -388, -390, -418, -396, -236, -418, -241,
1071 -257, -418, -264, -271, -418, -418, -278, -279, -284, -418,
1072 -418, -418, -295, -418, -298, -418, -418, -418, -306, -418,
1073 -418, -418, -418, -418, -316, -418, -319, -418, -330, -331,
1074 -418, -333, -418, -343, -354, -418, -418, -368, -369, -371,
1075 -418, -418, -418, -418, -418, -180, -418, -184, -418, -177,
1076 -183, -179, -59, -164, -165, -167, -168, -418, -170, -418,
1077 -115, -116, -117, -418, -418, -230, -418, -418, -418, -418,
1078 -418, -418, -418, -273, -418, -418, -418, -292, -418, -293,
1079 -418, -418, -418, -304, -418, -418, -418, -310, -312, -418,
1080 -325, -418, -335, -418, -418, -418, -418, -360, -366, -374,
1081 -418, -383, -418, -403, -418, -418, -181, -185, -418, -111,
1082 -418, -418, -233, -418, -384, -392, -239, -418, -418, -280,
1083 -281, -285, -418, -418, -297, -418, -418, -308, -418, -418,
1084 -418, -418, -418, -418, -418, -418, -348, -418, -418, -418,
1085 -418, -379, -418, -418, -418, -169, -226, -418, -231, -258,
1086 -418, -418, -286, -418, -299, -418, -302, -303, -309, -311,
1087 -418, -332, -418, -334, -418, -418, -418, -341, -418, -418,
1088 -343, -418, -375, -376, -418, -418, -418, -418, -418, -282,
1089 -283, -287, -300, -418, -418, -418, -418, -418, -418, -418,
1090 -418, -418, -370, -418, -380, -418, -418, -418, -301, -418,
1091 -418, -418, -418, -339, -418, -418, -342, -344, -418, -418,
1092 -418, -418, -418, -227, -317, -418, -320, -322, -418, -336,
1093 -340, -418, -418, -418, -378, -418, -418, -418, -418, -418,
1094 -418, -418, -418, -417, -318, -321, -323, -346, -418, -345,
1095 -377, -413, -418, -418, -418, -415, -418, -418, -411, -412,
1096 -418, -418, -347, -418, -418, -418, -416, -418, -418, -414 ]
1097
1098racc_goto_table = [
1099 53, 135, 82, 227, 260, 176, 149, 333, 231, 233,
1100 158, 258, 100, 150, 97, 318, 235, 151, 563, 383,
1101 462, 178, 50, 166, 324, 261, 523, 461, 525, 526,
1102 387, 370, 9, 8, 338, 429, 263, 638, 561, 81,
1103 139, 598, 311, 382, 125, 467, 266, 332, 547, 269,
1104 271, 702, 290, 246, 154, 543, 745, 615, 766, 642,
1105 710, 483, 484, 485, 486, 137, 234, 487, 488, 310,
1106 558, 544, 548, 645, 644, 243, 479, 480, 481, 482,
1107 446, 447, 557, 455, 148, 559, 544, 750, 361, 709,
1108 333, 783, 268, 273, 191, 326, 364, 327, 854, 859,
1109 1, 233, 852, 2, 340, 489, 490, 491, 492, 493,
1110 80, 367, 91, 253, 392, 808, 92, 245, 93, 386,
1111 590, 391, 419, 179, 145, 499, 369, 248, 569, 360,
1112 51, 254, 256, 257, 262, 541, 318, 180, 127, 286,
1113 333, 82, 129, 288, 333, 380, 423, 811, 131, 289,
1114 612, 249, 608, 773, 428, 628, 255, 427, 234, 622,
1115 784, 729, 785, 445, 333, 437, 686, 542, 623, 476,
1116 477, 478, 472, 765, 647, 544, 334, 382, 192, 548,
1117 53, 572, 292, 546, 475, 629, 552, 313, 9, 8,
1118 544, 634, 635, 825, 136, 187, 494, 553, 723, 443,
1119 639, 701, 287, 771, 497, nil, nil, nil, 416, nil,
1120 nil, nil, 9, 8, nil, nil, nil, nil, nil, 248,
1121 248, nil, nil, nil, nil, 436, nil, 679, 233, nil,
1122 441, 405, nil, 712, 782, nil, nil, nil, 368, nil,
1123 nil, nil, nil, 249, 249, 516, 522, 454, 522, 522,
1124 nil, nil, nil, nil, nil, 463, nil, nil, 418, 518,
1125 468, nil, 424, nil, nil, nil, nil, nil, nil, nil,
1126 nil, nil, nil, 519, nil, nil, nil, nil, nil, 501,
1127 nil, 417, 613, nil, 53, 234, 425, 292, nil, 527,
1128 nil, nil, 584, 592, 568, nil, 511, nil, 462, nil,
1129 nil, nil, nil, nil, nil, 461, 421, nil, 313, nil,
1130 333, 333, 333, 334, 531, nil, 9, 8, 333, 333,
1131 333, nil, 458, 734, nil, nil, nil, 737, nil, nil,
1132 nil, nil, 233, 577, nil, nil, nil, nil, 538, 575,
1133 nil, nil, 587, 588, 589, nil, nil, nil, 713, nil,
1134 593, 594, 595, nil, 248, 582, 555, nil, 602, nil,
1135 nil, nil, 669, nil, 820, 500, nil, nil, nil, nil,
1136 nil, nil, 522, nil, nil, nil, nil, nil, 249, nil,
1137 nil, 318, nil, nil, nil, 662, nil, nil, nil, 234,
1138 nil, 567, nil, nil, 841, nil, 468, nil, nil, nil,
1139 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1140 nil, nil, nil, nil, nil, nil, 179, 564, 812, nil,
1141 nil, nil, 535, nil, nil, nil, nil, nil, 653, nil,
1142 585, 586, 656, 233, nil, 577, 545, 549, nil, nil,
1143 658, nil, nil, nil, nil, nil, 611, 522, nil, nil,
1144 nil, 545, nil, nil, nil, nil, nil, nil, nil, nil,
1145 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1146 nil, nil, nil, nil, 652, nil, nil, 631, nil, nil,
1147 nil, 687, nil, nil, nil, 591, nil, nil, nil, nil,
1148 234, nil, nil, nil, nil, nil, 333, nil, nil, nil,
1149 333, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1150 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1151 nil, nil, nil, nil, nil, nil, nil, nil, 735, 718,
1152 nil, nil, 738, 690, 730, nil, nil, nil, nil, 694,
1153 545, nil, nil, nil, 549, nil, nil, 688, nil, nil,
1154 nil, 640, nil, nil, nil, 545, nil, nil, nil, nil,
1155 nil, 740, nil, nil, 747, nil, 746, nil, nil, nil,
1156 nil, nil, nil, nil, nil, nil, 753, nil, nil, 756,
1157 333, nil, nil, nil, nil, 681, nil, nil, nil, nil,
1158 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1159 458, nil, nil, 333, nil, nil, nil, nil, nil, nil,
1160 nil, 741, 797, nil, nil, nil, nil, nil, nil, 789,
1161 790, nil, nil, 333, 774, nil, nil, nil, nil, nil,
1162 nil, nil, 794, 749, nil, 814, nil, nil, 522, nil,
1163 nil, nil, nil, nil, nil, nil, nil, nil, 805, nil,
1164 nil, nil, nil, 333, nil, 832, nil, 746, nil, nil,
1165 nil, nil, nil, nil, nil, nil, 823, nil, nil, nil,
1166 nil, nil, nil, nil, nil, nil, nil, nil, nil, 727,
1167 nil, 787, nil, 835, nil, 853, nil, nil, nil, nil,
1168 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1169 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1170 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1171 nil, nil, nil, 864, nil, nil, 815, nil, nil, 868,
1172 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1173 nil, nil, nil, nil, nil, nil, nil, nil, 640 ]
1174
1175racc_goto_check = [
1176 45, 4, 31, 32, 5, 82, 29, 22, 23, 28,
1177 47, 84, 67, 53, 25, 100, 55, 4, 152, 44,
1178 73, 88, 64, 47, 156, 23, 83, 75, 83, 83,
1179 48, 60, 34, 33, 10, 105, 85, 128, 153, 30,
1180 155, 87, 137, 43, 25, 61, 82, 11, 117, 82,
1181 82, 132, 97, 40, 51, 112, 134, 106, 115, 133,
1182 151, 14, 14, 14, 14, 135, 29, 15, 15, 136,
1183 112, 24, 24, 106, 138, 53, 12, 12, 13, 13,
1184 139, 144, 145, 146, 31, 147, 24, 148, 32, 149,
1185 22, 150, 157, 158, 160, 161, 28, 162, 163, 164,
1186 1, 28, 165, 2, 8, 16, 17, 18, 19, 20,
1187 26, 27, 37, 51, 23, 115, 39, 41, 42, 46,
1188 49, 52, 6, 31, 54, 57, 59, 25, 62, 63,
1189 65, 66, 79, 80, 81, 86, 100, 89, 90, 91,
1190 22, 31, 92, 93, 22, 40, 94, 134, 95, 96,
1191 98, 45, 83, 132, 99, 117, 45, 97, 29, 112,
1192 151, 107, 151, 137, 22, 109, 110, 111, 113, 10,
1193 10, 10, 6, 114, 112, 24, 25, 43, 30, 24,
1194 45, 61, 45, 116, 11, 118, 120, 45, 34, 33,
1195 24, 121, 122, 123, 124, 125, 6, 126, 87, 127,
1196 129, 130, 64, 131, 5, nil, nil, nil, 4, nil,
1197 nil, nil, 34, 33, nil, nil, nil, nil, nil, 25,
1198 25, nil, nil, nil, nil, 4, nil, 83, 28, nil,
1199 4, 155, nil, 153, 128, nil, nil, nil, 31, nil,
1200 nil, nil, nil, 45, 45, 84, 5, 4, 5, 5,
1201 nil, nil, nil, nil, nil, 4, nil, nil, 25, 23,
1202 53, nil, 25, nil, nil, nil, nil, nil, nil, nil,
1203 nil, nil, nil, 85, nil, nil, nil, nil, nil, 47,
1204 nil, 31, 105, nil, 45, 29, 45, 45, nil, 82,
1205 nil, nil, 60, 48, 10, nil, 47, nil, 73, nil,
1206 nil, nil, nil, nil, nil, 75, 64, nil, 45, nil,
1207 22, 22, 22, 25, 88, nil, 34, 33, 22, 22,
1208 22, nil, 45, 24, nil, nil, nil, 24, nil, nil,
1209 nil, nil, 28, 23, nil, nil, nil, nil, 47, 55,
1210 nil, nil, 6, 6, 6, nil, nil, nil, 73, nil,
1211 6, 6, 6, nil, 25, 32, 47, nil, 156, nil,
1212 nil, nil, 44, nil, 152, 31, nil, nil, nil, nil,
1213 nil, nil, 5, nil, nil, nil, nil, nil, 45, nil,
1214 nil, 100, nil, nil, nil, 22, nil, nil, nil, 29,
1215 nil, 4, nil, nil, 152, nil, 53, nil, nil, nil,
1216 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1217 nil, nil, nil, nil, nil, nil, 31, 67, 83, nil,
1218 nil, nil, 31, nil, nil, nil, nil, nil, 23, nil,
1219 4, 4, 23, 28, nil, 23, 45, 45, nil, nil,
1220 55, nil, nil, nil, nil, nil, 47, 5, nil, nil,
1221 nil, 45, nil, nil, nil, nil, nil, nil, nil, nil,
1222 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1223 nil, nil, nil, nil, 47, nil, nil, 4, nil, nil,
1224 nil, 23, nil, nil, nil, 25, nil, nil, nil, nil,
1225 29, nil, nil, nil, nil, nil, 22, nil, nil, nil,
1226 22, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1227 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1228 nil, nil, nil, nil, nil, nil, nil, nil, 6, 23,
1229 nil, nil, 6, 47, 84, nil, nil, nil, nil, 47,
1230 45, nil, nil, nil, 45, nil, nil, 4, nil, nil,
1231 nil, 45, nil, nil, nil, 45, nil, nil, nil, nil,
1232 nil, 23, nil, nil, 32, nil, 23, nil, nil, nil,
1233 nil, nil, nil, nil, nil, nil, 23, nil, nil, 32,
1234 22, nil, nil, nil, nil, 25, nil, nil, nil, nil,
1235 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1236 45, nil, nil, 22, nil, nil, nil, nil, nil, nil,
1237 nil, 47, 6, nil, nil, nil, nil, nil, nil, 32,
1238 32, nil, nil, 22, 82, nil, nil, nil, nil, nil,
1239 nil, nil, 23, 4, nil, 6, nil, nil, 5, nil,
1240 nil, nil, nil, nil, nil, nil, nil, nil, 23, nil,
1241 nil, nil, nil, 22, nil, 6, nil, 23, nil, nil,
1242 nil, nil, nil, nil, nil, nil, 32, nil, nil, nil,
1243 nil, nil, nil, nil, nil, nil, nil, nil, nil, 31,
1244 nil, 4, nil, 23, nil, 6, nil, nil, nil, nil,
1245 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1246 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1247 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1248 nil, nil, nil, 23, nil, nil, 4, nil, nil, 23,
1249 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1250 nil, nil, nil, nil, nil, nil, nil, nil, 45 ]
1251
1252racc_goto_pointer = [
1253 nil, 100, 103, nil, -73, -158, -163, nil, -103, nil,
1254 -172, -155, -268, -268, -287, -285, -249, -249, -249, -249,
1255 -249, nil, -195, -138, -367, -26, 106, -128, -138, -81,
1256 35, -2, -141, 31, 30, nil, nil, 76, nil, 78,
1257 -100, -35, 80, -203, -229, -2, -130, -90, -219, -390,
1258 nil, -44, -130, -74, 41, -131, nil, -241, nil, -115,
1259 -210, -289, -340, -100, 20, 128, -27, -41, nil, nil,
1260 nil, nil, nil, -304, nil, -297, nil, nil, nil, -27,
1261 -28, -30, -119, -378, -150, -128, -302, -479, -104, 11,
1262 67, -43, 70, -40, -142, 75, -35, -132, -388, -138,
1263 -174, nil, nil, nil, nil, -257, -483, -523, nil, -133,
1264 -453, -271, -383, -377, -563, -678, -256, -391, -364, nil,
1265 -256, -361, -360, -617, 120, 59, -246, -109, -516, -353,
1266 -439, -538, -589, -494, -648, -10, -120, -147, -481, -233,
1267 nil, nil, nil, nil, -232, -371, -237, -370, -622, -559,
1268 -659, -590, -439, -418, nil, -36, -166, -75, -77, nil,
1269 -47, -96, -94, -753, -755, -741 ]
1270
1271racc_goto_default = [
1272 nil, nil, nil, 204, 193, 201, 331, 205, 214, 206,
1273 215, nil, 216, 217, 218, 219, 220, 221, 222, 223,
1274 224, 225, 226, 228, 66, 4, nil, 240, 39, 40,
1275 nil, 385, nil, 95, 96, 11, 12, 37, 36, nil,
1276 nil, nil, nil, 247, nil, 241, nil, nil, nil, 384,
1277 41, nil, 155, 83, 84, nil, 237, 238, 239, nil,
1278 nil, nil, 469, nil, nil, nil, 52, nil, 54, 55,
1279 56, 57, 58, 59, 60, 61, 62, 63, 64, 101,
1280 nil, nil, nil, nil, 617, nil, 264, nil, nil, nil,
1281 nil, nil, nil, nil, nil, nil, nil, nil, 291, nil,
1282 293, 294, 295, 296, 297, nil, nil, 616, 298, nil,
1283 nil, nil, nil, nil, nil, nil, nil, nil, nil, 304,
1284 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1285 nil, 641, nil, 772, nil, nil, nil, nil, 312, nil,
1286 314, 315, 316, 317, nil, nil, nil, nil, nil, nil,
1287 nil, nil, 321, nil, 113, nil, nil, 114, nil, 460,
1288 nil, nil, nil, nil, nil, nil ]
1289
1290racc_reduce_table = [
1291 0, 0, :racc_error,
1292 1, 141, :_reduce_none,
1293 1, 143, :_reduce_2,
1294 1, 143, :_reduce_3,
1295 1, 143, :_reduce_4,
1296 1, 143, :_reduce_5,
1297 1, 143, :_reduce_6,
1298 1, 143, :_reduce_7,
1299 1, 143, :_reduce_8,
1300 1, 143, :_reduce_9,
1301 1, 143, :_reduce_10,
1302 3, 143, :_reduce_11,
1303 1, 145, :_reduce_none,
1304 2, 145, :_reduce_13,
1305 1, 147, :_reduce_none,
1306 4, 147, :_reduce_15,
1307 3, 147, :_reduce_16,
1308 3, 147, :_reduce_17,
1309 1, 148, :_reduce_none,
1310 2, 148, :_reduce_19,
1311 2, 148, :_reduce_20,
1312 4, 148, :_reduce_21,
1313 1, 149, :_reduce_22,
1314 1, 149, :_reduce_23,
1315 1, 149, :_reduce_24,
1316 1, 149, :_reduce_25,
1317 1, 149, :_reduce_26,
1318 1, 149, :_reduce_27,
1319 1, 150, :_reduce_none,
1320 4, 150, :_reduce_29,
1321 1, 152, :_reduce_none,
1322 3, 152, :_reduce_31,
1323 3, 152, :_reduce_32,
1324 3, 152, :_reduce_33,
1325 1, 153, :_reduce_none,
1326 3, 153, :_reduce_35,
1327 3, 153, :_reduce_36,
1328 1, 154, :_reduce_none,
1329 3, 154, :_reduce_38,
1330 3, 154, :_reduce_39,
1331 1, 155, :_reduce_none,
1332 3, 155, :_reduce_41,
1333 3, 155, :_reduce_42,
1334 3, 155, :_reduce_43,
1335 3, 155, :_reduce_44,
1336 1, 156, :_reduce_none,
1337 3, 156, :_reduce_46,
1338 3, 156, :_reduce_47,
1339 1, 157, :_reduce_none,
1340 3, 157, :_reduce_49,
1341 1, 158, :_reduce_none,
1342 3, 158, :_reduce_51,
1343 1, 159, :_reduce_none,
1344 3, 159, :_reduce_53,
1345 1, 160, :_reduce_none,
1346 3, 160, :_reduce_55,
1347 1, 161, :_reduce_none,
1348 3, 161, :_reduce_57,
1349 1, 162, :_reduce_none,
1350 5, 162, :_reduce_59,
1351 1, 146, :_reduce_60,
1352 1, 163, :_reduce_61,
1353 3, 164, :_reduce_62,
1354 1, 167, :_reduce_none,
1355 2, 167, :_reduce_64,
1356 1, 166, :_reduce_65,
1357 3, 166, :_reduce_66,
1358 1, 170, :_reduce_none,
1359 3, 170, :_reduce_68,
1360 1, 168, :_reduce_69,
1361 1, 168, :_reduce_70,
1362 1, 168, :_reduce_71,
1363 1, 168, :_reduce_none,
1364 1, 168, :_reduce_none,
1365 1, 168, :_reduce_74,
1366 1, 168, :_reduce_none,
1367 1, 168, :_reduce_none,
1368 1, 168, :_reduce_77,
1369 1, 168, :_reduce_78,
1370 1, 168, :_reduce_79,
1371 4, 168, :_reduce_80,
1372 1, 176, :_reduce_81,
1373 1, 176, :_reduce_82,
1374 1, 176, :_reduce_83,
1375 1, 177, :_reduce_84,
1376 1, 177, :_reduce_85,
1377 1, 177, :_reduce_86,
1378 1, 177, :_reduce_87,
1379 1, 177, :_reduce_88,
1380 1, 177, :_reduce_89,
1381 1, 177, :_reduce_90,
1382 1, 177, :_reduce_91,
1383 1, 177, :_reduce_92,
1384 1, 177, :_reduce_93,
1385 1, 177, :_reduce_94,
1386 1, 177, :_reduce_95,
1387 1, 177, :_reduce_96,
1388 1, 177, :_reduce_97,
1389 1, 178, :_reduce_98,
1390 1, 178, :_reduce_99,
1391 2, 175, :_reduce_100,
1392 1, 175, :_reduce_none,
1393 0, 181, :_reduce_102,
1394 6, 173, :_reduce_103,
1395 0, 182, :_reduce_104,
1396 5, 173, :_reduce_105,
1397 2, 173, :_reduce_106,
1398 1, 180, :_reduce_none,
1399 2, 180, :_reduce_none,
1400 1, 179, :_reduce_109,
1401 3, 183, :_reduce_110,
1402 6, 183, :_reduce_111,
1403 1, 186, :_reduce_112,
1404 3, 186, :_reduce_113,
1405 1, 188, :_reduce_114,
1406 4, 188, :_reduce_115,
1407 4, 188, :_reduce_116,
1408 4, 188, :_reduce_117,
1409 1, 165, :_reduce_none,
1410 2, 165, :_reduce_119,
1411 1, 184, :_reduce_120,
1412 3, 184, :_reduce_121,
1413 1, 189, :_reduce_none,
1414 4, 174, :_reduce_none,
1415 5, 174, :_reduce_none,
1416 2, 174, :_reduce_none,
1417 1, 190, :_reduce_126,
1418 1, 190, :_reduce_127,
1419 1, 190, :_reduce_128,
1420 1, 190, :_reduce_129,
1421 1, 190, :_reduce_130,
1422 1, 190, :_reduce_131,
1423 1, 191, :_reduce_none,
1424 3, 191, :_reduce_none,
1425 1, 192, :_reduce_none,
1426 3, 192, :_reduce_none,
1427 1, 169, :_reduce_136,
1428 1, 169, :_reduce_137,
1429 2, 171, :_reduce_138,
1430 1, 171, :_reduce_none,
1431 1, 194, :_reduce_140,
1432 3, 194, :_reduce_141,
1433 4, 194, :_reduce_142,
1434 3, 194, :_reduce_143,
1435 4, 194, :_reduce_144,
1436 3, 194, :_reduce_145,
1437 1, 193, :_reduce_146,
1438 2, 193, :_reduce_147,
1439 2, 193, :_reduce_148,
1440 3, 193, :_reduce_149,
1441 1, 195, :_reduce_none,
1442 3, 195, :_reduce_none,
1443 1, 196, :_reduce_152,
1444 3, 196, :_reduce_153,
1445 3, 197, :_reduce_154,
1446 2, 197, :_reduce_155,
1447 1, 197, :_reduce_156,
1448 2, 197, :_reduce_157,
1449 3, 198, :_reduce_158,
1450 1, 199, :_reduce_159,
1451 3, 199, :_reduce_160,
1452 1, 200, :_reduce_161,
1453 1, 200, :_reduce_162,
1454 1, 200, :_reduce_163,
1455 4, 200, :_reduce_164,
1456 4, 200, :_reduce_165,
1457 1, 200, :_reduce_166,
1458 4, 200, :_reduce_167,
1459 4, 200, :_reduce_168,
1460 6, 200, :_reduce_169,
1461 4, 200, :_reduce_170,
1462 1, 200, :_reduce_171,
1463 1, 151, :_reduce_none,
1464 2, 151, :_reduce_173,
1465 1, 201, :_reduce_none,
1466 1, 201, :_reduce_none,
1467 2, 201, :_reduce_none,
1468 3, 202, :_reduce_177,
1469 2, 202, :_reduce_178,
1470 3, 202, :_reduce_179,
1471 3, 202, :_reduce_180,
1472 4, 202, :_reduce_181,
1473 2, 202, :_reduce_182,
1474 3, 202, :_reduce_none,
1475 3, 202, :_reduce_184,
1476 4, 202, :_reduce_185,
1477 1, 172, :_reduce_186,
1478 3, 172, :_reduce_187,
1479 4, 172, :_reduce_188,
1480 4, 172, :_reduce_189,
1481 1, 203, :_reduce_190,
1482 3, 203, :_reduce_191,
1483 2, 142, :_reduce_none,
1484 2, 142, :_reduce_none,
1485 0, 142, :_reduce_none,
1486 1, 204, :_reduce_none,
1487 4, 204, :_reduce_196,
1488 1, 206, :_reduce_none,
1489 1, 206, :_reduce_none,
1490 1, 206, :_reduce_none,
1491 1, 206, :_reduce_none,
1492 1, 206, :_reduce_none,
1493 1, 206, :_reduce_none,
1494 1, 206, :_reduce_none,
1495 2, 206, :_reduce_none,
1496 2, 206, :_reduce_none,
1497 1, 206, :_reduce_none,
1498 1, 206, :_reduce_none,
1499 1, 206, :_reduce_none,
1500 1, 206, :_reduce_none,
1501 1, 206, :_reduce_none,
1502 1, 207, :_reduce_211,
1503 3, 207, :_reduce_212,
1504 4, 219, :_reduce_213,
1505 1, 219, :_reduce_214,
1506 4, 219, :_reduce_215,
1507 1, 219, :_reduce_216,
1508 4, 219, :_reduce_217,
1509 1, 219, :_reduce_218,
1510 4, 219, :_reduce_219,
1511 1, 219, :_reduce_220,
1512 1, 219, :_reduce_221,
1513 1, 219, :_reduce_222,
1514 6, 219, :_reduce_223,
1515 1, 220, :_reduce_224,
1516 3, 220, :_reduce_225,
1517 7, 224, :_reduce_226,
1518 10, 224, :_reduce_227,
1519 1, 221, :_reduce_228,
1520 3, 221, :_reduce_229,
1521 5, 225, :_reduce_230,
1522 7, 225, :_reduce_231,
1523 1, 227, :_reduce_232,
1524 3, 227, :_reduce_233,
1525 1, 209, :_reduce_234,
1526 5, 217, :_reduce_235,
1527 7, 217, :_reduce_236,
1528 5, 216, :_reduce_237,
1529 5, 216, :_reduce_238,
1530 9, 218, :_reduce_239,
1531 4, 208, :_reduce_240,
1532 7, 208, :_reduce_241,
1533 1, 229, :_reduce_none,
1534 4, 229, :_reduce_none,
1535 1, 228, :_reduce_244,
1536 3, 228, :_reduce_245,
1537 6, 210, :_reduce_246,
1538 1, 230, :_reduce_247,
1539 1, 231, :_reduce_none,
1540 2, 231, :_reduce_none,
1541 1, 144, :_reduce_250,
1542 2, 144, :_reduce_251,
1543 3, 144, :_reduce_252,
1544 6, 211, :_reduce_253,
1545 1, 232, :_reduce_254,
1546 0, 233, :_reduce_255,
1547 2, 233, :_reduce_256,
1548 3, 234, :_reduce_257,
1549 6, 234, :_reduce_258,
1550 6, 212, :_reduce_259,
1551 1, 235, :_reduce_260,
1552 1, 236, :_reduce_none,
1553 2, 236, :_reduce_none,
1554 1, 237, :_reduce_263,
1555 4, 237, :_reduce_264,
1556 1, 238, :_reduce_none,
1557 1, 238, :_reduce_none,
1558 1, 238, :_reduce_none,
1559 1, 238, :_reduce_none,
1560 1, 238, :_reduce_none,
1561 1, 239, :_reduce_270,
1562 3, 239, :_reduce_271,
1563 1, 245, :_reduce_272,
1564 4, 245, :_reduce_273,
1565 1, 245, :_reduce_274,
1566 1, 245, :_reduce_275,
1567 1, 245, :_reduce_276,
1568 1, 245, :_reduce_277,
1569 1, 246, :_reduce_278,
1570 1, 246, :_reduce_279,
1571 3, 246, :_reduce_280,
1572 3, 246, :_reduce_281,
1573 5, 247, :_reduce_282,
1574 5, 247, :_reduce_283,
1575 4, 240, :_reduce_284,
1576 6, 240, :_reduce_285,
1577 7, 240, :_reduce_286,
1578 8, 240, :_reduce_287,
1579 1, 248, :_reduce_288,
1580 1, 248, :_reduce_289,
1581 1, 249, :_reduce_290,
1582 1, 226, :_reduce_none,
1583 1, 250, :_reduce_none,
1584 5, 241, :_reduce_293,
1585 1, 251, :_reduce_294,
1586 2, 251, :_reduce_295,
1587 1, 252, :_reduce_296,
1588 4, 252, :_reduce_297,
1589 1, 253, :_reduce_298,
1590 4, 253, :_reduce_299,
1591 5, 253, :_reduce_300,
1592 3, 254, :_reduce_301,
1593 1, 254, :_reduce_302,
1594 1, 255, :_reduce_none,
1595 5, 242, :_reduce_304,
1596 1, 256, :_reduce_305,
1597 2, 256, :_reduce_306,
1598 1, 257, :_reduce_307,
1599 4, 257, :_reduce_308,
1600 4, 258, :_reduce_309,
1601 5, 243, :_reduce_310,
1602 7, 243, :_reduce_311,
1603 5, 244, :_reduce_none,
1604 1, 259, :_reduce_313,
1605 1, 259, :_reduce_314,
1606 0, 260, :_reduce_none,
1607 2, 260, :_reduce_none,
1608 7, 261, :_reduce_317,
1609 9, 261, :_reduce_318,
1610 1, 262, :_reduce_none,
1611 1, 263, :_reduce_320,
1612 3, 263, :_reduce_321,
1613 1, 263, :_reduce_322,
1614 3, 263, :_reduce_323,
1615 0, 267, :_reduce_324,
1616 8, 213, :_reduce_325,
1617 4, 213, :_reduce_326,
1618 1, 264, :_reduce_327,
1619 1, 265, :_reduce_328,
1620 0, 266, :_reduce_none,
1621 2, 266, :_reduce_none,
1622 2, 266, :_reduce_none,
1623 4, 268, :_reduce_332,
1624 1, 268, :_reduce_333,
1625 3, 270, :_reduce_334,
1626 1, 270, :_reduce_335,
1627 6, 272, :_reduce_336,
1628 1, 222, :_reduce_337,
1629 1, 223, :_reduce_none,
1630 6, 271, :_reduce_339,
1631 7, 271, :_reduce_340,
1632 4, 271, :_reduce_341,
1633 6, 271, :_reduce_342,
1634 1, 273, :_reduce_none,
1635 6, 269, :_reduce_344,
1636 9, 269, :_reduce_345,
1637 9, 269, :_reduce_346,
1638 12, 269, :_reduce_347,
1639 1, 274, :_reduce_none,
1640 6, 214, :_reduce_349,
1641 1, 275, :_reduce_350,
1642 1, 276, :_reduce_none,
1643 2, 276, :_reduce_none,
1644 1, 277, :_reduce_353,
1645 4, 277, :_reduce_354,
1646 1, 278, :_reduce_none,
1647 1, 278, :_reduce_none,
1648 1, 278, :_reduce_none,
1649 1, 278, :_reduce_none,
1650 1, 279, :_reduce_359,
1651 4, 284, :_reduce_360,
1652 1, 284, :_reduce_361,
1653 1, 284, :_reduce_362,
1654 1, 284, :_reduce_363,
1655 1, 284, :_reduce_364,
1656 1, 280, :_reduce_365,
1657 5, 281, :_reduce_366,
1658 1, 285, :_reduce_367,
1659 2, 285, :_reduce_368,
1660 0, 289, :_reduce_369,
1661 8, 282, :_reduce_370,
1662 4, 282, :_reduce_371,
1663 1, 286, :_reduce_372,
1664 1, 287, :_reduce_373,
1665 0, 288, :_reduce_none,
1666 2, 288, :_reduce_none,
1667 2, 288, :_reduce_none,
1668 6, 290, :_reduce_377,
1669 4, 290, :_reduce_378,
1670 6, 283, :_reduce_379,
1671 8, 283, :_reduce_380,
1672 1, 292, :_reduce_none,
1673 1, 293, :_reduce_none,
1674 1, 291, :_reduce_none,
1675 9, 215, :_reduce_384,
1676 6, 215, :_reduce_385,
1677 1, 294, :_reduce_none,
1678 3, 294, :_reduce_none,
1679 6, 297, :_reduce_388,
1680 3, 297, :_reduce_389,
1681 6, 297, :_reduce_390,
1682 3, 297, :_reduce_391,
1683 8, 297, :_reduce_392,
1684 4, 297, :_reduce_393,
1685 1, 297, :_reduce_394,
1686 1, 297, :_reduce_395,
1687 6, 297, :_reduce_396,
1688 4, 297, :_reduce_397,
1689 1, 295, :_reduce_398,
1690 0, 296, :_reduce_none,
1691 2, 296, :_reduce_none,
1692 2, 296, :_reduce_none,
1693 1, 299, :_reduce_none,
1694 4, 299, :_reduce_403,
1695 1, 298, :_reduce_404,
1696 1, 185, :_reduce_405,
1697 1, 187, :_reduce_406,
1698 4, 205, :_reduce_none,
1699 2, 300, :_reduce_none,
1700 2, 300, :_reduce_none,
1701 0, 300, :_reduce_none,
1702 14, 301, :_reduce_411,
1703 2, 303, :_reduce_412,
1704 0, 303, :_reduce_413,
1705 6, 304, :_reduce_414,
1706 13, 302, :_reduce_415,
1707 5, 305, :_reduce_416,
1708 0, 305, :_reduce_417 ]
1709
1710racc_reduce_n = 418
1711
1712racc_shift_n = 870
1713
1714racc_token_table = {
1715 false => 0,
1716 :error => 1,
1717 :TRUE => 2,
1718 :FALSE => 3,
1719 :INTEGER_CONSTANT => 4,
1720 :FLOATING_CONSTANT => 5,
1721 :OCTAL_CONSTANT => 6,
1722 :HEX_CONSTANT => 7,
1723 :CHARACTER_LITERAL => 8,
1724 "(" => 9,
1725 ")" => 10,
1726 :STRING_LITERAL => 11,
1727 "[" => 12,
1728 "]" => 13,
1729 "." => 14,
1730 :IDENTIFIER => 15,
1731 "->" => 16,
1732 :SIZEOF => 17,
1733 "&" => 18,
1734 "*" => 19,
1735 "+" => 20,
1736 "-" => 21,
1737 "~" => 22,
1738 "!" => 23,
1739 "/" => 24,
1740 "%" => 25,
1741 "<<" => 26,
1742 ">>" => 27,
1743 "<" => 28,
1744 ">" => 29,
1745 "<=" => 30,
1746 ">=" => 31,
1747 "==" => 32,
1748 "!=" => 33,
1749 "^" => 34,
1750 "|" => 35,
1751 "&&" => 36,
1752 "||" => 37,
1753 "?" => 38,
1754 ":" => 39,
1755 ";" => 40,
1756 "," => 41,
1757 "=" => 42,
1758 :VOID => 43,
1759 :FLOAT32_T => 44,
1760 :DOUBLE64_T => 45,
1761 :TYPE_NAME => 46,
1762 :BOOL_T => 47,
1763 :FLOAT => 48,
1764 :DOUBLE => 49,
1765 :DESCRIPTOR => 50,
1766 :CHAR_T => 51,
1767 :SCHAR_T => 52,
1768 :UCHAR_T => 53,
1769 :CHAR => 54,
1770 :SHORT => 55,
1771 :INT => 56,
1772 :LONG => 57,
1773 :INT8_T => 58,
1774 :INT16_T => 59,
1775 :INT32_T => 60,
1776 :INT64_T => 61,
1777 :INT128_T => 62,
1778 :UINT8_T => 63,
1779 :UINT16_T => 64,
1780 :UINT32_T => 65,
1781 :UINT64_T => 66,
1782 :UINT128_T => 67,
1783 :SIGNED => 68,
1784 :UNSIGNED => 69,
1785 :STRUCT => 70,
1786 "{" => 71,
1787 "}" => 72,
1788 :STRING => 73,
1789 :SIZE_IS => 74,
1790 :COUNT_IS => 75,
1791 :ENUM => 76,
1792 :ENUM8 => 77,
1793 :ENUM16 => 78,
1794 :ENUM32 => 79,
1795 :ENUM64 => 80,
1796 :ENUM128 => 81,
1797 :CONST => 82,
1798 :VOLATILE => 83,
1799 "..." => 84,
1800 :IN => 85,
1801 :OUT => 86,
1802 :INOUT => 87,
1803 :SEND => 88,
1804 :RECEIVE => 89,
1805 :NULLABLE => 90,
1806 :C_EXP => 91,
1807 :ALLOCATOR => 92,
1808 :CALLBACK => 93,
1809 :CONTEXT => 94,
1810 :DEVIATE => 95,
1811 :ID => 96,
1812 :PROTOTYPE => 97,
1813 :RESTRICT => 98,
1814 :SINGLETON => 99,
1815 :IDX_IS_ID => 100,
1816 :ACTIVE => 101,
1817 :GENERATE => 102,
1818 :IMPORT_C => 103,
1819 :IMPORT => 104,
1820 :AB_STRING_LITERAL => 105,
1821 :TYPEDEF => 106,
1822 :NAMESPACE => 107,
1823 "::" => 108,
1824 :SIGNATURE => 109,
1825 :ONEWAY => 110,
1826 :CELLTYPE => 111,
1827 :INLINE => 112,
1828 :OPTIONAL => 113,
1829 :REF_DESC => 114,
1830 :DYNAMIC => 115,
1831 :OMIT => 116,
1832 :CALL => 117,
1833 :ENTRY => 118,
1834 :ATTRIBUTE => 119,
1835 :CHOICE => 120,
1836 :VAR => 121,
1837 :REQUIRE => 122,
1838 :FACTORY => 123,
1839 :CTFACTORY => 124,
1840 :CELL => 125,
1841 :THROUGH => 126,
1842 :COMPOSITE => 127,
1843 "=>" => 128,
1844 :REGION => 129,
1845 :IN_THROUGH => 130,
1846 :OUT_THROUGH => 131,
1847 :TO_THROUGH => 132,
1848 :NODE => 133,
1849 :LINKUNIT => 134,
1850 :DOMAIN => 135,
1851 :CLASS => 136,
1852 :__LOCATION_INFORMATION__ => 137,
1853 :__CELL__ => 138,
1854 :__JOIN__ => 139 }
1855
1856racc_nt_base = 140
1857
1858racc_use_result_var = true
1859
1860Racc_arg = [
1861 racc_action_table,
1862 racc_action_check,
1863 racc_action_default,
1864 racc_action_pointer,
1865 racc_goto_table,
1866 racc_goto_check,
1867 racc_goto_default,
1868 racc_goto_pointer,
1869 racc_nt_base,
1870 racc_reduce_table,
1871 racc_token_table,
1872 racc_shift_n,
1873 racc_reduce_n,
1874 racc_use_result_var ]
1875
1876Racc_token_to_s_table = [
1877 "$end",
1878 "error",
1879 "TRUE",
1880 "FALSE",
1881 "INTEGER_CONSTANT",
1882 "FLOATING_CONSTANT",
1883 "OCTAL_CONSTANT",
1884 "HEX_CONSTANT",
1885 "CHARACTER_LITERAL",
1886 "\"(\"",
1887 "\")\"",
1888 "STRING_LITERAL",
1889 "\"[\"",
1890 "\"]\"",
1891 "\".\"",
1892 "IDENTIFIER",
1893 "\"->\"",
1894 "SIZEOF",
1895 "\"&\"",
1896 "\"*\"",
1897 "\"+\"",
1898 "\"-\"",
1899 "\"~\"",
1900 "\"!\"",
1901 "\"/\"",
1902 "\"%\"",
1903 "\"<<\"",
1904 "\">>\"",
1905 "\"<\"",
1906 "\">\"",
1907 "\"<=\"",
1908 "\">=\"",
1909 "\"==\"",
1910 "\"!=\"",
1911 "\"^\"",
1912 "\"|\"",
1913 "\"&&\"",
1914 "\"||\"",
1915 "\"?\"",
1916 "\":\"",
1917 "\";\"",
1918 "\",\"",
1919 "\"=\"",
1920 "VOID",
1921 "FLOAT32_T",
1922 "DOUBLE64_T",
1923 "TYPE_NAME",
1924 "BOOL_T",
1925 "FLOAT",
1926 "DOUBLE",
1927 "DESCRIPTOR",
1928 "CHAR_T",
1929 "SCHAR_T",
1930 "UCHAR_T",
1931 "CHAR",
1932 "SHORT",
1933 "INT",
1934 "LONG",
1935 "INT8_T",
1936 "INT16_T",
1937 "INT32_T",
1938 "INT64_T",
1939 "INT128_T",
1940 "UINT8_T",
1941 "UINT16_T",
1942 "UINT32_T",
1943 "UINT64_T",
1944 "UINT128_T",
1945 "SIGNED",
1946 "UNSIGNED",
1947 "STRUCT",
1948 "\"{\"",
1949 "\"}\"",
1950 "STRING",
1951 "SIZE_IS",
1952 "COUNT_IS",
1953 "ENUM",
1954 "ENUM8",
1955 "ENUM16",
1956 "ENUM32",
1957 "ENUM64",
1958 "ENUM128",
1959 "CONST",
1960 "VOLATILE",
1961 "\"...\"",
1962 "IN",
1963 "OUT",
1964 "INOUT",
1965 "SEND",
1966 "RECEIVE",
1967 "NULLABLE",
1968 "C_EXP",
1969 "ALLOCATOR",
1970 "CALLBACK",
1971 "CONTEXT",
1972 "DEVIATE",
1973 "ID",
1974 "PROTOTYPE",
1975 "RESTRICT",
1976 "SINGLETON",
1977 "IDX_IS_ID",
1978 "ACTIVE",
1979 "GENERATE",
1980 "IMPORT_C",
1981 "IMPORT",
1982 "AB_STRING_LITERAL",
1983 "TYPEDEF",
1984 "NAMESPACE",
1985 "\"::\"",
1986 "SIGNATURE",
1987 "ONEWAY",
1988 "CELLTYPE",
1989 "INLINE",
1990 "OPTIONAL",
1991 "REF_DESC",
1992 "DYNAMIC",
1993 "OMIT",
1994 "CALL",
1995 "ENTRY",
1996 "ATTRIBUTE",
1997 "CHOICE",
1998 "VAR",
1999 "REQUIRE",
2000 "FACTORY",
2001 "CTFACTORY",
2002 "CELL",
2003 "THROUGH",
2004 "COMPOSITE",
2005 "\"=>\"",
2006 "REGION",
2007 "IN_THROUGH",
2008 "OUT_THROUGH",
2009 "TO_THROUGH",
2010 "NODE",
2011 "LINKUNIT",
2012 "DOMAIN",
2013 "CLASS",
2014 "__LOCATION_INFORMATION__",
2015 "__CELL__",
2016 "__JOIN__",
2017 "$start",
2018 "all",
2019 "component_description",
2020 "primary_expression",
2021 "namespace_identifier",
2022 "string_literal_list",
2023 "expression",
2024 "postfix_expression",
2025 "unary_expression",
2026 "unary_operator",
2027 "cast_expression",
2028 "type_name",
2029 "multiplicative_expression",
2030 "additive_expression",
2031 "shift_expression",
2032 "relational_expression",
2033 "equality_expression",
2034 "and_expression",
2035 "exclusive_or_expression",
2036 "inclusive_or_expression",
2037 "logical_and_expression",
2038 "logical_or_expression",
2039 "conditional_expression",
2040 "constant_expression",
2041 "declaration",
2042 "type_specifier_qualifier_list",
2043 "init_declarator_list",
2044 "declaration_specifiers",
2045 "type_specifier",
2046 "type_qualifier",
2047 "init_declarator",
2048 "declarator",
2049 "initializer",
2050 "struct_specifier",
2051 "enum_specifier",
2052 "sign_int_type",
2053 "char_type",
2054 "int_type",
2055 "sign",
2056 "struct_tag",
2057 "struct_declaration_list",
2058 "@1",
2059 "@2",
2060 "struct_declaration",
2061 "struct_declarator_list",
2062 "spec_L",
2063 "pointer_specifier_list",
2064 "spec_R",
2065 "pointer_specifier",
2066 "struct_declarator",
2067 "enum_type",
2068 "enumerator_list",
2069 "enumerator",
2070 "pointer",
2071 "direct_declarator",
2072 "parameter_type_list",
2073 "parameter_list",
2074 "parameter_declaration",
2075 "parameter_specifier_list_bracket",
2076 "parameter_specifier_list",
2077 "parameter_specifier",
2078 "abstract_declarator",
2079 "direct_abstract_declarator",
2080 "initializer_list",
2081 "specified_statement",
2082 "location_information",
2083 "statement",
2084 "statement_specifier_list",
2085 "typedef",
2086 "const_statement",
2087 "namespace",
2088 "signature",
2089 "celltype",
2090 "cell",
2091 "composite_celltype",
2092 "region",
2093 "import",
2094 "import_C",
2095 "signature_plugin",
2096 "statement_specifier",
2097 "alloc_list",
2098 "restrict_list",
2099 "plugin_name",
2100 "plugin_arg",
2101 "alloc",
2102 "restrict",
2103 "port_name",
2104 "region_name_list",
2105 "declarator_list",
2106 "typedef_specifier",
2107 "namespace_name",
2108 "statement_list",
2109 "signature_name",
2110 "function_head_list",
2111 "function_head",
2112 "celltype_name",
2113 "celltype_statement_list",
2114 "specified_celltype_statement",
2115 "celltype_statement",
2116 "celltype_statement_specifier_list",
2117 "port",
2118 "attribute",
2119 "var",
2120 "require",
2121 "factory",
2122 "celltype_statement_specifier",
2123 "alloc_list2",
2124 "alloc2",
2125 "port_type",
2126 "namespace_signature_name",
2127 "array_size",
2128 "attribute_declaration_list",
2129 "attribute_declaration",
2130 "attribute_specifier",
2131 "choice_list",
2132 "choice_element",
2133 "var_declaration_list",
2134 "var_declaration",
2135 "var_specifier",
2136 "factory_head",
2137 "factory_function_list",
2138 "factory_function",
2139 "factory_function_name",
2140 "arg_list",
2141 "namespace_celltype_name",
2142 "cell_name",
2143 "join_list",
2144 "@3",
2145 "specified_join",
2146 "reverse_join",
2147 "join_specifier_list",
2148 "join",
2149 "join_specifier",
2150 "cae_name",
2151 "array_index",
2152 "composite_celltype_name",
2153 "composite_celltype_statement_list",
2154 "specified_composite_celltype_statement",
2155 "composite_celltype_statement",
2156 "composite_celltype_statement_specifier_list",
2157 "composite_port",
2158 "composite_attribute",
2159 "internal_cell",
2160 "export_join",
2161 "composite_celltype_statement_specifier",
2162 "composite_attribute_declaration_list",
2163 "internal_namespace_celltype_name",
2164 "internal_cell_name",
2165 "internal_join_list",
2166 "@4",
2167 "external_join",
2168 "internal_cell_elem_name",
2169 "export_name",
2170 "internal_ref_cell_name",
2171 "region_specifier_list",
2172 "region_name",
2173 "region_statement",
2174 "region_specifier",
2175 "namespace_region_name",
2176 "region_cell",
2177 "cell_location_join_location_list",
2178 "cell_location",
2179 "join_location",
2180 "port_location_list",
2181 "port_location",
2182 "bar_list" ]
2183
2184Racc_debug_parser = false
2185
2186##### State transition tables end #####
2187
2188# reduce 0 omitted
2189
2190# reduce 1 omitted
2191
2192module_eval(<<'.,.,', 'bnf.y.rb', 52)
2193 def _reduce_2(val, _values, result)
2194 result = [ :IDENTIFIER, val[0] ]
2195 result
2196 end
2197.,.,
2198
2199module_eval(<<'.,.,', 'bnf.y.rb', 54)
2200 def _reduce_3(val, _values, result)
2201 result = [ :BOOL_CONSTANT, true ]
2202 result
2203 end
2204.,.,
2205
2206module_eval(<<'.,.,', 'bnf.y.rb', 56)
2207 def _reduce_4(val, _values, result)
2208 result = [ :BOOL_CONSTANT, false ]
2209 result
2210 end
2211.,.,
2212
2213module_eval(<<'.,.,', 'bnf.y.rb', 58)
2214 def _reduce_5(val, _values, result)
2215 result = [ :INTEGER_CONSTANT, val[0] ]
2216 result
2217 end
2218.,.,
2219
2220module_eval(<<'.,.,', 'bnf.y.rb', 60)
2221 def _reduce_6(val, _values, result)
2222 result = [ :FLOATING_CONSTANT, val[0] ]
2223 result
2224 end
2225.,.,
2226
2227module_eval(<<'.,.,', 'bnf.y.rb', 62)
2228 def _reduce_7(val, _values, result)
2229 result = [ :OCTAL_CONSTANT, val[0] ]
2230 result
2231 end
2232.,.,
2233
2234module_eval(<<'.,.,', 'bnf.y.rb', 64)
2235 def _reduce_8(val, _values, result)
2236 result = [ :HEX_CONSTANT, val[0] ]
2237 result
2238 end
2239.,.,
2240
2241module_eval(<<'.,.,', 'bnf.y.rb', 66)
2242 def _reduce_9(val, _values, result)
2243 result = [ :CHARACTER_LITERAL, val[0] ]
2244 result
2245 end
2246.,.,
2247
2248module_eval(<<'.,.,', 'bnf.y.rb', 68)
2249 def _reduce_10(val, _values, result)
2250 result = [ :STRING_LITERAL_LIST, val[0] ]
2251 result
2252 end
2253.,.,
2254
2255module_eval(<<'.,.,', 'bnf.y.rb', 70)
2256 def _reduce_11(val, _values, result)
2257 result = [ :PARENTHESES, val[1].get_elements ]
2258 result
2259 end
2260.,.,
2261
2262# reduce 12 omitted
2263
2264module_eval(<<'.,.,', 'bnf.y.rb', 76)
2265 def _reduce_13(val, _values, result)
2266 # 連接した文字列を1つの文字列にまとめる
2267 str = "\"" + val[0].val.gsub( /\"(.*)\"/, "\\1" ) + val[1].val.gsub( /\"(.*)\"/, "\\1" ) + "\""
2268 result = Token.new( str, val[0].file, val[0].lineno, val[0].col )
2269
2270 result
2271 end
2272.,.,
2273
2274# reduce 14 omitted
2275
2276module_eval(<<'.,.,', 'bnf.y.rb', 85)
2277 def _reduce_15(val, _values, result)
2278 result = [ :OP_SUBSC, val[0], val[2] ]
2279 result
2280 end
2281.,.,
2282
2283module_eval(<<'.,.,', 'bnf.y.rb', 87)
2284 def _reduce_16(val, _values, result)
2285 result = [ :OP_DOT, val[0], val[2] ]
2286 result
2287 end
2288.,.,
2289
2290module_eval(<<'.,.,', 'bnf.y.rb', 89)
2291 def _reduce_17(val, _values, result)
2292 result = [ :OP_REF, val[0], val[2] ]
2293 result
2294 end
2295.,.,
2296
2297# reduce 18 omitted
2298
2299module_eval(<<'.,.,', 'bnf.y.rb', 95)
2300 def _reduce_19(val, _values, result)
2301 result = [ val[0], val[1] ]
2302 result
2303 end
2304.,.,
2305
2306module_eval(<<'.,.,', 'bnf.y.rb', 97)
2307 def _reduce_20(val, _values, result)
2308 result = [ :OP_SIZEOF_EXPR, val[1] ]
2309 result
2310 end
2311.,.,
2312
2313module_eval(<<'.,.,', 'bnf.y.rb', 99)
2314 def _reduce_21(val, _values, result)
2315 result = [ :OP_SIZEOF_TYPE, val[1] ]
2316 result
2317 end
2318.,.,
2319
2320module_eval(<<'.,.,', 'bnf.y.rb', 102)
2321 def _reduce_22(val, _values, result)
2322 result = :OP_U_AMP
2323 result
2324 end
2325.,.,
2326
2327module_eval(<<'.,.,', 'bnf.y.rb', 103)
2328 def _reduce_23(val, _values, result)
2329 result = :OP_U_ASTER
2330 result
2331 end
2332.,.,
2333
2334module_eval(<<'.,.,', 'bnf.y.rb', 104)
2335 def _reduce_24(val, _values, result)
2336 result = :OP_U_PLUS
2337 result
2338 end
2339.,.,
2340
2341module_eval(<<'.,.,', 'bnf.y.rb', 105)
2342 def _reduce_25(val, _values, result)
2343 result = :OP_U_MINUS
2344 result
2345 end
2346.,.,
2347
2348module_eval(<<'.,.,', 'bnf.y.rb', 106)
2349 def _reduce_26(val, _values, result)
2350 result = :OP_U_TILDE
2351 result
2352 end
2353.,.,
2354
2355module_eval(<<'.,.,', 'bnf.y.rb', 107)
2356 def _reduce_27(val, _values, result)
2357 result = :OP_U_EXCLAM
2358 result
2359 end
2360.,.,
2361
2362# reduce 28 omitted
2363
2364module_eval(<<'.,.,', 'bnf.y.rb', 112)
2365 def _reduce_29(val, _values, result)
2366 result = [ :CAST, val[1], val[3] ]
2367 result
2368 end
2369.,.,
2370
2371# reduce 30 omitted
2372
2373module_eval(<<'.,.,', 'bnf.y.rb', 117)
2374 def _reduce_31(val, _values, result)
2375 result = [ :OP_MULT, val[0], val[2] ]
2376 result
2377 end
2378.,.,
2379
2380module_eval(<<'.,.,', 'bnf.y.rb', 119)
2381 def _reduce_32(val, _values, result)
2382 result = [ :OP_DIV, val[0], val[2] ]
2383 result
2384 end
2385.,.,
2386
2387module_eval(<<'.,.,', 'bnf.y.rb', 121)
2388 def _reduce_33(val, _values, result)
2389 result = [ :OP_REMAIN, val[0], val[2] ]
2390 result
2391 end
2392.,.,
2393
2394# reduce 34 omitted
2395
2396module_eval(<<'.,.,', 'bnf.y.rb', 126)
2397 def _reduce_35(val, _values, result)
2398 result = [ :OP_ADD, val[0], val[2] ]
2399 result
2400 end
2401.,.,
2402
2403module_eval(<<'.,.,', 'bnf.y.rb', 128)
2404 def _reduce_36(val, _values, result)
2405 result = [ :OP_SUB, val[0], val[2] ]
2406 result
2407 end
2408.,.,
2409
2410# reduce 37 omitted
2411
2412module_eval(<<'.,.,', 'bnf.y.rb', 133)
2413 def _reduce_38(val, _values, result)
2414 result = [ :OP_LSFT, val[0], val[2] ]
2415 result
2416 end
2417.,.,
2418
2419module_eval(<<'.,.,', 'bnf.y.rb', 135)
2420 def _reduce_39(val, _values, result)
2421 result = [ :OP_RSFT, val[0], val[2] ]
2422 result
2423 end
2424.,.,
2425
2426# reduce 40 omitted
2427
2428module_eval(<<'.,.,', 'bnf.y.rb', 140)
2429 def _reduce_41(val, _values, result)
2430 result = [ :OP_LT, val[0], val[2] ]
2431 result
2432 end
2433.,.,
2434
2435module_eval(<<'.,.,', 'bnf.y.rb', 142)
2436 def _reduce_42(val, _values, result)
2437 result = [ :OP_GT, val[0], val[2] ]
2438 result
2439 end
2440.,.,
2441
2442module_eval(<<'.,.,', 'bnf.y.rb', 144)
2443 def _reduce_43(val, _values, result)
2444 result = [ :OP_LE, val[0], val[2] ]
2445 result
2446 end
2447.,.,
2448
2449module_eval(<<'.,.,', 'bnf.y.rb', 146)
2450 def _reduce_44(val, _values, result)
2451 result = [ :OP_GE, val[0], val[2] ]
2452 result
2453 end
2454.,.,
2455
2456# reduce 45 omitted
2457
2458module_eval(<<'.,.,', 'bnf.y.rb', 151)
2459 def _reduce_46(val, _values, result)
2460 result = [ :OP_EQ, val[0], val[2] ]
2461 result
2462 end
2463.,.,
2464
2465module_eval(<<'.,.,', 'bnf.y.rb', 153)
2466 def _reduce_47(val, _values, result)
2467 result = [ :OP_NE, val[0], val[2] ]
2468 result
2469 end
2470.,.,
2471
2472# reduce 48 omitted
2473
2474module_eval(<<'.,.,', 'bnf.y.rb', 158)
2475 def _reduce_49(val, _values, result)
2476 result = [ :OP_AND, val[0], val[2] ]
2477 result
2478 end
2479.,.,
2480
2481# reduce 50 omitted
2482
2483module_eval(<<'.,.,', 'bnf.y.rb', 163)
2484 def _reduce_51(val, _values, result)
2485 result = [ :OP_EOR, val[0], val[2] ]
2486 result
2487 end
2488.,.,
2489
2490# reduce 52 omitted
2491
2492module_eval(<<'.,.,', 'bnf.y.rb', 168)
2493 def _reduce_53(val, _values, result)
2494 result = [ :OP_OR, val[0], val[2] ]
2495 result
2496 end
2497.,.,
2498
2499# reduce 54 omitted
2500
2501module_eval(<<'.,.,', 'bnf.y.rb', 173)
2502 def _reduce_55(val, _values, result)
2503 result = [ :OP_LAND, val[0], val[2] ]
2504 result
2505 end
2506.,.,
2507
2508# reduce 56 omitted
2509
2510module_eval(<<'.,.,', 'bnf.y.rb', 178)
2511 def _reduce_57(val, _values, result)
2512 result = [ :OP_LOR, val[0], val[2] ]
2513 result
2514 end
2515.,.,
2516
2517# reduce 58 omitted
2518
2519module_eval(<<'.,.,', 'bnf.y.rb', 183)
2520 def _reduce_59(val, _values, result)
2521 result = [ :OP_CEX, val[0], val[2].get_elements, val[4] ]
2522 result
2523 end
2524.,.,
2525
2526module_eval(<<'.,.,', 'bnf.y.rb', 190)
2527 def _reduce_60(val, _values, result)
2528 result = Expression.new( val[0] )
2529 # result.print
2530
2531 result
2532 end
2533.,.,
2534
2535module_eval(<<'.,.,', 'bnf.y.rb', 197)
2536 def _reduce_61(val, _values, result)
2537 result = Expression.new( val[0] )
2538 # result.print
2539
2540 # res = result.eval_const( nil )
2541 # if res then
2542 # puts "val: #{res}"
2543 # else
2544 # puts "val: nil"
2545 # end
2546
2547 result
2548 end
2549.,.,
2550
2551module_eval(<<'.,.,', 'bnf.y.rb', 219)
2552 def _reduce_62(val, _values, result)
2553 val[1].each { |i| # i: Decl
2554 i.set_type( val[0] )
2555 }
2556 result = val[1]
2557
2558 result
2559 end
2560.,.,
2561
2562# reduce 63 omitted
2563
2564module_eval(<<'.,.,', 'bnf.y.rb', 235)
2565 def _reduce_64(val, _values, result)
2566 val[1].set_qualifier( val[0] )
2567 result = val[1]
2568
2569 result
2570 end
2571.,.,
2572
2573module_eval(<<'.,.,', 'bnf.y.rb', 241)
2574 def _reduce_65(val, _values, result)
2575 result = [val[0]]
2576 result
2577 end
2578.,.,
2579
2580module_eval(<<'.,.,', 'bnf.y.rb', 243)
2581 def _reduce_66(val, _values, result)
2582 result << val[2]
2583 result
2584 end
2585.,.,
2586
2587# reduce 67 omitted
2588
2589module_eval(<<'.,.,', 'bnf.y.rb', 248)
2590 def _reduce_68(val, _values, result)
2591 val[0].set_initializer( val[2] )
2592 result
2593 end
2594.,.,
2595
2596module_eval(<<'.,.,', 'bnf.y.rb', 254)
2597 def _reduce_69(val, _values, result)
2598 result = VoidType.new
2599 result
2600 end
2601.,.,
2602
2603module_eval(<<'.,.,', 'bnf.y.rb', 255)
2604 def _reduce_70(val, _values, result)
2605 result = FloatType.new(32)
2606 result
2607 end
2608.,.,
2609
2610module_eval(<<'.,.,', 'bnf.y.rb', 256)
2611 def _reduce_71(val, _values, result)
2612 result = FloatType.new(64)
2613 result
2614 end
2615.,.,
2616
2617# reduce 72 omitted
2618
2619# reduce 73 omitted
2620
2621module_eval(<<'.,.,', 'bnf.y.rb', 259)
2622 def _reduce_74(val, _values, result)
2623 result = DefinedType.new( val[0].val )
2624 result
2625 end
2626.,.,
2627
2628# reduce 75 omitted
2629
2630# reduce 76 omitted
2631
2632module_eval(<<'.,.,', 'bnf.y.rb', 263)
2633 def _reduce_77(val, _values, result)
2634 result = BoolType.new
2635 result
2636 end
2637.,.,
2638
2639module_eval(<<'.,.,', 'bnf.y.rb', 269)
2640 def _reduce_78(val, _values, result)
2641 Generator.warning( "W5002 float: obsolete type. use float32_t" )
2642 result = FloatType.new(32)
2643
2644 result
2645 end
2646.,.,
2647
2648module_eval(<<'.,.,', 'bnf.y.rb', 273)
2649 def _reduce_79(val, _values, result)
2650 Generator.warning( "W5003 double: obsolete type. use double64_t" )
2651 result = FloatType.new(64)
2652
2653 result
2654 end
2655.,.,
2656
2657module_eval(<<'.,.,', 'bnf.y.rb', 276)
2658 def _reduce_80(val, _values, result)
2659 # namespace_identifier: signature name
2660 result = DescriptorType.new( val[2] )
2661
2662 result
2663 end
2664.,.,
2665
2666module_eval(<<'.,.,', 'bnf.y.rb', 281)
2667 def _reduce_81(val, _values, result)
2668 result = IntType.new( -1 )
2669 result
2670 end
2671.,.,
2672
2673module_eval(<<'.,.,', 'bnf.y.rb', 284)
2674 def _reduce_82(val, _values, result)
2675 result = IntType.new( -1 )
2676 result.set_sign( :SIGNED, true )
2677
2678 result
2679 end
2680.,.,
2681
2682module_eval(<<'.,.,', 'bnf.y.rb', 289)
2683 def _reduce_83(val, _values, result)
2684 result = IntType.new( -1 )
2685 result.set_sign( :UNSIGNED, true )
2686
2687 result
2688 end
2689.,.,
2690
2691module_eval(<<'.,.,', 'bnf.y.rb', 295)
2692 def _reduce_84(val, _values, result)
2693 # Generator.warning( "W5004 char: obsolete type. use char_t" )
2694 result = IntType.new( -11 )
2695
2696 result
2697 end
2698.,.,
2699
2700module_eval(<<'.,.,', 'bnf.y.rb', 298)
2701 def _reduce_85(val, _values, result)
2702 result = IntType.new( -2 )
2703 result
2704 end
2705.,.,
2706
2707module_eval(<<'.,.,', 'bnf.y.rb', 299)
2708 def _reduce_86(val, _values, result)
2709 result = IntType.new( -3 )
2710 result
2711 end
2712.,.,
2713
2714module_eval(<<'.,.,', 'bnf.y.rb', 300)
2715 def _reduce_87(val, _values, result)
2716 result = IntType.new( -4 )
2717 result
2718 end
2719.,.,
2720
2721module_eval(<<'.,.,', 'bnf.y.rb', 324)
2722 def _reduce_88(val, _values, result)
2723 result = IntType.new( 8 )
2724 result
2725 end
2726.,.,
2727
2728module_eval(<<'.,.,', 'bnf.y.rb', 325)
2729 def _reduce_89(val, _values, result)
2730 result = IntType.new( 16 )
2731 result
2732 end
2733.,.,
2734
2735module_eval(<<'.,.,', 'bnf.y.rb', 326)
2736 def _reduce_90(val, _values, result)
2737 result = IntType.new( 32 )
2738 result
2739 end
2740.,.,
2741
2742module_eval(<<'.,.,', 'bnf.y.rb', 327)
2743 def _reduce_91(val, _values, result)
2744 result = IntType.new( 64 )
2745 result
2746 end
2747.,.,
2748
2749module_eval(<<'.,.,', 'bnf.y.rb', 328)
2750 def _reduce_92(val, _values, result)
2751 result = IntType.new( 128 )
2752 result
2753 end
2754.,.,
2755
2756module_eval(<<'.,.,', 'bnf.y.rb', 331)
2757 def _reduce_93(val, _values, result)
2758 result = IntType.new( 8 )
2759 result.set_sign( :UNSIGNED, true )
2760
2761 result
2762 end
2763.,.,
2764
2765module_eval(<<'.,.,', 'bnf.y.rb', 336)
2766 def _reduce_94(val, _values, result)
2767 result = IntType.new( 16 )
2768 result.set_sign( :UNSIGNED, true )
2769
2770 result
2771 end
2772.,.,
2773
2774module_eval(<<'.,.,', 'bnf.y.rb', 341)
2775 def _reduce_95(val, _values, result)
2776 result = IntType.new( 32 )
2777 result.set_sign( :UNSIGNED, true )
2778
2779 result
2780 end
2781.,.,
2782
2783module_eval(<<'.,.,', 'bnf.y.rb', 346)
2784 def _reduce_96(val, _values, result)
2785 result = IntType.new( 64 )
2786 result.set_sign( :UNSIGNED, true )
2787
2788 result
2789 end
2790.,.,
2791
2792module_eval(<<'.,.,', 'bnf.y.rb', 351)
2793 def _reduce_97(val, _values, result)
2794 result = IntType.new( 128 )
2795 result.set_sign( :UNSIGNED, true )
2796
2797 result
2798 end
2799.,.,
2800
2801module_eval(<<'.,.,', 'bnf.y.rb', 356)
2802 def _reduce_98(val, _values, result)
2803 result = :SIGNED
2804 result
2805 end
2806.,.,
2807
2808module_eval(<<'.,.,', 'bnf.y.rb', 357)
2809 def _reduce_99(val, _values, result)
2810 result = :UNSIGNED
2811 result
2812 end
2813.,.,
2814
2815module_eval(<<'.,.,', 'bnf.y.rb', 363)
2816 def _reduce_100(val, _values, result)
2817 val[1].set_sign( val[0] )
2818 result = val[1]
2819
2820 result
2821 end
2822.,.,
2823
2824# reduce 101 omitted
2825
2826module_eval(<<'.,.,', 'bnf.y.rb', 371)
2827 def _reduce_102(val, _values, result)
2828 StructType.set_define( true )
2829 result
2830 end
2831.,.,
2832
2833module_eval(<<'.,.,', 'bnf.y.rb', 374)
2834 def _reduce_103(val, _values, result)
2835 StructType.end_of_parse
2836 result = val[1]
2837
2838 result
2839 end
2840.,.,
2841
2842module_eval(<<'.,.,', 'bnf.y.rb', 379)
2843 def _reduce_104(val, _values, result)
2844 result = StructType.new()
2845 StructType.set_define( true )
2846
2847 result
2848 end
2849.,.,
2850
2851module_eval(<<'.,.,', 'bnf.y.rb', 384)
2852 def _reduce_105(val, _values, result)
2853 StructType.end_of_parse
2854 result = val[1]
2855
2856 result
2857 end
2858.,.,
2859
2860module_eval(<<'.,.,', 'bnf.y.rb', 389)
2861 def _reduce_106(val, _values, result)
2862 StructType.set_define( false )
2863 StructType.end_of_parse
2864 result = val[1]
2865
2866 result
2867 end
2868.,.,
2869
2870# reduce 107 omitted
2871
2872# reduce 108 omitted
2873
2874module_eval(<<'.,.,', 'bnf.y.rb', 400)
2875 def _reduce_109(val, _values, result)
2876 result = StructType.new( val[0].val )
2877 result
2878 end
2879.,.,
2880
2881module_eval(<<'.,.,', 'bnf.y.rb', 406)
2882 def _reduce_110(val, _values, result)
2883 val[1].each { |i| # i: Decl
2884 i.set_type( val[0] )
2885 i.set_kind( :MEMBER )
2886 i.check
2887 StructType.new_member( i )
2888 }
2889 result = val[1]
2890
2891 result
2892 end
2893.,.,
2894
2895module_eval(<<'.,.,', 'bnf.y.rb', 416)
2896 def _reduce_111(val, _values, result)
2897 val[4].each { |i| # i: Decl
2898 i.set_type( val[3] )
2899 i.set_kind( :MEMBER )
2900 i.set_specifier_list val[1]
2901 i.check
2902 StructType.new_member( i )
2903 }
2904 result = val[4]
2905
2906 result
2907 end
2908.,.,
2909
2910module_eval(<<'.,.,', 'bnf.y.rb', 427)
2911 def _reduce_112(val, _values, result)
2912 result = [ val[0] ]
2913 result
2914 end
2915.,.,
2916
2917module_eval(<<'.,.,', 'bnf.y.rb', 428)
2918 def _reduce_113(val, _values, result)
2919 result << val[2]
2920 result
2921 end
2922.,.,
2923
2924module_eval(<<'.,.,', 'bnf.y.rb', 431)
2925 def _reduce_114(val, _values, result)
2926 result = [:STRING,-1]
2927 result
2928 end
2929.,.,
2930
2931module_eval(<<'.,.,', 'bnf.y.rb', 432)
2932 def _reduce_115(val, _values, result)
2933 result = [:STRING,val[2]]
2934 result
2935 end
2936.,.,
2937
2938module_eval(<<'.,.,', 'bnf.y.rb', 433)
2939 def _reduce_116(val, _values, result)
2940 result = [:SIZE_IS,val[2]]
2941 result
2942 end
2943.,.,
2944
2945module_eval(<<'.,.,', 'bnf.y.rb', 434)
2946 def _reduce_117(val, _values, result)
2947 result = [:COUNT_IS,val[2]]
2948 result
2949 end
2950.,.,
2951
2952# reduce 118 omitted
2953
2954module_eval(<<'.,.,', 'bnf.y.rb', 445)
2955 def _reduce_119(val, _values, result)
2956 val[1].set_qualifier( val[0] )
2957 result = val[1]
2958
2959 result
2960 end
2961.,.,
2962
2963module_eval(<<'.,.,', 'bnf.y.rb', 454)
2964 def _reduce_120(val, _values, result)
2965 result = [ val[0] ]
2966 result
2967 end
2968.,.,
2969
2970module_eval(<<'.,.,', 'bnf.y.rb', 456)
2971 def _reduce_121(val, _values, result)
2972 result << val[2]
2973 result
2974 end
2975.,.,
2976
2977# reduce 122 omitted
2978
2979# reduce 123 omitted
2980
2981# reduce 124 omitted
2982
2983# reduce 125 omitted
2984
2985module_eval(<<'.,.,', 'bnf.y.rb', 469)
2986 def _reduce_126(val, _values, result)
2987 result = EnumType.new( -1 )
2988 result
2989 end
2990.,.,
2991
2992module_eval(<<'.,.,', 'bnf.y.rb', 470)
2993 def _reduce_127(val, _values, result)
2994 result = EnumType.new( 8 )
2995 result
2996 end
2997.,.,
2998
2999module_eval(<<'.,.,', 'bnf.y.rb', 471)
3000 def _reduce_128(val, _values, result)
3001 result = EnumType.new( 16 )
3002 result
3003 end
3004.,.,
3005
3006module_eval(<<'.,.,', 'bnf.y.rb', 472)
3007 def _reduce_129(val, _values, result)
3008 result = EnumType.new( 32 )
3009 result
3010 end
3011.,.,
3012
3013module_eval(<<'.,.,', 'bnf.y.rb', 473)
3014 def _reduce_130(val, _values, result)
3015 result = EnumType.new( 64 )
3016 result
3017 end
3018.,.,
3019
3020module_eval(<<'.,.,', 'bnf.y.rb', 474)
3021 def _reduce_131(val, _values, result)
3022 result = EnumType.new( 128 )
3023 result
3024 end
3025.,.,
3026
3027# reduce 132 omitted
3028
3029# reduce 133 omitted
3030
3031# reduce 134 omitted
3032
3033# reduce 135 omitted
3034
3035module_eval(<<'.,.,', 'bnf.y.rb', 485)
3036 def _reduce_136(val, _values, result)
3037 result = :CONST
3038 result
3039 end
3040.,.,
3041
3042module_eval(<<'.,.,', 'bnf.y.rb', 486)
3043 def _reduce_137(val, _values, result)
3044 result = :VOLATILE
3045 result
3046 end
3047.,.,
3048
3049module_eval(<<'.,.,', 'bnf.y.rb', 491)
3050 def _reduce_138(val, _values, result)
3051 val[1].set_type( val[0] )
3052 result = val[1]
3053
3054 result
3055 end
3056.,.,
3057
3058# reduce 139 omitted
3059
3060module_eval(<<'.,.,', 'bnf.y.rb', 498)
3061 def _reduce_140(val, _values, result)
3062 result = Decl.new( val[0].val )
3063 result
3064 end
3065.,.,
3066
3067module_eval(<<'.,.,', 'bnf.y.rb', 500)
3068 def _reduce_141(val, _values, result)
3069 result = val[1]
3070 result
3071 end
3072.,.,
3073
3074module_eval(<<'.,.,', 'bnf.y.rb', 503)
3075 def _reduce_142(val, _values, result)
3076 val[0].set_type( ArrayType.new( val[2] ) )
3077 result = val[0]
3078
3079 result
3080 end
3081.,.,
3082
3083module_eval(<<'.,.,', 'bnf.y.rb', 508)
3084 def _reduce_143(val, _values, result)
3085 val[0].set_type( ArrayType.new )
3086 result = val[0]
3087
3088 result
3089 end
3090.,.,
3091
3092module_eval(<<'.,.,', 'bnf.y.rb', 513)
3093 def _reduce_144(val, _values, result)
3094 val[0].set_type( FuncType.new( val[2] ) )
3095 result = val[0]
3096
3097 result
3098 end
3099.,.,
3100
3101module_eval(<<'.,.,', 'bnf.y.rb', 519)
3102 def _reduce_145(val, _values, result)
3103 Generator.warning( "W5010 need 'void' for no parameter" )
3104 val[0].set_type( FuncType.new )
3105 result = val[0]
3106
3107 result
3108 end
3109.,.,
3110
3111module_eval(<<'.,.,', 'bnf.y.rb', 526)
3112 def _reduce_146(val, _values, result)
3113 result = PtrType.new
3114 result
3115 end
3116.,.,
3117
3118module_eval(<<'.,.,', 'bnf.y.rb', 529)
3119 def _reduce_147(val, _values, result)
3120 result = PtrType.new
3121 result.set_qualifier( val[1] )
3122
3123 result
3124 end
3125.,.,
3126
3127module_eval(<<'.,.,', 'bnf.y.rb', 534)
3128 def _reduce_148(val, _values, result)
3129 val[1].set_type(PtrType.new)
3130 result = val[1]
3131
3132 result
3133 end
3134.,.,
3135
3136module_eval(<<'.,.,', 'bnf.y.rb', 539)
3137 def _reduce_149(val, _values, result)
3138 ptrtype = PtrType.new
3139 ptrtype.set_qualifier( val[1] )
3140 val[2].set_type( ptrtype )
3141 result = val[2]
3142
3143 result
3144 end
3145.,.,
3146
3147# reduce 150 omitted
3148
3149# reduce 151 omitted
3150
3151module_eval(<<'.,.,', 'bnf.y.rb', 553)
3152 def _reduce_152(val, _values, result)
3153 result = ParamList.new( val[0] )
3154 result
3155 end
3156.,.,
3157
3158module_eval(<<'.,.,', 'bnf.y.rb', 556)
3159 def _reduce_153(val, _values, result)
3160 val[0].add_param( val[2] )
3161 # result = val[0] 不要
3162
3163 result
3164 end
3165.,.,
3166
3167module_eval(<<'.,.,', 'bnf.y.rb', 566)
3168 def _reduce_154(val, _values, result)
3169 val[2].set_kind( :PARAMETER )
3170 paramdecl = ParamDecl.new( val[2], val[1], val[0] )
3171 val[2].check
3172 result = paramdecl
3173
3174 result
3175 end
3176.,.,
3177
3178module_eval(<<'.,.,', 'bnf.y.rb', 575)
3179 def _reduce_155(val, _values, result)
3180 Generator.error( "G1001 need specifier for \'$1\'" , val[1].get_name )
3181 result = nil
3182
3183 result
3184 end
3185.,.,
3186
3187module_eval(<<'.,.,', 'bnf.y.rb', 580)
3188 def _reduce_156(val, _values, result)
3189 unless val[0].instance_of?( VoidType ) then
3190 Generator.error( "G1002 need parameter name" )
3191 end
3192 result = nil
3193
3194 result
3195 end
3196.,.,
3197
3198module_eval(<<'.,.,', 'bnf.y.rb', 588)
3199 def _reduce_157(val, _values, result)
3200 unless val[1].instance_of?( VoidType ) then
3201 Generator.error( "G1003 need parameter name" )
3202 end
3203 result = nil
3204
3205 result
3206 end
3207.,.,
3208
3209module_eval(<<'.,.,', 'bnf.y.rb', 595)
3210 def _reduce_158(val, _values, result)
3211 result = val[1]
3212 result
3213 end
3214.,.,
3215
3216module_eval(<<'.,.,', 'bnf.y.rb', 599)
3217 def _reduce_159(val, _values, result)
3218 result = val[0]
3219 result
3220 end
3221.,.,
3222
3223module_eval(<<'.,.,', 'bnf.y.rb', 601)
3224 def _reduce_160(val, _values, result)
3225 result = result + val[2]
3226 result
3227 end
3228.,.,
3229
3230module_eval(<<'.,.,', 'bnf.y.rb', 604)
3231 def _reduce_161(val, _values, result)
3232 result = [ [:IN] ]
3233 result
3234 end
3235.,.,
3236
3237module_eval(<<'.,.,', 'bnf.y.rb', 605)
3238 def _reduce_162(val, _values, result)
3239 result = [ [:OUT] ]
3240 result
3241 end
3242.,.,
3243
3244module_eval(<<'.,.,', 'bnf.y.rb', 606)
3245 def _reduce_163(val, _values, result)
3246 result = [ [:INOUT] ]
3247 result
3248 end
3249.,.,
3250
3251module_eval(<<'.,.,', 'bnf.y.rb', 607)
3252 def _reduce_164(val, _values, result)
3253 result = [ [:SEND, val[2]] ]
3254 result
3255 end
3256.,.,
3257
3258module_eval(<<'.,.,', 'bnf.y.rb', 608)
3259 def _reduce_165(val, _values, result)
3260 result = [ [:RECEIVE,val[2]] ]
3261 result
3262 end
3263.,.,
3264
3265module_eval(<<'.,.,', 'bnf.y.rb', 609)
3266 def _reduce_166(val, _values, result)
3267 result = [ [:STRING,nil] ]
3268 result
3269 end
3270.,.,
3271
3272module_eval(<<'.,.,', 'bnf.y.rb', 610)
3273 def _reduce_167(val, _values, result)
3274 result = [ [:STRING, val[2]] ]
3275 result
3276 end
3277.,.,
3278
3279module_eval(<<'.,.,', 'bnf.y.rb', 611)
3280 def _reduce_168(val, _values, result)
3281 result = [ [:SIZE_IS, val[2]] ]
3282 result
3283 end
3284.,.,
3285
3286module_eval(<<'.,.,', 'bnf.y.rb', 614)
3287 def _reduce_169(val, _values, result)
3288 result = [ [:SIZE_IS,val[2]], [:MAX_IS, val[4]] ]
3289
3290 result
3291 end
3292.,.,
3293
3294module_eval(<<'.,.,', 'bnf.y.rb', 616)
3295 def _reduce_170(val, _values, result)
3296 result = [ [:COUNT_IS,val[2]] ]
3297 result
3298 end
3299.,.,
3300
3301module_eval(<<'.,.,', 'bnf.y.rb', 617)
3302 def _reduce_171(val, _values, result)
3303 result = [ [:NULLABLE] ]
3304 result
3305 end
3306.,.,
3307
3308# reduce 172 omitted
3309
3310module_eval(<<'.,.,', 'bnf.y.rb', 623)
3311 def _reduce_173(val, _values, result)
3312 if val[1] then
3313 val[1].set_type( val[0] )
3314 result = val[1]
3315 else
3316 # エラー:仮で val[0] を返す
3317 result = val[0]
3318 end
3319
3320 result
3321 end
3322.,.,
3323
3324# reduce 174 omitted
3325
3326# reduce 175 omitted
3327
3328# reduce 176 omitted
3329
3330module_eval(<<'.,.,', 'bnf.y.rb', 640)
3331 def _reduce_177(val, _values, result)
3332 result = val[1]
3333 result
3334 end
3335.,.,
3336
3337module_eval(<<'.,.,', 'bnf.y.rb', 643)
3338 def _reduce_178(val, _values, result)
3339 Generator.error( "G1004 impossible array type" )
3340 result = nil
3341
3342 result
3343 end
3344.,.,
3345
3346module_eval(<<'.,.,', 'bnf.y.rb', 648)
3347 def _reduce_179(val, _values, result)
3348 Generator.error( "G1005 impossible array type" )
3349 result = nil
3350
3351 result
3352 end
3353.,.,
3354
3355module_eval(<<'.,.,', 'bnf.y.rb', 653)
3356 def _reduce_180(val, _values, result)
3357 Generator.error( "G1006 impossible array type" )
3358 result = nil
3359
3360 result
3361 end
3362.,.,
3363
3364module_eval(<<'.,.,', 'bnf.y.rb', 658)
3365 def _reduce_181(val, _values, result)
3366 Generator.error( "G1007 impossible array type" )
3367 result = nil
3368
3369 result
3370 end
3371.,.,
3372
3373module_eval(<<'.,.,', 'bnf.y.rb', 663)
3374 def _reduce_182(val, _values, result)
3375 Generator.error( "G1008 impossible function type" )
3376 result = nil
3377
3378 result
3379 end
3380.,.,
3381
3382# reduce 183 omitted
3383
3384module_eval(<<'.,.,', 'bnf.y.rb', 669)
3385 def _reduce_184(val, _values, result)
3386 Generator.warning( "W5011 need 'void' for no parameter" )
3387 val[0].set_type( FuncType.new )
3388 result = val[0]
3389
3390 result
3391 end
3392.,.,
3393
3394module_eval(<<'.,.,', 'bnf.y.rb', 675)
3395 def _reduce_185(val, _values, result)
3396 val[0].set_type( FuncType.new( val[2] ) )
3397 result = val[0]
3398
3399 result
3400 end
3401.,.,
3402
3403module_eval(<<'.,.,', 'bnf.y.rb', 682)
3404 def _reduce_186(val, _values, result)
3405 result = val[0]
3406 result
3407 end
3408.,.,
3409
3410module_eval(<<'.,.,', 'bnf.y.rb', 684)
3411 def _reduce_187(val, _values, result)
3412 result = val[1]
3413 result
3414 end
3415.,.,
3416
3417module_eval(<<'.,.,', 'bnf.y.rb', 686)
3418 def _reduce_188(val, _values, result)
3419 result = val[1]
3420 result
3421 end
3422.,.,
3423
3424module_eval(<<'.,.,', 'bnf.y.rb', 689)
3425 def _reduce_189(val, _values, result)
3426 result = C_EXP.new( val[2] )
3427 result
3428 end
3429.,.,
3430
3431module_eval(<<'.,.,', 'bnf.y.rb', 694)
3432 def _reduce_190(val, _values, result)
3433 result = [ val[0] ]
3434
3435 result
3436 end
3437.,.,
3438
3439module_eval(<<'.,.,', 'bnf.y.rb', 698)
3440 def _reduce_191(val, _values, result)
3441 val[0] << val[2]
3442 result = val[0]
3443
3444 result
3445 end
3446.,.,
3447
3448# reduce 192 omitted
3449
3450# reduce 193 omitted
3451
3452# reduce 194 omitted
3453
3454# reduce 195 omitted
3455
3456module_eval(<<'.,.,', 'bnf.y.rb', 716)
3457 def _reduce_196(val, _values, result)
3458 obj = val[3]
3459 if obj.kind_of?( Cell ) || obj.kind_of?( Signature ) || obj.kind_of?( Celltype ) || obj.kind_of?( CompositeCelltype )then
3460 # cell, signature 以外は、指定子を置けない
3461 else
3462 Generator.get_statement_specifier # クリア
3463 Generator.error( "G1009 unexpected specifier" )
3464 end
3465
3466 result
3467 end
3468.,.,
3469
3470# reduce 197 omitted
3471
3472# reduce 198 omitted
3473
3474# reduce 199 omitted
3475
3476# reduce 200 omitted
3477
3478# reduce 201 omitted
3479
3480# reduce 202 omitted
3481
3482# reduce 203 omitted
3483
3484# reduce 204 omitted
3485
3486# reduce 205 omitted
3487
3488# reduce 206 omitted
3489
3490# reduce 207 omitted
3491
3492# reduce 208 omitted
3493
3494# reduce 209 omitted
3495
3496# reduce 210 omitted
3497
3498module_eval(<<'.,.,', 'bnf.y.rb', 745)
3499 def _reduce_211(val, _values, result)
3500 Generator.add_statement_specifier val[0]
3501 result
3502 end
3503.,.,
3504
3505module_eval(<<'.,.,', 'bnf.y.rb', 747)
3506 def _reduce_212(val, _values, result)
3507 Generator.add_statement_specifier val[2]
3508 result
3509 end
3510.,.,
3511
3512module_eval(<<'.,.,', 'bnf.y.rb', 751)
3513 def _reduce_213(val, _values, result)
3514 result = [ :ALLOCATOR, val[2] ]
3515 result
3516 end
3517.,.,
3518
3519module_eval(<<'.,.,', 'bnf.y.rb', 753)
3520 def _reduce_214(val, _values, result)
3521 result = [ :CALLBACK ]
3522 result
3523 end
3524.,.,
3525
3526module_eval(<<'.,.,', 'bnf.y.rb', 755)
3527 def _reduce_215(val, _values, result)
3528 result = [ :CONTEXT, val[2].val ]
3529 result
3530 end
3531.,.,
3532
3533module_eval(<<'.,.,', 'bnf.y.rb', 757)
3534 def _reduce_216(val, _values, result)
3535 result = [ :DEVIATE ]
3536 result
3537 end
3538.,.,
3539
3540module_eval(<<'.,.,', 'bnf.y.rb', 759)
3541 def _reduce_217(val, _values, result)
3542 result = [ :ID, val[2] ]
3543 result
3544 end
3545.,.,
3546
3547module_eval(<<'.,.,', 'bnf.y.rb', 761)
3548 def _reduce_218(val, _values, result)
3549 result = [ :PROTOTYPE ]
3550 result
3551 end
3552.,.,
3553
3554module_eval(<<'.,.,', 'bnf.y.rb', 763)
3555 def _reduce_219(val, _values, result)
3556 result = [ :RESTRICT, val[2] ]
3557 result
3558 end
3559.,.,
3560
3561module_eval(<<'.,.,', 'bnf.y.rb', 764)
3562 def _reduce_220(val, _values, result)
3563 result = [:SINGLETON]
3564 result
3565 end
3566.,.,
3567
3568module_eval(<<'.,.,', 'bnf.y.rb', 765)
3569 def _reduce_221(val, _values, result)
3570 result = [:IDX_IS_ID]
3571 result
3572 end
3573.,.,
3574
3575module_eval(<<'.,.,', 'bnf.y.rb', 766)
3576 def _reduce_222(val, _values, result)
3577 result = [:ACTIVE]
3578 result
3579 end
3580.,.,
3581
3582module_eval(<<'.,.,', 'bnf.y.rb', 768)
3583 def _reduce_223(val, _values, result)
3584 result = [:GENERATE, val[2].val, val[4].val]
3585 result
3586 end
3587.,.,
3588
3589module_eval(<<'.,.,', 'bnf.y.rb', 771)
3590 def _reduce_224(val, _values, result)
3591 result = [ val[0] ]
3592 result
3593 end
3594.,.,
3595
3596module_eval(<<'.,.,', 'bnf.y.rb', 772)
3597 def _reduce_225(val, _values, result)
3598 result << val[2]
3599 result
3600 end
3601.,.,
3602
3603module_eval(<<'.,.,', 'bnf.y.rb', 776)
3604 def _reduce_226(val, _values, result)
3605 result = [ :NORMAL_ALLOC, val[0], nil, val[2], val[4], val[6] ]
3606 result
3607 end
3608.,.,
3609
3610module_eval(<<'.,.,', 'bnf.y.rb', 778)
3611 def _reduce_227(val, _values, result)
3612 result = [ :NORMAL_ALLOC, val[0], val[2], val[5], val[7], val[9] ]
3613 result
3614 end
3615.,.,
3616
3617module_eval(<<'.,.,', 'bnf.y.rb', 787)
3618 def _reduce_228(val, _values, result)
3619 result = [val[0]]
3620 result
3621 end
3622.,.,
3623
3624module_eval(<<'.,.,', 'bnf.y.rb', 789)
3625 def _reduce_229(val, _values, result)
3626 result << val[2]
3627 result
3628 end
3629.,.,
3630
3631module_eval(<<'.,.,', 'bnf.y.rb', 793)
3632 def _reduce_230(val, _values, result)
3633 result = [ val[0].val, nil, val[3] ]
3634 result
3635 end
3636.,.,
3637
3638module_eval(<<'.,.,', 'bnf.y.rb', 795)
3639 def _reduce_231(val, _values, result)
3640 result = [ val[0].val, val[2].val, val[5] ]
3641 result
3642 end
3643.,.,
3644
3645module_eval(<<'.,.,', 'bnf.y.rb', 799)
3646 def _reduce_232(val, _values, result)
3647 result = [val[0].val]
3648 result
3649 end
3650.,.,
3651
3652module_eval(<<'.,.,', 'bnf.y.rb', 801)
3653 def _reduce_233(val, _values, result)
3654 result << val[2].val
3655 result
3656 end
3657.,.,
3658
3659module_eval(<<'.,.,', 'bnf.y.rb', 806)
3660 def _reduce_234(val, _values, result)
3661 val[0].each { |decl|
3662 decl.set_kind( :CONSTANT )
3663 Namespace.new_const_decl( decl )
3664 decl.check
3665 }
3666
3667 result
3668 end
3669.,.,
3670
3671module_eval(<<'.,.,', 'bnf.y.rb', 816)
3672 def _reduce_235(val, _values, result)
3673 @@import_C = true
3674 Import_C.new( val[2] )
3675 @@import_C = false
3676
3677 result
3678 end
3679.,.,
3680
3681module_eval(<<'.,.,', 'bnf.y.rb', 822)
3682 def _reduce_236(val, _values, result)
3683 @@import_C = true
3684 Import_C.new( val[2], val[4] )
3685 @@import_C = false
3686
3687 result
3688 end
3689.,.,
3690
3691module_eval(<<'.,.,', 'bnf.y.rb', 829)
3692 def _reduce_237(val, _values, result)
3693 Import.new( val[2] )
3694 result
3695 end
3696.,.,
3697
3698module_eval(<<'.,.,', 'bnf.y.rb', 831)
3699 def _reduce_238(val, _values, result)
3700 Import.new( val[2], true )
3701 result
3702 end
3703.,.,
3704
3705module_eval(<<'.,.,', 'bnf.y.rb', 836)
3706 def _reduce_239(val, _values, result)
3707 Generate.new( val[2].val, val[4], val[6] )
3708 result
3709 end
3710.,.,
3711
3712module_eval(<<'.,.,', 'bnf.y.rb', 841)
3713 def _reduce_240(val, _values, result)
3714 val[2].each{ |i| # i:Decl
3715 i.set_kind( :TYPEDEF )
3716 }
3717 Typedef.new_decl_list( val[1], val[2] )
3718 val[2].each{ |i| # i:Decl
3719 i.check
3720 }
3721
3722 result
3723 end
3724.,.,
3725
3726module_eval(<<'.,.,', 'bnf.y.rb', 851)
3727 def _reduce_241(val, _values, result)
3728 val[5].each{ |i| # i:Decl
3729 i.set_kind( :TYPEDEF )
3730 }
3731 Typedef.new_decl_list( val[4], val[5] )
3732 val[5].each{ |i| # i:Decl
3733 i.check
3734 }
3735
3736 result
3737 end
3738.,.,
3739
3740# reduce 242 omitted
3741
3742# reduce 243 omitted
3743
3744module_eval(<<'.,.,', 'bnf.y.rb', 868)
3745 def _reduce_244(val, _values, result)
3746 result = [ val[0] ]
3747 result
3748 end
3749.,.,
3750
3751module_eval(<<'.,.,', 'bnf.y.rb', 870)
3752 def _reduce_245(val, _values, result)
3753 result << val[2]
3754 result
3755 end
3756.,.,
3757
3758module_eval(<<'.,.,', 'bnf.y.rb', 874)
3759 def _reduce_246(val, _values, result)
3760 val[1].end_of_parse
3761 result
3762 end
3763.,.,
3764
3765module_eval(<<'.,.,', 'bnf.y.rb', 878)
3766 def _reduce_247(val, _values, result)
3767 result = Namespace.new(val[0].val)
3768 result
3769 end
3770.,.,
3771
3772# reduce 248 omitted
3773
3774# reduce 249 omitted
3775
3776module_eval(<<'.,.,', 'bnf.y.rb', 886)
3777 def _reduce_250(val, _values, result)
3778 result = NamespacePath.new( val[0].val, false )
3779 result
3780 end
3781.,.,
3782
3783module_eval(<<'.,.,', 'bnf.y.rb', 887)
3784 def _reduce_251(val, _values, result)
3785 result = NamespacePath.new( val[1].val, true )
3786 result
3787 end
3788.,.,
3789
3790module_eval(<<'.,.,', 'bnf.y.rb', 889)
3791 def _reduce_252(val, _values, result)
3792 result = val[0].append!( val[2].val )
3793 result
3794 end
3795.,.,
3796
3797module_eval(<<'.,.,', 'bnf.y.rb', 894)
3798 def _reduce_253(val, _values, result)
3799 result = val[1].end_of_parse( val[3] )
3800 result
3801 end
3802.,.,
3803
3804module_eval(<<'.,.,', 'bnf.y.rb', 898)
3805 def _reduce_254(val, _values, result)
3806 result = Signature.new( val[0].val )
3807 result
3808 end
3809.,.,
3810
3811module_eval(<<'.,.,', 'bnf.y.rb', 904)
3812 def _reduce_255(val, _values, result)
3813 result = NamedList.new( nil, "function" )
3814 result
3815 end
3816.,.,
3817
3818module_eval(<<'.,.,', 'bnf.y.rb', 906)
3819 def _reduce_256(val, _values, result)
3820 result = val[0].add_item( val[1] )
3821 result
3822 end
3823.,.,
3824
3825module_eval(<<'.,.,', 'bnf.y.rb', 911)
3826 def _reduce_257(val, _values, result)
3827 # val[1]: Decl
3828 if val[1].is_function? then
3829 result = FuncHead.new( val[1], val[0], false )
3830 val[1].set_kind :FUNCHEAD
3831 val[1].check
3832 else
3833 # mikan 関数のé…
3834åˆ—も以下のメッセージになる
3835 Generator.error( "G1010 Not function" )
3836 result = nil
3837 end
3838
3839 result
3840 end
3841.,.,
3842
3843module_eval(<<'.,.,', 'bnf.y.rb', 924)
3844 def _reduce_258(val, _values, result)
3845 if val[4].is_function? then
3846 result = FuncHead.new( val[4], val[3], true )
3847 else
3848 Generator.error( "G1011 Not function" )
3849 result = nil
3850 end
3851
3852 result
3853 end
3854.,.,
3855
3856module_eval(<<'.,.,', 'bnf.y.rb', 937)
3857 def _reduce_259(val, _values, result)
3858 val[1].end_of_parse
3859 result = val[1]
3860
3861 result
3862 end
3863.,.,
3864
3865module_eval(<<'.,.,', 'bnf.y.rb', 943)
3866 def _reduce_260(val, _values, result)
3867 result = Celltype.new(val[0].val)
3868 result
3869 end
3870.,.,
3871
3872# reduce 261 omitted
3873
3874# reduce 262 omitted
3875
3876module_eval(<<'.,.,', 'bnf.y.rb', 952)
3877 def _reduce_263(val, _values, result)
3878 if val[0].kind_of? Port then
3879 Celltype.new_port( val[0] )
3880 end
3881
3882 result
3883 end
3884.,.,
3885
3886module_eval(<<'.,.,', 'bnf.y.rb', 958)
3887 def _reduce_264(val, _values, result)
3888 if val[3].kind_of? Port then
3889 val[3].set_specifier val[1] # 設定順序あり
3890 Celltype.new_port( val[3] )
3891 else
3892 # Port 以外では指定子はエラー
3893 Generator.error( "G1012 $1 : cannot put specifier here" , val[1] )
3894 end
3895
3896 result
3897 end
3898.,.,
3899
3900# reduce 265 omitted
3901
3902# reduce 266 omitted
3903
3904# reduce 267 omitted
3905
3906# reduce 268 omitted
3907
3908# reduce 269 omitted
3909
3910module_eval(<<'.,.,', 'bnf.y.rb', 977)
3911 def _reduce_270(val, _values, result)
3912 result = [ val[0] ]
3913 result
3914 end
3915.,.,
3916
3917module_eval(<<'.,.,', 'bnf.y.rb', 979)
3918 def _reduce_271(val, _values, result)
3919 result << val[2]
3920 result
3921 end
3922.,.,
3923
3924module_eval(<<'.,.,', 'bnf.y.rb', 982)
3925 def _reduce_272(val, _values, result)
3926 result = [ :INLINE ]
3927 result
3928 end
3929.,.,
3930
3931module_eval(<<'.,.,', 'bnf.y.rb', 983)
3932 def _reduce_273(val, _values, result)
3933 result = [ :ALLOCATOR, val[2] ]
3934 result
3935 end
3936.,.,
3937
3938module_eval(<<'.,.,', 'bnf.y.rb', 984)
3939 def _reduce_274(val, _values, result)
3940 result = [ :OPTIONAL ]
3941 result
3942 end
3943.,.,
3944
3945module_eval(<<'.,.,', 'bnf.y.rb', 985)
3946 def _reduce_275(val, _values, result)
3947 result = [ :REF_DESC ]
3948 result
3949 end
3950.,.,
3951
3952module_eval(<<'.,.,', 'bnf.y.rb', 986)
3953 def _reduce_276(val, _values, result)
3954 result = [ :DYNAMIC ]
3955 result
3956 end
3957.,.,
3958
3959module_eval(<<'.,.,', 'bnf.y.rb', 987)
3960 def _reduce_277(val, _values, result)
3961 result = [ :OMIT ]
3962 result
3963 end
3964.,.,
3965
3966module_eval(<<'.,.,', 'bnf.y.rb', 990)
3967 def _reduce_278(val, _values, result)
3968 result = [ val[0] ]
3969 result
3970 end
3971.,.,
3972
3973module_eval(<<'.,.,', 'bnf.y.rb', 991)
3974 def _reduce_279(val, _values, result)
3975 result = [ val[0] ]
3976 result
3977 end
3978.,.,
3979
3980module_eval(<<'.,.,', 'bnf.y.rb', 992)
3981 def _reduce_280(val, _values, result)
3982 result << val[2]
3983 result
3984 end
3985.,.,
3986
3987module_eval(<<'.,.,', 'bnf.y.rb', 993)
3988 def _reduce_281(val, _values, result)
3989 result << val[2]
3990 result
3991 end
3992.,.,
3993
3994module_eval(<<'.,.,', 'bnf.y.rb', 997)
3995 def _reduce_282(val, _values, result)
3996 result = [ :INTERNAL_ALLOC, val[0].val, val[2].val, val[4] ]
3997 result
3998 end
3999.,.,
4000
4001module_eval(<<'.,.,', 'bnf.y.rb', 999)
4002 def _reduce_283(val, _values, result)
4003 result = [ :RELAY_ALLOC, val[0].val, val[2].val, val[4] ]
4004 result
4005 end
4006.,.,
4007
4008module_eval(<<'.,.,', 'bnf.y.rb', 1005)
4009 def _reduce_284(val, _values, result)
4010 result = Port.new( val[2].val, val[1], val[0] )
4011 result
4012 end
4013.,.,
4014
4015module_eval(<<'.,.,', 'bnf.y.rb', 1007)
4016 def _reduce_285(val, _values, result)
4017 result = Port.new( val[2].val, val[1], val[0], "[]" )
4018 result
4019 end
4020.,.,
4021
4022module_eval(<<'.,.,', 'bnf.y.rb', 1009)
4023 def _reduce_286(val, _values, result)
4024 result = Port.new(val[2].val, val[1], val[0], val[4])
4025 result
4026 end
4027.,.,
4028
4029module_eval(<<'.,.,', 'bnf.y.rb', 1011)
4030 def _reduce_287(val, _values, result)
4031 result = Port.new( val[2].val, val[1], val[0], nil, val[4], val[ 6 ].val )
4032 result
4033 end
4034.,.,
4035
4036module_eval(<<'.,.,', 'bnf.y.rb', 1014)
4037 def _reduce_288(val, _values, result)
4038 result = :CALL
4039 result
4040 end
4041.,.,
4042
4043module_eval(<<'.,.,', 'bnf.y.rb', 1015)
4044 def _reduce_289(val, _values, result)
4045 result = :ENTRY
4046 result
4047 end
4048.,.,
4049
4050module_eval(<<'.,.,', 'bnf.y.rb', 1019)
4051 def _reduce_290(val, _values, result)
4052 result = val[0]
4053 result
4054 end
4055.,.,
4056
4057# reduce 291 omitted
4058
4059# reduce 292 omitted
4060
4061module_eval(<<'.,.,', 'bnf.y.rb', 1031)
4062 def _reduce_293(val, _values, result)
4063 result = nil
4064 result
4065 end
4066.,.,
4067
4068module_eval(<<'.,.,', 'bnf.y.rb', 1035)
4069 def _reduce_294(val, _values, result)
4070 Celltype.new_attribute( val[0] )
4071 result
4072 end
4073.,.,
4074
4075module_eval(<<'.,.,', 'bnf.y.rb', 1037)
4076 def _reduce_295(val, _values, result)
4077 Celltype.new_attribute( val[1] )
4078 result
4079 end
4080.,.,
4081
4082module_eval(<<'.,.,', 'bnf.y.rb', 1043)
4083 def _reduce_296(val, _values, result)
4084 val[0].each{ |i| # i:Decl
4085 i.set_kind( :ATTRIBUTE )
4086 i.check
4087 }
4088 result = val[0]
4089
4090 result
4091 end
4092.,.,
4093
4094module_eval(<<'.,.,', 'bnf.y.rb', 1051)
4095 def _reduce_297(val, _values, result)
4096 val[3].each{ |i| # i:Decl
4097 i.set_kind( :ATTRIBUTE ) # 設定順序あり
4098 i.set_specifier_list( [val[1]] )
4099 i.check
4100 }
4101 result = val[3]
4102
4103 result
4104 end
4105.,.,
4106
4107module_eval(<<'.,.,', 'bnf.y.rb', 1060)
4108 def _reduce_298(val, _values, result)
4109 result = [:OMIT]
4110 result
4111 end
4112.,.,
4113
4114module_eval(<<'.,.,', 'bnf.y.rb', 1061)
4115 def _reduce_299(val, _values, result)
4116 result = [:SIZE_IS,val[2]]
4117 result
4118 end
4119.,.,
4120
4121module_eval(<<'.,.,', 'bnf.y.rb', 1062)
4122 def _reduce_300(val, _values, result)
4123 result = [:CHOICE,val[3]]
4124 result
4125 end
4126.,.,
4127
4128module_eval(<<'.,.,', 'bnf.y.rb', 1065)
4129 def _reduce_301(val, _values, result)
4130 result << val[2]
4131 result
4132 end
4133.,.,
4134
4135module_eval(<<'.,.,', 'bnf.y.rb', 1066)
4136 def _reduce_302(val, _values, result)
4137 result = [ val[0] ]
4138 result
4139 end
4140.,.,
4141
4142# reduce 303 omitted
4143
4144module_eval(<<'.,.,', 'bnf.y.rb', 1074)
4145 def _reduce_304(val, _values, result)
4146 result = nil
4147 result
4148 end
4149.,.,
4150
4151module_eval(<<'.,.,', 'bnf.y.rb', 1078)
4152 def _reduce_305(val, _values, result)
4153 Celltype.new_var( val[0] )
4154 result
4155 end
4156.,.,
4157
4158module_eval(<<'.,.,', 'bnf.y.rb', 1080)
4159 def _reduce_306(val, _values, result)
4160 Celltype.new_var( val[1] )
4161 result
4162 end
4163.,.,
4164
4165module_eval(<<'.,.,', 'bnf.y.rb', 1085)
4166 def _reduce_307(val, _values, result)
4167 val[0].each{ |i| # i:Decl
4168 i.set_kind( :VAR )
4169 i.check
4170 }
4171
4172 result
4173 end
4174.,.,
4175
4176module_eval(<<'.,.,', 'bnf.y.rb', 1092)
4177 def _reduce_308(val, _values, result)
4178 val[3].each{ |i| # i:Decl
4179 i.set_kind( :VAR ) # 設定順序あり
4180 i.set_specifier_list( [val[1]] )
4181 i.check
4182 }
4183 result = val[3]
4184
4185 result
4186 end
4187.,.,
4188
4189module_eval(<<'.,.,', 'bnf.y.rb', 1101)
4190 def _reduce_309(val, _values, result)
4191 result = [:SIZE_IS,val[2]]
4192 result
4193 end
4194.,.,
4195
4196module_eval(<<'.,.,', 'bnf.y.rb', 1107)
4197 def _reduce_310(val, _values, result)
4198 Celltype.new_require( val[1], val[3] )
4199
4200 result
4201 end
4202.,.,
4203
4204module_eval(<<'.,.,', 'bnf.y.rb', 1111)
4205 def _reduce_311(val, _values, result)
4206 Celltype.new_require( val[3], val[5], val[1].val )
4207
4208 result
4209 end
4210.,.,
4211
4212# reduce 312 omitted
4213
4214module_eval(<<'.,.,', 'bnf.y.rb', 1119)
4215 def _reduce_313(val, _values, result)
4216 Factory.set_f_celltype( false )
4217 result
4218 end
4219.,.,
4220
4221module_eval(<<'.,.,', 'bnf.y.rb', 1120)
4222 def _reduce_314(val, _values, result)
4223 Factory.set_f_celltype( true )
4224 result
4225 end
4226.,.,
4227
4228# reduce 315 omitted
4229
4230# reduce 316 omitted
4231
4232module_eval(<<'.,.,', 'bnf.y.rb', 1128)
4233 def _reduce_317(val, _values, result)
4234 Factory.new( val[0].val, val[2], val[4], nil )
4235 result
4236 end
4237.,.,
4238
4239module_eval(<<'.,.,', 'bnf.y.rb', 1130)
4240 def _reduce_318(val, _values, result)
4241 Factory.new( val[0].val, val[2], val[4], val[6] )
4242 result
4243 end
4244.,.,
4245
4246# reduce 319 omitted
4247
4248module_eval(<<'.,.,', 'bnf.y.rb', 1137)
4249 def _reduce_320(val, _values, result)
4250 result = [ [ :IDENTIFIER, val[0].val ] ]
4251 result
4252 end
4253.,.,
4254
4255module_eval(<<'.,.,', 'bnf.y.rb', 1139)
4256 def _reduce_321(val, _values, result)
4257 result << [ :IDENTIFIER, val[2].val ]
4258 result
4259 end
4260.,.,
4261
4262module_eval(<<'.,.,', 'bnf.y.rb', 1141)
4263 def _reduce_322(val, _values, result)
4264 result = [ [ :STRING_LITERAL, val[0].val ] ]
4265 result
4266 end
4267.,.,
4268
4269module_eval(<<'.,.,', 'bnf.y.rb', 1143)
4270 def _reduce_323(val, _values, result)
4271 result << [ :STRING_LITERAL, val[2].val ]
4272 result
4273 end
4274.,.,
4275
4276module_eval(<<'.,.,', 'bnf.y.rb', 1148)
4277 def _reduce_324(val, _values, result)
4278 Cell.new_def
4279 result
4280 end
4281.,.,
4282
4283module_eval(<<'.,.,', 'bnf.y.rb', 1150)
4284 def _reduce_325(val, _values, result)
4285 result = Cell.end_of_parse true
4286 result
4287 end
4288.,.,
4289
4290module_eval(<<'.,.,', 'bnf.y.rb', 1152)
4291 def _reduce_326(val, _values, result)
4292 result = Cell.end_of_parse false
4293 result
4294 end
4295.,.,
4296
4297module_eval(<<'.,.,', 'bnf.y.rb', 1156)
4298 def _reduce_327(val, _values, result)
4299 result = Cell.new(val[0])
4300 result
4301 end
4302.,.,
4303
4304module_eval(<<'.,.,', 'bnf.y.rb', 1160)
4305 def _reduce_328(val, _values, result)
4306 result = Cell.set_name(val[0].val)
4307 result
4308 end
4309.,.,
4310
4311# reduce 329 omitted
4312
4313# reduce 330 omitted
4314
4315# reduce 331 omitted
4316
4317module_eval(<<'.,.,', 'bnf.y.rb', 1169)
4318 def _reduce_332(val, _values, result)
4319 val[3].set_specifier_list( val[1] )
4320 result
4321 end
4322.,.,
4323
4324module_eval(<<'.,.,', 'bnf.y.rb', 1171)
4325 def _reduce_333(val, _values, result)
4326 val[0].set_specifier_list( [] )
4327 result
4328 end
4329.,.,
4330
4331module_eval(<<'.,.,', 'bnf.y.rb', 1175)
4332 def _reduce_334(val, _values, result)
4333 result << val[2]
4334 result
4335 end
4336.,.,
4337
4338module_eval(<<'.,.,', 'bnf.y.rb', 1177)
4339 def _reduce_335(val, _values, result)
4340 result = [val[0]]
4341 result
4342 end
4343.,.,
4344
4345module_eval(<<'.,.,', 'bnf.y.rb', 1181)
4346 def _reduce_336(val, _values, result)
4347 result = [ :THROUGH, val[2], val[4] ]
4348 result
4349 end
4350.,.,
4351
4352module_eval(<<'.,.,', 'bnf.y.rb', 1184)
4353 def _reduce_337(val, _values, result)
4354 result = val[0]
4355 result
4356 end
4357.,.,
4358
4359# reduce 338 omitted
4360
4361module_eval(<<'.,.,', 'bnf.y.rb', 1198)
4362 def _reduce_339(val, _values, result)
4363 result = Join.new( val[0].val, -1, val[4] )
4364 Cell.new_join( result, true )
4365
4366 result
4367 end
4368.,.,
4369
4370module_eval(<<'.,.,', 'bnf.y.rb', 1203)
4371 def _reduce_340(val, _values, result)
4372 result = Join.new( val[0].val, val[2], val[5] )
4373 Cell.new_join( result, true )
4374
4375 result
4376 end
4377.,.,
4378
4379module_eval(<<'.,.,', 'bnf.y.rb', 1208)
4380 def _reduce_341(val, _values, result)
4381 result = Join.new( val[0].val, nil, val[2] )
4382 Cell.new_join( result, true )
4383
4384 result
4385 end
4386.,.,
4387
4388module_eval(<<'.,.,', 'bnf.y.rb', 1213)
4389 def _reduce_342(val, _values, result)
4390 result = Join.new( val[0].val, nil, [ :COMPOSITE, val[4] ] )
4391 Cell.new_join( result, true )
4392
4393 result
4394 end
4395.,.,
4396
4397# reduce 343 omitted
4398
4399module_eval(<<'.,.,', 'bnf.y.rb', 1224)
4400 def _reduce_344(val, _values, result)
4401 rj = ReverseJoin.new( val[0].val, nil, val[2], val[4].val )
4402 Cell.new_reverse_join( rj )
4403
4404 result
4405 end
4406.,.,
4407
4408module_eval(<<'.,.,', 'bnf.y.rb', 1230)
4409 def _reduce_345(val, _values, result)
4410 rj = ReverseJoin.new( val[0].val, nil, val[2], val[4].val, val[6] )
4411 Cell.new_reverse_join( rj )
4412
4413 result
4414 end
4415.,.,
4416
4417module_eval(<<'.,.,', 'bnf.y.rb', 1236)
4418 def _reduce_346(val, _values, result)
4419 rj = ReverseJoin.new( val[0].val, val[2], val[5], val[7].val )
4420 Cell.new_reverse_join( rj )
4421
4422 result
4423 end
4424.,.,
4425
4426module_eval(<<'.,.,', 'bnf.y.rb', 1242)
4427 def _reduce_347(val, _values, result)
4428 rj = ReverseJoin.new( val[0].val, val[2], val[5], val[7].val, val[9] )
4429 Cell.new_reverse_join( rj )
4430
4431 result
4432 end
4433.,.,
4434
4435# reduce 348 omitted
4436
4437module_eval(<<'.,.,', 'bnf.y.rb', 1254)
4438 def _reduce_349(val, _values, result)
4439 CompositeCelltype.end_of_parse
4440 result = val[1]
4441
4442 result
4443 end
4444.,.,
4445
4446module_eval(<<'.,.,', 'bnf.y.rb', 1260)
4447 def _reduce_350(val, _values, result)
4448 result = CompositeCelltype.new(val[0].val)
4449 result
4450 end
4451.,.,
4452
4453# reduce 351 omitted
4454
4455# reduce 352 omitted
4456
4457module_eval(<<'.,.,', 'bnf.y.rb', 1269)
4458 def _reduce_353(val, _values, result)
4459 if val[0].kind_of?( Port ) then
4460 CompositeCelltype.new_port( val[0] ) # 遅
4461延して登録
4462 end
4463
4464 result
4465 end
4466.,.,
4467
4468module_eval(<<'.,.,', 'bnf.y.rb', 1275)
4469 def _reduce_354(val, _values, result)
4470 if val[3].kind_of?( Port ) then
4471 # port 以外 val[3] に有効な値がå…
4472¥ã£ã¦ã„ないので、以下のメソッドを適用できない
4473 # 現状 port, cell 以外は指定子を受け付けない
4474 # (しかし将来他の文も指定子を受け付ける可能性があるので、この位置に記述する)
4475 val[3].set_specifier( Generator.get_statement_specifier )
4476 CompositeCelltype.new_port( val[3] ) # 遅
4477延して登録 (set_specifier 後)
4478 elsif val[3].kind_of?( Cell ) then
4479 # Cell.end_of_parse にて設定
4480 else
4481 Generator.get_statement_specifier # クリア
4482 Generator.error( "G1013 unexpected specifier" )
4483 end
4484
4485 result
4486 end
4487.,.,
4488
4489# reduce 355 omitted
4490
4491# reduce 356 omitted
4492
4493# reduce 357 omitted
4494
4495# reduce 358 omitted
4496
4497module_eval(<<'.,.,', 'bnf.y.rb', 1299)
4498 def _reduce_359(val, _values, result)
4499 Generator.add_statement_specifier val[0]
4500 result = [ val[0] ]
4501
4502 result
4503 end
4504.,.,
4505
4506module_eval(<<'.,.,', 'bnf.y.rb', 1304)
4507 def _reduce_360(val, _values, result)
4508 result = [ :ALLOCATOR, val[2] ]
4509 result
4510 end
4511.,.,
4512
4513module_eval(<<'.,.,', 'bnf.y.rb', 1305)
4514 def _reduce_361(val, _values, result)
4515 result = [ :OMIT ]
4516 result
4517 end
4518.,.,
4519
4520module_eval(<<'.,.,', 'bnf.y.rb', 1306)
4521 def _reduce_362(val, _values, result)
4522 result = [ :OPTIONAL ]
4523 result
4524 end
4525.,.,
4526
4527module_eval(<<'.,.,', 'bnf.y.rb', 1307)
4528 def _reduce_363(val, _values, result)
4529 result = [ :REF_DESC ]
4530 result
4531 end
4532.,.,
4533
4534module_eval(<<'.,.,', 'bnf.y.rb', 1308)
4535 def _reduce_364(val, _values, result)
4536 result = [ :DYNAMIC ]
4537 result
4538 end
4539.,.,
4540
4541module_eval(<<'.,.,', 'bnf.y.rb', 1313)
4542 def _reduce_365(val, _values, result)
4543 # CompositeCelltype.new_port( val[0] )
4544 result = val[0]
4545
4546 result
4547 end
4548.,.,
4549
4550module_eval(<<'.,.,', 'bnf.y.rb', 1320)
4551 def _reduce_366(val, _values, result)
4552 result = nil
4553 result
4554 end
4555.,.,
4556
4557module_eval(<<'.,.,', 'bnf.y.rb', 1324)
4558 def _reduce_367(val, _values, result)
4559 CompositeCelltype.new_attribute( val[0] )
4560 result
4561 end
4562.,.,
4563
4564module_eval(<<'.,.,', 'bnf.y.rb', 1326)
4565 def _reduce_368(val, _values, result)
4566 CompositeCelltype.new_attribute( val[1] )
4567 result
4568 end
4569.,.,
4570
4571module_eval(<<'.,.,', 'bnf.y.rb', 1331)
4572 def _reduce_369(val, _values, result)
4573 Cell.new_def
4574 result
4575 end
4576.,.,
4577
4578module_eval(<<'.,.,', 'bnf.y.rb', 1333)
4579 def _reduce_370(val, _values, result)
4580 result = Cell.end_of_parse true
4581 result
4582 end
4583.,.,
4584
4585module_eval(<<'.,.,', 'bnf.y.rb', 1335)
4586 def _reduce_371(val, _values, result)
4587 result = Cell.end_of_parse false
4588 result
4589 end
4590.,.,
4591
4592module_eval(<<'.,.,', 'bnf.y.rb', 1340)
4593 def _reduce_372(val, _values, result)
4594 Cell.new(val[0],true)
4595 result
4596 end
4597.,.,
4598
4599module_eval(<<'.,.,', 'bnf.y.rb', 1344)
4600 def _reduce_373(val, _values, result)
4601 Cell.set_name(val[0].val)
4602 result
4603 end
4604.,.,
4605
4606# reduce 374 omitted
4607
4608# reduce 375 omitted
4609
4610# reduce 376 omitted
4611
4612module_eval(<<'.,.,', 'bnf.y.rb', 1354)
4613 def _reduce_377(val, _values, result)
4614 Cell.external_join( val[0].val, val[4].val, true )
4615 result
4616 end
4617.,.,
4618
4619module_eval(<<'.,.,', 'bnf.y.rb', 1356)
4620 def _reduce_378(val, _values, result)
4621 Cell.external_join( val[0].val, val[2].val, false )
4622 result
4623 end
4624.,.,
4625
4626module_eval(<<'.,.,', 'bnf.y.rb', 1363)
4627 def _reduce_379(val, _values, result)
4628 CompositeCelltype.new_join( val[0].val,
4629 val[2].val, val[4].val, :ENTRY )
4630
4631 result
4632 end
4633.,.,
4634
4635module_eval(<<'.,.,', 'bnf.y.rb', 1368)
4636 def _reduce_380(val, _values, result)
4637 CompositeCelltype.new_join( val[2].val,
4638 val[4].val, val[6].val, :ENTRY )
4639
4640 result
4641 end
4642.,.,
4643
4644# reduce 381 omitted
4645
4646# reduce 382 omitted
4647
4648# reduce 383 omitted
4649
4650module_eval(<<'.,.,', 'bnf.y.rb', 1384)
4651 def _reduce_384(val, _values, result)
4652 Region.end_of_parse
4653 result
4654 end
4655.,.,
4656
4657module_eval(<<'.,.,', 'bnf.y.rb', 1386)
4658 def _reduce_385(val, _values, result)
4659 Region.end_of_parse
4660 result
4661 end
4662.,.,
4663
4664# reduce 386 omitted
4665
4666# reduce 387 omitted
4667
4668module_eval(<<'.,.,', 'bnf.y.rb', 1395)
4669 def _reduce_388(val, _values, result)
4670 Region.new_in_through( val[2].val, val[4].val )
4671 result
4672 end
4673.,.,
4674
4675module_eval(<<'.,.,', 'bnf.y.rb', 1397)
4676 def _reduce_389(val, _values, result)
4677 Region.new_in_through
4678 result
4679 end
4680.,.,
4681
4682module_eval(<<'.,.,', 'bnf.y.rb', 1399)
4683 def _reduce_390(val, _values, result)
4684 Region.new_out_through( val[2].val, val[4].val )
4685 result
4686 end
4687.,.,
4688
4689module_eval(<<'.,.,', 'bnf.y.rb', 1401)
4690 def _reduce_391(val, _values, result)
4691 Region.new_out_through()
4692 result
4693 end
4694.,.,
4695
4696module_eval(<<'.,.,', 'bnf.y.rb', 1403)
4697 def _reduce_392(val, _values, result)
4698 Region.new_to_through( val[2], val[4].val, val[6].val )
4699 result
4700 end
4701.,.,
4702
4703module_eval(<<'.,.,', 'bnf.y.rb', 1405)
4704 def _reduce_393(val, _values, result)
4705 Region.new_to_through( val[2], nil, nil )
4706 result
4707 end
4708.,.,
4709
4710module_eval(<<'.,.,', 'bnf.y.rb', 1407)
4711 def _reduce_394(val, _values, result)
4712 Region.set_type( :NODE )
4713 result
4714 end
4715.,.,
4716
4717module_eval(<<'.,.,', 'bnf.y.rb', 1409)
4718 def _reduce_395(val, _values, result)
4719 Region.set_type( :LINKUNIT )
4720 result
4721 end
4722.,.,
4723
4724module_eval(<<'.,.,', 'bnf.y.rb', 1411)
4725 def _reduce_396(val, _values, result)
4726 Region.set_domain( val[2].val, val[4] )
4727 result
4728 end
4729.,.,
4730
4731module_eval(<<'.,.,', 'bnf.y.rb', 1413)
4732 def _reduce_397(val, _values, result)
4733 Region.set_type( :CLASS, val[2].val )
4734 result
4735 end
4736.,.,
4737
4738module_eval(<<'.,.,', 'bnf.y.rb', 1417)
4739 def _reduce_398(val, _values, result)
4740 result = Region.new( val[0].val )
4741 result
4742 end
4743.,.,
4744
4745# reduce 399 omitted
4746
4747# reduce 400 omitted
4748
4749# reduce 401 omitted
4750
4751# reduce 402 omitted
4752
4753module_eval(<<'.,.,', 'bnf.y.rb', 1428)
4754 def _reduce_403(val, _values, result)
4755 obj = val[3]
4756 if obj.kind_of?( Cell ) then
4757 else
4758 Generator.get_statement_specifier # クリア
4759 Generator.error( "G9999 unexpected specifier" )
4760 end
4761
4762 result
4763 end
4764.,.,
4765
4766module_eval(<<'.,.,', 'bnf.y.rb', 1450)
4767 def _reduce_404(val, _values, result)
4768 result = [ val[0].val ]
4769 result
4770 end
4771.,.,
4772
4773module_eval(<<'.,.,', 'bnf.y.rb', 1455)
4774 def _reduce_405(val, _values, result)
4775 set_in_specifier
4776 result
4777 end
4778.,.,
4779
4780module_eval(<<'.,.,', 'bnf.y.rb', 1457)
4781 def _reduce_406(val, _values, result)
4782 unset_in_specifier
4783 result
4784 end
4785.,.,
4786
4787# reduce 407 omitted
4788
4789# reduce 408 omitted
4790
4791# reduce 409 omitted
4792
4793# reduce 410 omitted
4794
4795module_eval(<<'.,.,', 'bnf.y.rb', 1471)
4796 def _reduce_411(val, _values, result)
4797 TECSGEN::Cell_location.new( val[1], val[3], val[5], val[7], val[9], val[12] )
4798
4799 result
4800 end
4801.,.,
4802
4803module_eval(<<'.,.,', 'bnf.y.rb', 1477)
4804 def _reduce_412(val, _values, result)
4805 result = val[0] << val[1]
4806
4807 result
4808 end
4809.,.,
4810
4811module_eval(<<'.,.,', 'bnf.y.rb', 1480)
4812 def _reduce_413(val, _values, result)
4813 result = []
4814 result
4815 end
4816.,.,
4817
4818module_eval(<<'.,.,', 'bnf.y.rb', 1484)
4819 def _reduce_414(val, _values, result)
4820 result = [ val[0], val[2], val[3] ]
4821 result
4822 end
4823.,.,
4824
4825module_eval(<<'.,.,', 'bnf.y.rb', 1489)
4826 def _reduce_415(val, _values, result)
4827 TECSGEN::Join_location.new( val[2], val[4], val[6], val[8], val[11] )
4828
4829 result
4830 end
4831.,.,
4832
4833module_eval(<<'.,.,', 'bnf.y.rb', 1495)
4834 def _reduce_416(val, _values, result)
4835 result = val[0] << [ val[1], val[3] ]
4836
4837 result
4838 end
4839.,.,
4840
4841module_eval(<<'.,.,', 'bnf.y.rb', 1497)
4842 def _reduce_417(val, _values, result)
4843 result = []
4844 result
4845 end
4846.,.,
4847
4848def _reduce_none(val, _values, result)
4849 val[0]
4850end
4851
4852end # class Generator
4853
4854
4855
4856# ファイル => INCLUDE("header")のé…
4857åˆ—
4858Include = Hash.new {|hash, key| hash[key] = []}
4859
4860
4861class Token
4862
4863 attr_accessor :val, :file, :lineno, :col
4864
4865 def initialize(val, file, lineno, col)
4866 @val = val
4867 @file = file
4868 @lineno = lineno
4869 @col = col
4870
4871 end
4872
4873 def to_s
4874 @val.to_s
4875 end
4876
4877 def to_sym
4878 @val.to_sym
4879 end
4880
4881 def get_name
4882 @val
4883 end
4884
4885 def locale
4886 [@file, @lineno, @col]
4887 end
4888
4889 def eql?(other)
4890 if other.is_a? Symbol
4891 @val == other
4892 elsif other.is_a? Token
4893 @val == other.val
4894 elsif other.is_a? String
4895 @val.to_s == other
4896 else
4897 raise ArgumentError
4898 end
4899 end
4900
4901 alias == eql?
4902
4903 def show_tree( indent )
4904 indent.times { print " " }
4905 print "#{@val}\n"
4906 end
4907
4908end
4909
4910#= TECSIO
4911# Ruby2.0(1.9) 対応に伴い導å…
4912¥ã—たクラス
4913# SJIS 以外では、ASCII-8BIT としてå…
4914¥åŠ›ã™ã‚‹
4915class TECSIO
4916 def self.foreach(file) # ブロック引数 { |line| }
4917 pr = Proc.new # このメソッドのブロック引数を pr に代å…
4918¥
4919 if $b_no_kcode then
4920 msg = "E".encode $Ruby19_File_Encode
4921 if( $Ruby19_File_Encode == "Shift_JIS" )
4922
4923 # Shift JIS は、いったん Windows-31J として読み込ませ、Shift_JIS に変換させる.
4924 # コメント等に含まれる SJIS に不適切な文字コードは '?' または REPLACEMENT CHARACTER に変換される.
4925 # EUC や UTF-8 で記述された CDL が混在していても、Ruby 例外が発生することなく処理を進めることができる.
4926 # 文字コード指定が SJIS であって、文字列リテラルの中に、文字コードがSJIS 以外の非 ASCII が含まれている場合、
4927 # Ruby 1.8 の tecsgen では文字コード指定に影響なく処理されたものが、Ruby 1.9 以降では '?' に置き換わる可能性がある.
4928
4929 mode = "r:Windows-31J"
4930 else
4931 mode = "r:#{$Ruby19_File_Encode}"
4932 end
4933 # mode = "r"
4934 else
4935 msg = "E"
4936 mode = "r"
4937 end
4938
4939 f = File.open( file, mode )
4940 begin
4941 f.each{ |line|
4942 # dbgPrint line
4943 line = str_code_convert( msg, line )
4944 pr.call( line )
4945 }
4946 ensure
4947 f.close
4948 end
4949 end
4950
4951 #=== 文字コードが相違する場合一致させる
4952 # msg と str の文字コードが相違する場合、str を msg の文字コードに変換する
4953 # 変換不可の文字コードは '?' (utf-8 の場合 U+FFFD (REPLACEMENT CHARACTER )) に変換
4954 #
4955 # このメソッドは、エラーメッセージ出力でも使用されていることに注意.
4956 #
4957 #msg_enc::Encode | String
4958 def self.str_code_convert( msg, str )
4959 if $b_no_kcode == false then
4960 return str # Ruby V1.8 まで
4961 end
4962 if msg.encoding != str.encoding then
4963 option = { :invalid => :replace, :undef => :replace } # 例外を発生させず、'?' に変換する(utf-8 は 0xfffd)
4964 # return str.encode( msg.encoding, option )
4965 str = str.encode( "utf-8", option )
4966 return str.encode( msg.encoding, option )
4967 else
4968 return str
4969 end
4970 end
4971end
Note: See TracBrowser for help on using the repository browser.