source: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb@ 321

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

文字コードを設定

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