source: asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb@ 337

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

ASP3版ECNLを追加

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