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

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

mbed関連を更新
シリアルドライバをmbedのHALを使うよう変更
ファイルディスクリプタの処理を更新

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