source: azure_iot_hub/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb@ 388

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

Azure IoT Hub Device C SDK を使ったサンプルの追加

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