dbc 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2397 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by racc 1.4.4
4
+ # from racc grammer file "src/ctype.y".
5
+ #
6
+
7
+ require 'racc/parser'
8
+
9
+
10
+
11
+ require 'dbc/ctokenizer'
12
+ require 'dbc/parseerrorhandler'
13
+
14
+ class Module
15
+ private
16
+ def setter(*symbols)
17
+ symbols.each do |s|
18
+ s = s.to_s
19
+ #raise "invalid attribute #{s}" unless s =~ /\A[A-Za-z_]\w*\Z/
20
+ module_eval(%Q{
21
+ def #{s}?
22
+ @#{s}
23
+ end
24
+ def set_#{s}
25
+ raise ParseError, "#{s} specified more than once" if @#{s}
26
+ @#{s} = true
27
+ self
28
+ end
29
+ })
30
+ end
31
+ nil
32
+ end # setter
33
+ end # Module
34
+
35
+ module CType
36
+ class EvaluationError < StandardError; end
37
+
38
+ def CType.evaluation_error(part)
39
+ raise EvaluationError, "cannot evaluate '#{part}'"
40
+ end
41
+
42
+ @@typedefs = {}
43
+ def CType.parse(source)
44
+ tokens = CTokenizer::SkipMacros.new(source)
45
+ ctype_parser = Parser.new()
46
+
47
+ until tokens.empty?
48
+ results = ctype_parser.parse(tokens)
49
+ until tokens.scope == 0 or tokens.empty?
50
+ # get back to group zero
51
+ tokens.shift
52
+ end
53
+ if results
54
+ results = [results] unless results.class == Array
55
+ results.each do |t|
56
+ @@typedefs[t.to_s] = t if t.typedef?
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ def CType.[](val)
63
+ @@typedefs[val]
64
+ end
65
+
66
+ def CType.include?(val)
67
+ @@typedefs.include?(val)
68
+ end
69
+
70
+ def CType.[]=(val, new_val)
71
+ raise "expecting a String got #{val.class}" if val.class != String
72
+ raise "type #{val} already defined" if @@typedefs.include?(val)
73
+ @@typedefs[val] = new_val
74
+ end
75
+
76
+ class StructUnion
77
+ # want only one instance of each unique Struct or Union
78
+ def StructUnion.get(type, name, members = nil)
79
+ case type
80
+ when 'struct'
81
+ if members
82
+ Struct[name].add(members)
83
+ else
84
+ Struct[name]
85
+ end
86
+ when 'union'
87
+ if members
88
+ Union[name].add(members)
89
+ else
90
+ Union[name]
91
+ end
92
+ end
93
+ end
94
+ def initialize(name = nil)
95
+ @name = name
96
+ @members = nil
97
+ end
98
+ def add(items)
99
+ #warn "structure or union #{@name} already defined" if @members
100
+ @members = items.flatten
101
+ self
102
+ end
103
+ def lookup(identifier)
104
+ @members.find do |m|
105
+ identifier == m.identifier
106
+ end
107
+ end
108
+
109
+ def get_members
110
+ @members.dup
111
+ end
112
+
113
+ def evaluate(identifier)
114
+ return self if identifier.empty?
115
+ CType.evaluation_error(identifier) unless identifier =~ /\A\.([A-Za-z_]\w*)/
116
+ post_match = $'
117
+ p_type = lookup($1)
118
+ if p_type
119
+ p_type.evaluate(post_match)
120
+ else
121
+ CType.evaluation_error(identifier)
122
+ end
123
+ end
124
+
125
+ def keyword
126
+ if self.class == Struct
127
+ 'struct'
128
+ elsif self.class == Union
129
+ 'union'
130
+ end
131
+ end
132
+ def to_s
133
+ to_init_s()
134
+ end
135
+ def to_init_s(ident = nil)
136
+ str = ''
137
+ str << keyword
138
+ str << ' ' << @name if @name
139
+ str << ' ' << ident if ident
140
+ str # make sure we don't return nil
141
+ end
142
+
143
+ # to_def is pretty much depreciated - might be useful for debugging in the future
144
+ # to_def methods would have to be added to all classes in this module though.
145
+ def to_def(indent='')
146
+ str = to_s
147
+ str << " {\n"
148
+ @members.each do |m|
149
+ str << indent << "\t" << m.to_def(indent + "\t") << ";\n"
150
+ end
151
+ str << indent << '}'
152
+ end
153
+ end # StructUnion
154
+
155
+ class Struct < StructUnion
156
+ @@structs = {}
157
+ # factory method
158
+ def Struct.[](val = nil)
159
+ # for unnamed structures
160
+ return Struct.send(:new) unless val
161
+
162
+ result = @@structs[val]
163
+ unless result
164
+ result = @@structs[val] = Struct.send(:new, val)
165
+ end
166
+ result
167
+ end
168
+
169
+ class << self
170
+ protected :new
171
+ end
172
+ def initialize(name = nil)
173
+ super
174
+ end
175
+ end # Struct
176
+
177
+ class Union < StructUnion
178
+ @@unions = {}
179
+ # factory method
180
+ def Union.[](val = nil)
181
+ # for unnamed structures
182
+ return Union.send(:new) unless val
183
+
184
+ result = @@unions[val]
185
+ unless result
186
+ result = @@unions[val] = Union.send(:new, val)
187
+ end
188
+ result
189
+ end
190
+ class << self
191
+ protected :new
192
+ end
193
+ def initialize(name = nil)
194
+ super
195
+ end
196
+ end # Union
197
+
198
+ class Enum
199
+ @@enums = {}
200
+ def Enum.[](val = nil)
201
+ # for unnamed enumerations
202
+ return Enum.send(:new, nil) unless val
203
+
204
+ result = @@enums[val]
205
+ unless result
206
+ result = @@enums[val] = Enum.send(:new, val)
207
+ end
208
+ result
209
+ end
210
+
211
+ class << self
212
+ protected :new
213
+ end
214
+
215
+ def initialize(name)
216
+ @name = name
217
+ @members = nil
218
+ end
219
+ def add(items)
220
+ warn "enum #{@name} already defined" if @members
221
+ @members = items
222
+ self
223
+ end
224
+ def evaluate
225
+ CType.evaluation_error(identifier) unless identifier.empty?
226
+ self
227
+ end
228
+ def to_s
229
+ to_init_s()
230
+ end
231
+ def to_init_s(ident=nil)
232
+ str = 'enum'
233
+ str << ' ' << @name if @name
234
+ str << ' ' << ident if ident
235
+ str
236
+ end
237
+ def to_def(indent='')
238
+ str = to_s
239
+ str << " {\n"
240
+ @members.each do |name, num|
241
+ str << indent << "\t" << name
242
+ str << " = #{num.to_s}" if num
243
+ str << ",\n"
244
+ end
245
+ str[-2, 2] = "\n" # get rid of trailing comma
246
+ str << indent << "}"
247
+ end
248
+ end # Enum
249
+
250
+ class Primitive
251
+ def initialize(val)
252
+ @primitives = [val]
253
+ end
254
+
255
+ def insert(val)
256
+ @primitives.insert(0, val)
257
+ self
258
+ end
259
+ def evaluate(identifier)
260
+ CType.evaluation_error(identifier) unless identifier.empty?
261
+ self
262
+ end
263
+ def to_s
264
+ to_init_s()
265
+ end
266
+ def to_init_s(ident=nil)
267
+ str = @primitives.join(' ')
268
+ str << ' ' << ident if ident
269
+ str
270
+ end
271
+ end # Primitive
272
+
273
+ module Qualifiable
274
+ setter :const, :volatile
275
+ def add_qualifier(q)
276
+ case q
277
+ when 'const'
278
+ set_const
279
+ when 'volatile'
280
+ set_volatile
281
+ else
282
+ raise "invalid type qualifier #{q}" # shouldn't get here
283
+ end
284
+ end
285
+ end
286
+
287
+ module BaseReference
288
+ attr_reader :base_type
289
+ def base_type=(val)
290
+ if @base_type
291
+ @base_type.base_type = val
292
+ else
293
+ @base_type = val
294
+ end
295
+ end
296
+ end
297
+
298
+ class Base
299
+ include Qualifiable
300
+
301
+ def initialize(type)
302
+ @primitive = type
303
+ end
304
+
305
+ attr_reader :primitive
306
+
307
+ def to_s
308
+ to_init_s
309
+ end
310
+
311
+ def evaluate(identifier)
312
+ self.primitive.evaluate(identifier)
313
+ end
314
+
315
+ def to_init_s(ident=nil)
316
+ str = ''
317
+ str << 'const ' if @const
318
+ str << 'volatile ' if @volatile
319
+ str << @primitive.to_init_s(ident)
320
+ end
321
+ end # Base
322
+
323
+ class Pointer
324
+ include Qualifiable
325
+ include BaseReference
326
+
327
+ def initialize(type_qualifiers=[])
328
+ @const = false
329
+ @volatile = false
330
+ @base_type = nil
331
+ type_qualifiers.each do |q|
332
+ add_qualifier(q)
333
+ end # do
334
+ end
335
+
336
+ def evaluate(identifier)
337
+ return self if identifier.empty?
338
+ if identifier =~ /\A->/
339
+ self.base_type.evaluate('.' + $')
340
+ elsif identifier =~ /\A\[.+?\]/
341
+ self.base_type.evaluate($')
342
+ else
343
+ CType.evaluation_error(identifier)
344
+ end
345
+ end
346
+
347
+ def to_s
348
+ to_init_s()
349
+ end
350
+ def to_init_s(ident=nil)
351
+ str = '*'
352
+ str << ' const' if @const
353
+ str << ' volatile' if @volatile
354
+ str << ' ' << ident if ident
355
+ if @base_type.class == Type and (@base_type.function? or @base_type.array?)
356
+ # then parens are required
357
+ str[0,0] = '('
358
+ str << ')'
359
+ end
360
+ if @base_type
361
+ @base_type.to_init_s(str)
362
+ else
363
+ str
364
+ end
365
+ end
366
+ end # Pointer
367
+
368
+ class Type
369
+ setter :inline, :typedef, :extern, :static, :auto, :register
370
+ include BaseReference
371
+
372
+ def initialize(identifier=nil)
373
+ @identifier = identifier
374
+ @dimensions = []
375
+ @parameters = nil
376
+ @base_type = nil
377
+ @size = nil
378
+ end
379
+
380
+ def dup
381
+ new_type = Type.new(self.identifier)
382
+ self.dimensions.each do |d|
383
+ new_type.dimensions << d
384
+ end
385
+ new_type.parameters = self.parameters
386
+ new_type.base_type = self.base_type
387
+ new_type.size = self.size
388
+ new_type
389
+ end
390
+
391
+ def abstract?
392
+ @identifier == nil
393
+ end
394
+ attr_reader :identifier, :dimensions, :parameters, :size
395
+
396
+ def parameters=(params)
397
+ raise ParseError, "invalid type" if @parameters
398
+ params = List.new(true) unless params
399
+ @parameters = params
400
+ end
401
+
402
+ def add_parameter_declarations(declarations)
403
+ # @parameters should be an identifier list
404
+ if @parameters.length != declarations.length
405
+ raise ParseError, "invalid function definition"
406
+ end
407
+ declarations.each do |d|
408
+ idx = @parameters.index(d.identifier)
409
+ unless idx
410
+ raise ParseError, "identifier not found in parameter list: #{d.identifier}"
411
+ end
412
+ @parameters[idx] = d
413
+ end
414
+ self
415
+ end
416
+
417
+ # array of specifiers, last element is type specifier
418
+ def add_declaration_specifiers(val)
419
+ # make sure we don't modify specifiers
420
+ val = val.dup
421
+ self.base_type = val.pop
422
+ val.each do |s|
423
+ self.add_specifier(s)
424
+ end
425
+ self
426
+ end
427
+
428
+ # override this
429
+ def set_typedef
430
+ raise "typedef must have a name" if abstract?
431
+ @typedef = true
432
+ self
433
+ end
434
+
435
+ def add_specifier(s)
436
+ case s
437
+ when 'inline'
438
+ set_inline
439
+ when 'typedef'
440
+ set_typedef
441
+ when 'extern'
442
+ set_extern
443
+ when 'static'
444
+ set_static
445
+ when 'auto'
446
+ set_auto
447
+ when 'register'
448
+ set_register
449
+ else
450
+ raise "unexpected storage class specifier #{s}"
451
+ end
452
+ end
453
+
454
+ def size=(val)
455
+ raise "bit field size already set" if @size
456
+ @size = val
457
+ end
458
+
459
+ def bit_field?
460
+ @size != nil
461
+ end
462
+
463
+ def evaluate(identifier)
464
+ if identifier.empty?
465
+ result = self
466
+ elsif identifier =~ /\A[A-Za-z_]\w*/
467
+ post_match = $'
468
+ p_type = @parameters.lookup($&) if function?
469
+ CType.evaluation_error(identifier) unless p_type
470
+ p_type.evaluate(post_match)
471
+ elsif identifier =~ /\A(?:\s*\[[^\]]*\])+/
472
+ if self.dimensions.empty?
473
+ # then let the base type evaluate this
474
+ @base_type.evaluate(identifier)
475
+ else
476
+ post_match = $'
477
+
478
+ indicies = $&.scan(/\[.+?\]/)
479
+ ret_type = self.dup
480
+
481
+ min = indicies.length
482
+ if min > self.dimensions.length
483
+ min = self.dimensions.length
484
+ end
485
+ # remove lower dimensions
486
+ min.times do
487
+ ret_type.dimensions.shift
488
+ indicies.shift
489
+ end
490
+ ret_type.evaluate(indicies.join << post_match)
491
+ end
492
+ else
493
+ @base_type.evaluate(identifier)
494
+ end
495
+ end
496
+
497
+ def function?
498
+ @parameters != nil
499
+ end
500
+
501
+ def array?
502
+ @dimensions.length > 0
503
+ end
504
+
505
+ def prototype?
506
+ @parameters.prototype?
507
+ end
508
+
509
+ def to_init_s(ident=nil)
510
+ str = ''
511
+ if typedef?
512
+ str << @identifier
513
+ str << ' ' << ident if ident
514
+ else
515
+ ident = @identifier unless ident
516
+ str << ident if ident
517
+ str << '(' << @parameters.to_s << ')' if @parameters
518
+ @dimensions.each do |d|
519
+ str << "[#{d}]"
520
+ end
521
+ # should pass nil to base_type if we have nothing to add
522
+ str = @base_type.to_init_s(str.empty? ? nil : str) if @base_type
523
+ end
524
+ str
525
+ end
526
+
527
+ def to_s
528
+ to_init_s
529
+ end
530
+
531
+ def short_name
532
+ if typedef?
533
+ @identifier.dup
534
+ elsif function?
535
+ "#{@identifier}()"
536
+ else
537
+ to_init_s('')
538
+ end
539
+ end
540
+ end # Type
541
+
542
+ class List < Array
543
+ def initialize(proto=false)
544
+ super()
545
+ @ellipses = false
546
+ @prototype = proto
547
+ self.freeze if @prototype
548
+ end
549
+
550
+ # check if K & R style prototype: main();
551
+ def prototype?
552
+ @prototype
553
+ end
554
+
555
+ def lookup(ident)
556
+ self.find { |p| p.identifier == ident }
557
+ end
558
+
559
+ def with_ellipses()
560
+ raise "already has ellipses #{self}" if ellipses?
561
+ raise "prototype with ellipses?" if prototype?
562
+ @ellipses = true
563
+ self.freeze
564
+ end
565
+
566
+ def ellipses?
567
+ @ellipses
568
+ end
569
+
570
+ def finalize
571
+ if self.length == 1 and self[0].to_s == 'void'
572
+ self.pop # get rid of (void)
573
+ end
574
+ self.freeze
575
+ end
576
+
577
+ def to_s
578
+ if self.length == 0
579
+ if prototype?
580
+ ''
581
+ else
582
+ 'void'
583
+ end
584
+ else
585
+ if ellipses?
586
+ [self, '...']
587
+ else
588
+ self
589
+ end.join(', ')
590
+ end
591
+ end
592
+ end # List
593
+
594
+ end # module CType
595
+
596
+
597
+ module CType
598
+
599
+ class Parser < Racc::Parser
600
+
601
+ module_eval <<'..end src/ctype.y modeval..id9e584388f8', 'src/ctype.y', 1113
602
+
603
+ def parse(str, file=nil, line=1)
604
+ @tokens = CTokenizer::CLexer.new(str, file, line)
605
+
606
+ #@yydebug = true
607
+ begin
608
+ do_parse
609
+ rescue ParseError
610
+ @tokens.error($!)
611
+ end
612
+ end
613
+
614
+ protected
615
+
616
+ include ParseErrorHandler
617
+
618
+ def next_token
619
+ t = nil
620
+ loop do
621
+ t = @tokens.shift
622
+ # ignore comments, newlines, and spaces
623
+ case t[0]
624
+ when :SPACE, :COMMENT, :NEWLINE
625
+ next
626
+ when :IDENTIFIER
627
+ tdef = CType[t[1]]
628
+ t = [:TYPEDEF_NAME, tdef] if tdef
629
+ end
630
+ break
631
+ end
632
+ t
633
+ end
634
+
635
+ ..end src/ctype.y modeval..id9e584388f8
636
+
637
+ ##### racc 1.4.4 generates ###
638
+
639
+ racc_reduce_table = [
640
+ 0, 0, :racc_error,
641
+ 1, 78, :_reduce_1,
642
+ 1, 78, :_reduce_2,
643
+ 1, 79, :_reduce_none,
644
+ 2, 79, :_reduce_4,
645
+ 0, 80, :_reduce_5,
646
+ 1, 80, :_reduce_6,
647
+ 1, 83, :_reduce_none,
648
+ 1, 83, :_reduce_none,
649
+ 1, 83, :_reduce_none,
650
+ 1, 83, :_reduce_none,
651
+ 1, 83, :_reduce_none,
652
+ 1, 83, :_reduce_none,
653
+ 1, 84, :_reduce_none,
654
+ 1, 84, :_reduce_none,
655
+ 1, 84, :_reduce_none,
656
+ 1, 84, :_reduce_none,
657
+ 1, 84, :_reduce_none,
658
+ 1, 84, :_reduce_none,
659
+ 1, 84, :_reduce_none,
660
+ 1, 84, :_reduce_none,
661
+ 1, 84, :_reduce_none,
662
+ 1, 85, :_reduce_none,
663
+ 1, 85, :_reduce_none,
664
+ 1, 86, :_reduce_none,
665
+ 1, 86, :_reduce_none,
666
+ 1, 87, :_reduce_26,
667
+ 1, 88, :_reduce_none,
668
+ 2, 88, :_reduce_28,
669
+ 1, 89, :_reduce_none,
670
+ 1, 90, :_reduce_none,
671
+ 1, 90, :_reduce_none,
672
+ 1, 90, :_reduce_none,
673
+ 1, 90, :_reduce_none,
674
+ 3, 90, :_reduce_34,
675
+ 1, 92, :_reduce_none,
676
+ 2, 92, :_reduce_36,
677
+ 2, 92, :_reduce_37,
678
+ 2, 92, :_reduce_38,
679
+ 2, 92, :_reduce_39,
680
+ 2, 92, :_reduce_40,
681
+ 2, 92, :_reduce_41,
682
+ 4, 92, :_reduce_42,
683
+ 1, 94, :_reduce_none,
684
+ 4, 94, :_reduce_44,
685
+ 1, 95, :_reduce_none,
686
+ 3, 95, :_reduce_46,
687
+ 3, 95, :_reduce_47,
688
+ 3, 95, :_reduce_48,
689
+ 1, 96, :_reduce_none,
690
+ 3, 96, :_reduce_50,
691
+ 3, 96, :_reduce_51,
692
+ 1, 97, :_reduce_none,
693
+ 3, 97, :_reduce_53,
694
+ 3, 97, :_reduce_54,
695
+ 1, 98, :_reduce_none,
696
+ 3, 98, :_reduce_56,
697
+ 3, 98, :_reduce_57,
698
+ 3, 98, :_reduce_58,
699
+ 3, 98, :_reduce_59,
700
+ 1, 99, :_reduce_none,
701
+ 3, 99, :_reduce_61,
702
+ 3, 99, :_reduce_62,
703
+ 1, 100, :_reduce_none,
704
+ 3, 100, :_reduce_64,
705
+ 1, 101, :_reduce_none,
706
+ 3, 101, :_reduce_66,
707
+ 1, 102, :_reduce_none,
708
+ 3, 102, :_reduce_68,
709
+ 1, 103, :_reduce_none,
710
+ 3, 103, :_reduce_70,
711
+ 1, 104, :_reduce_none,
712
+ 3, 104, :_reduce_72,
713
+ 1, 105, :_reduce_none,
714
+ 5, 105, :_reduce_74,
715
+ 1, 91, :_reduce_none,
716
+ 3, 82, :_reduce_76,
717
+ 2, 82, :_reduce_77,
718
+ 1, 108, :_reduce_78,
719
+ 2, 108, :_reduce_79,
720
+ 3, 81, :_reduce_80,
721
+ 2, 81, :_reduce_81,
722
+ 1, 109, :_reduce_82,
723
+ 3, 109, :_reduce_83,
724
+ 1, 110, :_reduce_none,
725
+ 3, 110, :_reduce_none,
726
+ 1, 111, :_reduce_none,
727
+ 3, 111, :_reduce_87,
728
+ 4, 111, :_reduce_88,
729
+ 1, 113, :_reduce_none,
730
+ 3, 113, :_reduce_90,
731
+ 1, 112, :_reduce_none,
732
+ 1, 112, :_reduce_none,
733
+ 3, 112, :_reduce_93,
734
+ 1, 114, :_reduce_none,
735
+ 1, 114, :_reduce_none,
736
+ 1, 114, :_reduce_none,
737
+ 1, 114, :_reduce_none,
738
+ 1, 114, :_reduce_none,
739
+ 1, 114, :_reduce_none,
740
+ 1, 114, :_reduce_none,
741
+ 1, 114, :_reduce_none,
742
+ 1, 114, :_reduce_none,
743
+ 1, 114, :_reduce_none,
744
+ 1, 114, :_reduce_none,
745
+ 1, 106, :_reduce_105,
746
+ 2, 106, :_reduce_106,
747
+ 2, 106, :_reduce_107,
748
+ 1, 116, :_reduce_108,
749
+ 2, 116, :_reduce_109,
750
+ 1, 115, :_reduce_110,
751
+ 1, 115, :_reduce_111,
752
+ 1, 115, :_reduce_112,
753
+ 1, 115, :_reduce_113,
754
+ 1, 119, :_reduce_none,
755
+ 1, 119, :_reduce_115,
756
+ 5, 117, :_reduce_116,
757
+ 4, 117, :_reduce_117,
758
+ 2, 117, :_reduce_118,
759
+ 1, 120, :_reduce_119,
760
+ 2, 120, :_reduce_120,
761
+ 3, 121, :_reduce_121,
762
+ 2, 121, :_reduce_122,
763
+ 1, 122, :_reduce_none,
764
+ 2, 122, :_reduce_124,
765
+ 1, 123, :_reduce_125,
766
+ 3, 123, :_reduce_126,
767
+ 1, 124, :_reduce_none,
768
+ 2, 124, :_reduce_128,
769
+ 3, 124, :_reduce_129,
770
+ 1, 107, :_reduce_130,
771
+ 2, 125, :_reduce_131,
772
+ 1, 125, :_reduce_none,
773
+ 1, 128, :_reduce_none,
774
+ 1, 127, :_reduce_134,
775
+ 3, 127, :_reduce_135,
776
+ 4, 127, :_reduce_136,
777
+ 3, 127, :_reduce_137,
778
+ 4, 127, :_reduce_138,
779
+ 4, 127, :_reduce_139,
780
+ 3, 127, :_reduce_140,
781
+ 5, 118, :_reduce_141,
782
+ 4, 118, :_reduce_142,
783
+ 2, 118, :_reduce_143,
784
+ 1, 131, :_reduce_none,
785
+ 2, 131, :_reduce_none,
786
+ 1, 132, :_reduce_146,
787
+ 3, 132, :_reduce_147,
788
+ 1, 133, :_reduce_148,
789
+ 3, 133, :_reduce_149,
790
+ 2, 126, :_reduce_150,
791
+ 1, 126, :_reduce_151,
792
+ 3, 126, :_reduce_152,
793
+ 2, 126, :_reduce_153,
794
+ 1, 134, :_reduce_154,
795
+ 2, 134, :_reduce_155,
796
+ 1, 129, :_reduce_156,
797
+ 3, 129, :_reduce_157,
798
+ 1, 135, :_reduce_158,
799
+ 3, 135, :_reduce_159,
800
+ 2, 136, :_reduce_160,
801
+ 2, 136, :_reduce_161,
802
+ 1, 136, :_reduce_162,
803
+ 1, 130, :_reduce_163,
804
+ 1, 138, :_reduce_164,
805
+ 3, 138, :_reduce_165,
806
+ 1, 93, :_reduce_166,
807
+ 2, 93, :_reduce_167,
808
+ 1, 137, :_reduce_168,
809
+ 1, 139, :_reduce_169,
810
+ 1, 139, :_reduce_none,
811
+ 2, 139, :_reduce_171,
812
+ 3, 140, :_reduce_172,
813
+ 2, 140, :_reduce_173,
814
+ 3, 140, :_reduce_174,
815
+ 3, 140, :_reduce_175,
816
+ 4, 140, :_reduce_176,
817
+ 2, 140, :_reduce_177,
818
+ 3, 140, :_reduce_178,
819
+ 3, 140, :_reduce_179,
820
+ 4, 140, :_reduce_180 ]
821
+
822
+ racc_reduce_n = 181
823
+
824
+ racc_shift_n = 268
825
+
826
+ racc_action_table = [
827
+ 114, 116, 119, 167, 47, 97, 102, 114, 116, 119,
828
+ 50, 147, 97, 102, 180, 179, 99, 103, 106, 54,
829
+ 19, 54, 50, 99, 103, 106, 153, 50, 54, 47,
830
+ 17, 23, 27, 30, 33, 35, 1, 3, 6, 9,
831
+ 12, 16, 22, 111, 50, 117, 47, 50, 151, 145,
832
+ 111, 45, 117, 114, 116, 119, 50, 168, 97, 102,
833
+ 114, 116, 119, 236, 144, 97, 102, 31, 153, 99,
834
+ 103, 106, 50, 259, 54, 47, 99, 103, 106, 205,
835
+ 73, 54, 221, 16, 22, 151, 16, 22, 62, 47,
836
+ 151, 47, 236, 169, 221, 62, 111, 45, 117, 184,
837
+ 185, 186, 187, 111, 222, 117, 50, 143, 204, 72,
838
+ 63, 45, 164, 45, 151, 165, 222, 63, 249, 217,
839
+ 250, 136, 158, 159, 19, 47, 112, 84, 36, 2,
840
+ 4, 7, 10, 13, 17, 23, 27, 30, 33, 35,
841
+ 1, 3, 6, 9, 12, 16, 22, 153, 220, 198,
842
+ 50, 199, 200, 201, 190, 191, 192, 193, 194, 196,
843
+ 197, 184, 185, 186, 187, 172, 170, 171, 19, 151,
844
+ 161, 31, 36, 2, 4, 7, 10, 13, 17, 23,
845
+ 27, 30, 33, 35, 1, 3, 6, 9, 12, 16,
846
+ 22, 236, 220, 50, 184, 185, 186, 187, 180, 179,
847
+ 114, 116, 119, 180, 179, 97, 102, 50, 50, 172,
848
+ 170, 171, 47, 151, 138, 31, 99, 103, 106, 125,
849
+ 253, 54, 127, 172, 170, 171, 47, 47, 49, 49,
850
+ 53, 54, 55, 254, 45, 53, 54, 57, 180, 179,
851
+ 180, 179, 136, 111, 255, 117, 176, 177, 45, 45,
852
+ 207, 19, 176, 177, 264, 36, 2, 4, 7, 10,
853
+ 13, 17, 23, 27, 30, 33, 35, 1, 3, 6,
854
+ 9, 12, 16, 22, 19, 211, -77, 54, 36, 2,
855
+ 4, 7, 10, 13, 17, 23, 27, 30, 33, 35,
856
+ 1, 3, 6, 9, 12, 16, 22, 54, 31, 213,
857
+ 176, 177, 158, 159, 148, 160, 161, 66, 66, 167,
858
+ 260, 125, 38, 120, 79, 99, 103, 106, 19, 54,
859
+ 54, 31, 36, 2, 4, 7, 10, 13, 17, 23,
860
+ 27, 30, 33, 35, 1, 3, 6, 9, 12, 16,
861
+ 22, 19, 163, 99, 103, 106, 156, 157, 54, 262,
862
+ 238, 17, 23, 27, 30, 33, 35, 1, 3, 6,
863
+ 9, 12, 16, 22, 237, 31, 114, 116, 119, 60,
864
+ 163, 97, 102, 160, 37, 208, 265, 266, 165, 19,
865
+ nil, nil, 99, 103, 106, nil, nil, 54, 31, 17,
866
+ 23, 27, 30, 33, 35, 1, 3, 6, 9, 12,
867
+ 16, 22, 182, 19, nil, 99, 103, 106, nil, 111,
868
+ 54, 117, nil, 17, 23, 27, 30, 33, 35, 1,
869
+ 3, 6, 9, 12, 16, 22, 31, 19, nil, nil,
870
+ nil, nil, 163, nil, nil, nil, nil, 17, 23, 27,
871
+ 30, 33, 35, 1, 3, 6, 9, 12, 16, 22,
872
+ 31, 19, nil, nil, nil, 36, 2, 4, 7, 10,
873
+ 13, 17, 23, 27, 30, 33, 35, 1, 3, 6,
874
+ 9, 12, 16, 22, 31, 257, 114, 116, 119, nil,
875
+ nil, 97, 102, nil, nil, nil, 99, 103, 106, 19,
876
+ nil, 54, 99, 103, 106, nil, nil, 54, 31, 17,
877
+ 23, 27, 30, 33, 35, 1, 3, 6, 9, 12,
878
+ 16, 22, 19, 163, nil, 99, 103, 106, nil, 111,
879
+ 54, 117, 17, 23, 27, 30, 33, 35, 1, 3,
880
+ 6, 9, 12, 16, 22, nil, 31, nil, nil, nil,
881
+ nil, nil, 163, nil, nil, nil, 141, 17, 23, 27,
882
+ 30, 33, 35, 1, 3, 6, 19, 54, nil, 31,
883
+ 36, 2, 4, 7, 10, 13, 17, 23, 27, 30,
884
+ 33, 35, 1, 3, 6, 9, 12, 16, 22, 19,
885
+ 90, nil, nil, 36, 2, 4, 7, 10, 13, 17,
886
+ 23, 27, 30, 33, 35, 1, 3, 6, 9, 12,
887
+ 16, 22, 19, 31, nil, nil, nil, nil, nil, nil,
888
+ nil, nil, 17, 23, 27, 30, 33, 35, 1, 3,
889
+ 6, 9, 12, 16, 22, 19, 31, nil, 34, 36,
890
+ 2, 4, 7, 10, 13, 17, 23, 27, 30, 33,
891
+ 35, 1, 3, 6, 9, 12, 16, 22, 19, 31,
892
+ nil, nil, 36, 2, 4, 7, 10, 13, 17, 23,
893
+ 27, 30, 33, 35, 1, 3, 6, 9, 12, 16,
894
+ 22, nil, 31, 114, 116, 119, nil, nil, 97, 102,
895
+ 114, 116, 119, nil, nil, 97, 102, nil, nil, 99,
896
+ 103, 106, nil, nil, 54, 31, 99, 103, 106, 125,
897
+ nil, 54, 127, 114, 116, 119, nil, nil, 97, 102,
898
+ nil, nil, nil, nil, nil, nil, 111, nil, 117, 99,
899
+ 103, 106, nil, 111, 54, 117, 114, 116, 119, nil,
900
+ nil, 97, 102, 114, 116, 119, nil, nil, 97, 102,
901
+ nil, nil, 99, 103, 106, nil, 111, 54, 117, 99,
902
+ 103, 106, nil, nil, 54, nil, 114, 116, 119, nil,
903
+ nil, 97, 102, nil, nil, nil, nil, nil, nil, 111,
904
+ nil, 117, 99, 103, 106, 125, 111, 54, 117, 114,
905
+ 116, 119, nil, nil, 97, 102, 114, 116, 119, nil,
906
+ nil, 97, 102, nil, nil, 99, 103, 106, nil, 111,
907
+ 54, 117, 99, 103, 106, 125, nil, 54, 127, 114,
908
+ 116, 119, nil, nil, 97, 102, nil, nil, nil, nil,
909
+ nil, nil, 111, nil, 117, 99, 103, 106, nil, 111,
910
+ 54, 117, 114, 116, 119, nil, nil, 97, 102, 114,
911
+ 116, 119, nil, nil, 97, 102, nil, nil, 99, 103,
912
+ 106, nil, 111, 54, 117, 99, 103, 106, nil, nil,
913
+ 54, nil, 114, 116, 119, nil, nil, 97, 102, nil,
914
+ nil, nil, nil, nil, nil, 111, nil, 117, 99, 103,
915
+ 106, nil, 111, 54, 117, 114, 116, 119, nil, nil,
916
+ 97, 102, 114, 116, 119, nil, nil, 97, 102, nil,
917
+ nil, 99, 103, 106, nil, 111, 54, 117, 99, 103,
918
+ 106, nil, nil, 54, nil, 114, 116, 119, nil, nil,
919
+ 97, 102, nil, nil, nil, nil, nil, nil, 111, nil,
920
+ 117, 99, 103, 106, nil, 111, 54, 117, 114, 116,
921
+ 119, nil, nil, 97, 102, 114, 116, 119, nil, nil,
922
+ 97, 102, nil, nil, 99, 103, 106, nil, 111, 54,
923
+ 117, 99, 103, 106, nil, nil, 54, nil, 114, 116,
924
+ 119, nil, nil, 97, 102, nil, nil, nil, nil, nil,
925
+ nil, 111, nil, 117, 99, 103, 106, nil, 111, 54,
926
+ 117, 114, 116, 119, nil, nil, 97, 102, 114, 116,
927
+ 119, nil, nil, 97, 102, nil, nil, 99, 103, 106,
928
+ nil, 111, 54, 117, 99, 103, 106, nil, nil, 54,
929
+ nil, 114, 116, 119, nil, nil, 97, 102, nil, nil,
930
+ nil, nil, nil, nil, 111, nil, 117, 99, 103, 106,
931
+ nil, 111, 54, 117, 114, 116, 119, nil, nil, 97,
932
+ 102, 114, 116, 119, nil, nil, 97, 102, nil, nil,
933
+ 99, 103, 106, nil, 111, 54, 117, 99, 103, 106,
934
+ nil, nil, 54, nil, 114, 116, 119, nil, nil, 97,
935
+ 102, nil, nil, nil, nil, nil, nil, 111, nil, 117,
936
+ 99, 103, 106, nil, 111, 54, 117, 114, 116, 119,
937
+ nil, nil, 97, 102, 114, 116, 119, nil, nil, 97,
938
+ 102, nil, nil, 99, 103, 106, nil, 111, 54, 117,
939
+ 99, 103, 106, nil, nil, 54, nil, nil, nil, nil,
940
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
941
+ 111, nil, 117, nil, nil, nil, nil, 111, nil, 117 ]
942
+
943
+ racc_action_check = [
944
+ 111, 111, 111, 104, 150, 111, 111, 222, 222, 222,
945
+ 45, 86, 222, 222, 115, 115, 111, 111, 111, 84,
946
+ 111, 111, 173, 222, 222, 222, 150, 89, 222, 45,
947
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
948
+ 111, 111, 111, 111, 50, 111, 89, 69, 150, 83,
949
+ 222, 45, 222, 151, 151, 151, 72, 107, 151, 151,
950
+ 63, 63, 63, 173, 81, 63, 63, 111, 89, 151,
951
+ 151, 151, 204, 222, 151, 72, 63, 63, 63, 134,
952
+ 51, 63, 215, 50, 50, 173, 69, 69, 61, 43,
953
+ 89, 204, 234, 107, 154, 44, 151, 72, 151, 118,
954
+ 118, 118, 118, 63, 215, 63, 153, 80, 134, 51,
955
+ 61, 43, 100, 204, 234, 101, 154, 44, 203, 151,
956
+ 203, 204, 93, 93, 153, 153, 63, 58, 153, 153,
957
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
958
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 124,
959
+ 236, 124, 124, 124, 124, 124, 124, 124, 124, 124,
960
+ 124, 224, 224, 224, 224, 110, 110, 110, 236, 153,
961
+ 96, 153, 236, 236, 236, 236, 236, 236, 236, 236,
962
+ 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
963
+ 236, 236, 236, 75, 223, 223, 223, 223, 247, 247,
964
+ 249, 249, 249, 246, 246, 249, 249, 26, 67, 239,
965
+ 239, 239, 75, 236, 75, 236, 249, 249, 249, 249,
966
+ 216, 249, 249, 240, 240, 240, 26, 67, 26, 67,
967
+ 28, 28, 28, 218, 75, 31, 31, 31, 245, 245,
968
+ 244, 244, 75, 249, 219, 249, 242, 242, 26, 67,
969
+ 137, 147, 241, 241, 249, 147, 147, 147, 147, 147,
970
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
971
+ 147, 147, 147, 147, 48, 146, 48, 143, 48, 48,
972
+ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
973
+ 48, 48, 48, 48, 48, 48, 48, 148, 147, 147,
974
+ 113, 113, 225, 225, 88, 226, 227, 48, 129, 229,
975
+ 230, 121, 18, 64, 56, 114, 114, 114, 32, 57,
976
+ 114, 48, 32, 32, 32, 32, 32, 32, 32, 32,
977
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
978
+ 32, 142, 114, 119, 119, 119, 91, 92, 119, 243,
979
+ 175, 142, 142, 142, 142, 142, 142, 142, 142, 142,
980
+ 142, 142, 142, 142, 174, 32, 187, 187, 187, 37,
981
+ 119, 187, 187, 94, 5, 142, 256, 258, 228, 116,
982
+ nil, nil, 187, 187, 187, nil, nil, 187, 142, 116,
983
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
984
+ 116, 116, 116, 55, nil, 102, 102, 102, nil, 187,
985
+ 102, 187, nil, 55, 55, 55, 55, 55, 55, 55,
986
+ 55, 55, 55, 55, 55, 55, 116, 182, nil, nil,
987
+ nil, nil, 102, nil, nil, nil, nil, 182, 182, 182,
988
+ 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
989
+ 55, 221, nil, nil, nil, 221, 221, 221, 221, 221,
990
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
991
+ 221, 221, 221, 221, 182, 221, 260, 260, 260, nil,
992
+ nil, 260, 260, nil, nil, nil, 117, 117, 117, 79,
993
+ nil, 117, 260, 260, 260, nil, nil, 260, 221, 79,
994
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
995
+ 79, 79, 78, 117, nil, 97, 97, 97, nil, 260,
996
+ 97, 260, 78, 78, 78, 78, 78, 78, 78, 78,
997
+ 78, 78, 78, 78, 78, nil, 79, nil, nil, nil,
998
+ nil, nil, 97, nil, nil, nil, 78, 25, 25, 25,
999
+ 25, 25, 25, 25, 25, 25, 62, 62, nil, 78,
1000
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
1001
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 21,
1002
+ 62, nil, nil, 21, 21, 21, 21, 21, 21, 21,
1003
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1004
+ 21, 21, 77, 62, nil, nil, nil, nil, nil, nil,
1005
+ nil, nil, 77, 77, 77, 77, 77, 77, 77, 77,
1006
+ 77, 77, 77, 77, 77, 0, 21, nil, 0, 0,
1007
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1008
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 77,
1009
+ nil, nil, 68, 68, 68, 68, 68, 68, 68, 68,
1010
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
1011
+ 68, nil, 0, 136, 136, 136, nil, nil, 136, 136,
1012
+ 66, 66, 66, nil, nil, 66, 66, nil, nil, 136,
1013
+ 136, 136, nil, nil, 136, 68, 66, 66, 66, 66,
1014
+ nil, 66, 66, 238, 238, 238, nil, nil, 238, 238,
1015
+ nil, nil, nil, nil, nil, nil, 136, nil, 136, 238,
1016
+ 238, 238, nil, 66, 238, 66, 144, 144, 144, nil,
1017
+ nil, 144, 144, 207, 207, 207, nil, nil, 207, 207,
1018
+ nil, nil, 144, 144, 144, nil, 238, 144, 238, 207,
1019
+ 207, 207, nil, nil, 207, nil, 195, 195, 195, nil,
1020
+ nil, 195, 195, nil, nil, nil, nil, nil, nil, 144,
1021
+ nil, 144, 195, 195, 195, 195, 207, 195, 207, 186,
1022
+ 186, 186, nil, nil, 186, 186, 127, 127, 127, nil,
1023
+ nil, 127, 127, nil, nil, 186, 186, 186, nil, 195,
1024
+ 186, 195, 127, 127, 127, 127, nil, 127, 127, 185,
1025
+ 185, 185, nil, nil, 185, 185, nil, nil, nil, nil,
1026
+ nil, nil, 186, nil, 186, 185, 185, 185, nil, 127,
1027
+ 185, 127, 184, 184, 184, nil, nil, 184, 184, 180,
1028
+ 180, 180, nil, nil, 180, 180, nil, nil, 184, 184,
1029
+ 184, nil, 185, 184, 185, 180, 180, 180, nil, nil,
1030
+ 180, nil, 179, 179, 179, nil, nil, 179, 179, nil,
1031
+ nil, nil, nil, nil, nil, 184, nil, 184, 179, 179,
1032
+ 179, nil, 180, 179, 180, 177, 177, 177, nil, nil,
1033
+ 177, 177, 176, 176, 176, nil, nil, 176, 176, nil,
1034
+ nil, 177, 177, 177, nil, 179, 177, 179, 176, 176,
1035
+ 176, nil, nil, 176, nil, 172, 172, 172, nil, nil,
1036
+ 172, 172, nil, nil, nil, nil, nil, nil, 177, nil,
1037
+ 177, 172, 172, 172, nil, 176, 172, 176, 158, 158,
1038
+ 158, nil, nil, 158, 158, 170, 170, 170, nil, nil,
1039
+ 170, 170, nil, nil, 158, 158, 158, nil, 172, 158,
1040
+ 172, 170, 170, 170, nil, nil, 170, nil, 169, 169,
1041
+ 169, nil, nil, 169, 169, nil, nil, nil, nil, nil,
1042
+ nil, 158, nil, 158, 169, 169, 169, nil, 170, 169,
1043
+ 170, 168, 168, 168, nil, nil, 168, 168, 167, 167,
1044
+ 167, nil, nil, 167, 167, nil, nil, 168, 168, 168,
1045
+ nil, 169, 168, 169, 167, 167, 167, nil, nil, 167,
1046
+ nil, 165, 165, 165, nil, nil, 165, 165, nil, nil,
1047
+ nil, nil, nil, nil, 168, nil, 168, 165, 165, 165,
1048
+ nil, 167, 165, 167, 163, 163, 163, nil, nil, 163,
1049
+ 163, 161, 161, 161, nil, nil, 161, 161, nil, nil,
1050
+ 163, 163, 163, nil, 165, 163, 165, 161, 161, 161,
1051
+ nil, nil, 161, nil, 160, 160, 160, nil, nil, 160,
1052
+ 160, nil, nil, nil, nil, nil, nil, 163, nil, 163,
1053
+ 160, 160, 160, nil, 161, 160, 161, 159, 159, 159,
1054
+ nil, nil, 159, 159, 171, 171, 171, nil, nil, 171,
1055
+ 171, nil, nil, 159, 159, 159, nil, 160, 159, 160,
1056
+ 171, 171, 171, nil, nil, 171, nil, nil, nil, nil,
1057
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1058
+ 159, nil, 159, nil, nil, nil, nil, 171, nil, 171 ]
1059
+
1060
+ racc_action_pointer = [
1061
+ 597, nil, nil, nil, nil, 374, nil, nil, nil, nil,
1062
+ nil, nil, nil, nil, nil, nil, nil, nil, 282, nil,
1063
+ nil, 551, nil, nil, nil, 509, 197, nil, 202, nil,
1064
+ nil, 207, 290, nil, nil, nil, nil, 369, nil, nil,
1065
+ nil, nil, nil, 60, 44, 0, nil, nil, 246, nil,
1066
+ 34, 49, nil, nil, nil, 375, 284, 290, 97, nil,
1067
+ nil, 37, 528, 52, 261, nil, 672, 198, 620, 37,
1068
+ nil, nil, 46, nil, nil, 183, nil, 574, 484, 461,
1069
+ 47, 3, nil, -13, -10, nil, -49, nil, 244, 17,
1070
+ nil, 294, 295, 103, 320, nil, 114, 491, nil, nil,
1071
+ 38, 58, 381, nil, -18, nil, nil, 35, nil, nil,
1072
+ 155, -8, nil, 287, 291, -40, 351, 462, 84, 319,
1073
+ nil, 284, nil, nil, 88, nil, nil, 778, nil, 247,
1074
+ nil, nil, nil, nil, 48, nil, 665, 191, nil, nil,
1075
+ nil, nil, 313, 248, 718, nil, 213, 223, 268, nil,
1076
+ -25, 45, nil, 96, 43, nil, nil, nil, 930, 1089,
1077
+ 1066, 1043, nil, 1036, nil, 1013, nil, 990, 983, 960,
1078
+ 937, 1096, 907, 12, 312, 298, 884, 877, nil, 854,
1079
+ 831, nil, 399, nil, 824, 801, 771, 358, nil, nil,
1080
+ nil, nil, nil, nil, nil, 748, nil, nil, nil, nil,
1081
+ nil, nil, nil, 58, 62, nil, nil, 725, nil, nil,
1082
+ nil, nil, nil, nil, nil, 31, 146, nil, 181, 192,
1083
+ nil, 423, -1, 179, 146, 283, 252, 250, 321, 288,
1084
+ 251, nil, nil, nil, 41, nil, 140, nil, 695, 199,
1085
+ 213, 239, 233, 297, 186, 184, 149, 144, nil, 192,
1086
+ nil, nil, nil, nil, nil, nil, 324, nil, 303, nil,
1087
+ 468, nil, nil, nil, nil, nil, nil, nil ]
1088
+
1089
+ racc_action_default = [
1090
+ -5, -19, -8, -20, -9, -181, -21, -10, -1, -22,
1091
+ -11, -2, -23, -12, -3, -105, -24, -13, -181, -113,
1092
+ -110, -181, -25, -14, -111, -108, -181, -15, -181, -112,
1093
+ -16, -181, -181, -17, -6, -18, -7, -181, -4, -106,
1094
+ -109, -82, -130, -181, -132, -181, -134, -133, -84, -81,
1095
+ -151, -181, -114, -115, -29, -181, -118, -181, -143, -107,
1096
+ 268, -131, -181, -181, -181, -78, -181, -181, -76, -150,
1097
+ -153, -154, -181, -80, -119, -181, -123, -181, -181, -181,
1098
+ -144, -148, -146, -181, -181, -164, -156, -158, -163, -162,
1099
+ -140, -181, -181, -63, -65, -33, -67, -181, -35, -30,
1100
+ -181, -69, -181, -31, -71, -43, -32, -73, -75, -45,
1101
+ -49, -181, -137, -52, -181, -55, -181, -181, -60, -181,
1102
+ -135, -92, -85, -86, -43, -26, -91, -181, -27, -84,
1103
+ -79, -152, -155, -83, -181, -125, -181, -127, -122, -124,
1104
+ -120, -117, -181, -145, -181, -142, -181, -181, -181, -161,
1105
+ -169, -181, -168, -181, -170, -160, -138, -139, -181, -181,
1106
+ -181, -181, -38, -181, -136, -181, -39, -181, -181, -181,
1107
+ -181, -181, -181, -166, -181, -181, -181, -181, -40, -181,
1108
+ -181, -41, -181, -36, -181, -181, -181, -181, -37, -28,
1109
+ -98, -99, -100, -101, -102, -181, -103, -104, -94, -95,
1110
+ -96, -97, -89, -181, -181, -121, -128, -181, -116, -147,
1111
+ -149, -141, -159, -157, -165, -171, -181, -173, -181, -181,
1112
+ -177, -181, -181, -61, -62, -64, -66, -68, -70, -72,
1113
+ -181, -47, -48, -46, -169, -167, -181, -34, -181, -50,
1114
+ -51, -54, -53, -181, -56, -58, -57, -59, -93, -181,
1115
+ -87, -126, -129, -174, -172, -178, -181, -179, -181, -175,
1116
+ -181, -44, -42, -90, -88, -180, -176, -74 ]
1117
+
1118
+ racc_goto_table = [
1119
+ 126, 70, 122, 124, 48, 100, 91, 71, 135, 76,
1120
+ 52, 64, 77, 52, 61, 139, 149, 215, 175, 218,
1121
+ 131, 83, 78, 181, 14, 133, 132, 231, 232, 233,
1122
+ 140, 76, 76, 76, 77, 77, 77, 26, 56, 81,
1123
+ 150, 58, 239, 240, 85, 203, 142, 40, 146, 173,
1124
+ 241, 242, 248, 137, 173, 223, 224, 162, 39, 195,
1125
+ 68, 126, 166, 202, 124, 76, 81, 155, 77, 59,
1126
+ 76, 229, 65, 77, 178, 134, 228, 183, 206, 188,
1127
+ 244, 245, 246, 247, 227, 67, 210, 226, 225, 243,
1128
+ 189, 92, 130, 216, 140, 261, 76, 18, 209, 77,
1129
+ 235, 215, 218, 69, 150, 67, 212, 11, 88, 8,
1130
+ 5, 230, nil, nil, nil, nil, nil, nil, nil, 64,
1131
+ 173, 61, nil, nil, 234, 81, nil, nil, nil, 126,
1132
+ 214, nil, 124, nil, nil, nil, 76, 251, nil, 77,
1133
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 252,
1134
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1135
+ nil, nil, nil, nil, 258, 256, nil, nil, nil, nil,
1136
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1137
+ nil, nil, 137, 126, nil, 263, 124, 234, nil, nil,
1138
+ nil, nil, nil, nil, 267 ]
1139
+
1140
+ racc_goto_check = [
1141
+ 28, 49, 34, 15, 30, 14, 52, 9, 47, 38,
1142
+ 12, 48, 9, 12, 50, 45, 60, 63, 16, 62,
1143
+ 49, 54, 43, 16, 4, 33, 9, 17, 17, 17,
1144
+ 44, 38, 38, 38, 9, 9, 9, 29, 42, 12,
1145
+ 49, 42, 18, 18, 12, 36, 43, 39, 54, 45,
1146
+ 19, 19, 35, 30, 45, 21, 21, 13, 29, 37,
1147
+ 31, 28, 13, 34, 15, 38, 12, 30, 9, 29,
1148
+ 38, 26, 4, 9, 13, 46, 25, 13, 14, 13,
1149
+ 20, 20, 20, 20, 24, 29, 14, 23, 22, 16,
1150
+ 10, 53, 4, 14, 44, 17, 38, 5, 56, 9,
1151
+ 60, 63, 62, 57, 49, 29, 59, 3, 61, 2,
1152
+ 1, 14, nil, nil, nil, nil, nil, nil, nil, 48,
1153
+ 45, 50, nil, nil, 49, 12, nil, nil, nil, 28,
1154
+ 12, nil, 15, nil, nil, nil, 38, 47, nil, 9,
1155
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 14,
1156
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1157
+ nil, nil, nil, nil, 14, 52, nil, nil, nil, nil,
1158
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1159
+ nil, nil, 30, 28, nil, 34, 15, 49, nil, nil,
1160
+ nil, nil, nil, nil, 28 ]
1161
+
1162
+ racc_goto_pointer = [
1163
+ nil, 110, 109, 107, 24, 97, nil, nil, nil, -43,
1164
+ -31, nil, -18, -40, -58, -63, -93, -143, -134, -129,
1165
+ -104, -103, -72, -74, -81, -91, -97, nil, -66, 37,
1166
+ -22, 12, nil, -47, -64, -143, -82, -65, -46, 22,
1167
+ nil, nil, 10, -33, -48, -62, 0, -67, -34, -49,
1168
+ -29, nil, -56, 29, -36, nil, -45, 53, nil, -41,
1169
+ -73, 46, -134, -133 ]
1170
+
1171
+ racc_goto_default = [
1172
+ nil, nil, nil, nil, nil, nil, 21, 25, 28, 32,
1173
+ 128, 121, 95, 98, 174, 105, nil, 109, 110, 113,
1174
+ 115, 118, 93, 94, 96, 101, 104, 107, 108, 89,
1175
+ 129, nil, 51, 41, nil, 123, nil, nil, 15, 20,
1176
+ 24, 29, nil, nil, 74, 75, nil, nil, 42, 43,
1177
+ 44, 46, 219, nil, nil, 80, 82, nil, 86, 87,
1178
+ nil, nil, 152, 154 ]
1179
+
1180
+ racc_token_table = {
1181
+ false => 0,
1182
+ Object.new => 1,
1183
+ "." => 2,
1184
+ "->" => 3,
1185
+ :UADDRS => 4,
1186
+ :UDEREF => 5,
1187
+ :UPLUS => 6,
1188
+ :UMINUS => 7,
1189
+ "!" => 8,
1190
+ "sizeof" => 9,
1191
+ "*" => 10,
1192
+ "/" => 11,
1193
+ "%" => 12,
1194
+ "+" => 13,
1195
+ "-" => 14,
1196
+ "<" => 15,
1197
+ "<=" => 16,
1198
+ ">" => 17,
1199
+ ">=" => 18,
1200
+ "==" => 19,
1201
+ "!=" => 20,
1202
+ "&&" => 21,
1203
+ "||" => 22,
1204
+ :POINTER => 23,
1205
+ :INTEGER => 24,
1206
+ :FLOAT => 25,
1207
+ :CHARACTER => 26,
1208
+ :STRING => 27,
1209
+ :TYPEDEF_NAME => 28,
1210
+ :IDENTIFIER => 29,
1211
+ "{" => 30,
1212
+ ";" => 31,
1213
+ "inline" => 32,
1214
+ "typedef" => 33,
1215
+ "extern" => 34,
1216
+ "static" => 35,
1217
+ "auto" => 36,
1218
+ "register" => 37,
1219
+ "void" => 38,
1220
+ "char" => 39,
1221
+ "short" => 40,
1222
+ "int" => 41,
1223
+ "long" => 42,
1224
+ "float" => 43,
1225
+ "double" => 44,
1226
+ "signed" => 45,
1227
+ "unsigned" => 46,
1228
+ "struct" => 47,
1229
+ "union" => 48,
1230
+ "const" => 49,
1231
+ "volatile" => 50,
1232
+ "(" => 51,
1233
+ ")" => 52,
1234
+ "&" => 53,
1235
+ "<<" => 54,
1236
+ ">>" => 55,
1237
+ "^" => 56,
1238
+ "|" => 57,
1239
+ "?" => 58,
1240
+ ":" => 59,
1241
+ "," => 60,
1242
+ "=" => 61,
1243
+ "}" => 62,
1244
+ "+=" => 63,
1245
+ "-=" => 64,
1246
+ "*=" => 65,
1247
+ "/=" => 66,
1248
+ "%=" => 67,
1249
+ "&=" => 68,
1250
+ "^=" => 69,
1251
+ "|=" => 70,
1252
+ "<<=" => 71,
1253
+ ">>=" => 72,
1254
+ "[" => 73,
1255
+ "]" => 74,
1256
+ "enum" => 75,
1257
+ "..." => 76 }
1258
+
1259
+ racc_use_result_var = true
1260
+
1261
+ racc_nt_base = 77
1262
+
1263
+ Racc_arg = [
1264
+ racc_action_table,
1265
+ racc_action_check,
1266
+ racc_action_default,
1267
+ racc_action_pointer,
1268
+ racc_goto_table,
1269
+ racc_goto_check,
1270
+ racc_goto_default,
1271
+ racc_goto_pointer,
1272
+ racc_nt_base,
1273
+ racc_reduce_table,
1274
+ racc_token_table,
1275
+ racc_shift_n,
1276
+ racc_reduce_n,
1277
+ racc_use_result_var ]
1278
+
1279
+ Racc_token_to_s_table = [
1280
+ '$end',
1281
+ 'error',
1282
+ '"."',
1283
+ '"->"',
1284
+ 'UADDRS',
1285
+ 'UDEREF',
1286
+ 'UPLUS',
1287
+ 'UMINUS',
1288
+ '"!"',
1289
+ '"sizeof"',
1290
+ '"*"',
1291
+ '"/"',
1292
+ '"%"',
1293
+ '"+"',
1294
+ '"-"',
1295
+ '"<"',
1296
+ '"<="',
1297
+ '">"',
1298
+ '">="',
1299
+ '"=="',
1300
+ '"!="',
1301
+ '"&&"',
1302
+ '"||"',
1303
+ 'POINTER',
1304
+ 'INTEGER',
1305
+ 'FLOAT',
1306
+ 'CHARACTER',
1307
+ 'STRING',
1308
+ 'TYPEDEF_NAME',
1309
+ 'IDENTIFIER',
1310
+ '"{"',
1311
+ '";"',
1312
+ '"inline"',
1313
+ '"typedef"',
1314
+ '"extern"',
1315
+ '"static"',
1316
+ '"auto"',
1317
+ '"register"',
1318
+ '"void"',
1319
+ '"char"',
1320
+ '"short"',
1321
+ '"int"',
1322
+ '"long"',
1323
+ '"float"',
1324
+ '"double"',
1325
+ '"signed"',
1326
+ '"unsigned"',
1327
+ '"struct"',
1328
+ '"union"',
1329
+ '"const"',
1330
+ '"volatile"',
1331
+ '"("',
1332
+ '")"',
1333
+ '"&"',
1334
+ '"<<"',
1335
+ '">>"',
1336
+ '"^"',
1337
+ '"|"',
1338
+ '"?"',
1339
+ '":"',
1340
+ '","',
1341
+ '"="',
1342
+ '"}"',
1343
+ '"+="',
1344
+ '"-="',
1345
+ '"*="',
1346
+ '"/="',
1347
+ '"%="',
1348
+ '"&="',
1349
+ '"^="',
1350
+ '"|="',
1351
+ '"<<="',
1352
+ '">>="',
1353
+ '"["',
1354
+ '"]"',
1355
+ '"enum"',
1356
+ '"..."',
1357
+ '$start',
1358
+ 'target',
1359
+ 'statement_target',
1360
+ 'empty_target',
1361
+ 'declaration',
1362
+ 'function_definition',
1363
+ 'storage_class_specifier',
1364
+ 'primitive_type',
1365
+ 'struct_or_union',
1366
+ 'type_qualifier',
1367
+ 'cstring',
1368
+ 'string',
1369
+ 'identifier',
1370
+ 'constant_exp',
1371
+ 'expression',
1372
+ 'unary_expression',
1373
+ 'type_name',
1374
+ 'cast_expression',
1375
+ 'multiplicative_expression',
1376
+ 'additive_expression',
1377
+ 'shift_expression',
1378
+ 'relational_expression',
1379
+ 'equality_expression',
1380
+ 'and_expression',
1381
+ 'exclusive_or_expression',
1382
+ 'inclusive_or_expression',
1383
+ 'logical_and_expression',
1384
+ 'logical_or_expression',
1385
+ 'conditional_expression',
1386
+ 'declaration_specifiers',
1387
+ 'declarator',
1388
+ 'declaration_list',
1389
+ 'init_declarator_list',
1390
+ 'init_declarator',
1391
+ 'initializer',
1392
+ 'assignment_expression',
1393
+ 'initializer_list',
1394
+ 'assignment_operator',
1395
+ 'type_specifier',
1396
+ 'primitive_type_specifier',
1397
+ 'struct_or_union_specifier',
1398
+ 'enum_specifier',
1399
+ 'struct_or_union_or_enum_name',
1400
+ 'struct_declaration_list',
1401
+ 'struct_declaration',
1402
+ 'specifier_qualifier_list',
1403
+ 'struct_declarator_list',
1404
+ 'struct_declarator',
1405
+ 'declarator_sequence',
1406
+ 'pointer',
1407
+ 'direct_declarator',
1408
+ 'declarator_identifier',
1409
+ 'parameter_type_list',
1410
+ 'identifier_list',
1411
+ 'enumerator_list',
1412
+ 'enumerator_list_pre',
1413
+ 'enumerator',
1414
+ 'type_qualifier_list',
1415
+ 'parameter_list',
1416
+ 'parameter_declaration',
1417
+ 'abstract_declarator',
1418
+ 'identifier_sequence',
1419
+ 'abstract_declarator_sequence',
1420
+ 'direct_abstract_declarator']
1421
+
1422
+ Racc_debug_parser = false
1423
+
1424
+ ##### racc system variables end #####
1425
+
1426
+ # reduce 0 omitted
1427
+
1428
+ module_eval <<'.,.,', 'src/ctype.y', 28
1429
+ def _reduce_1( val, _values, result )
1430
+ yyaccept
1431
+ result
1432
+ end
1433
+ .,.,
1434
+
1435
+ module_eval <<'.,.,', 'src/ctype.y', 29
1436
+ def _reduce_2( val, _values, result )
1437
+ yyaccept
1438
+ result
1439
+ end
1440
+ .,.,
1441
+
1442
+ # reduce 3 omitted
1443
+
1444
+ module_eval <<'.,.,', 'src/ctype.y', 35
1445
+ def _reduce_4( val, _values, result )
1446
+ result = val[0,1]
1447
+ result
1448
+ end
1449
+ .,.,
1450
+
1451
+ module_eval <<'.,.,', 'src/ctype.y', 39
1452
+ def _reduce_5( val, _values, result )
1453
+ result = []
1454
+ result
1455
+ end
1456
+ .,.,
1457
+
1458
+ module_eval <<'.,.,', 'src/ctype.y', 40
1459
+ def _reduce_6( val, _values, result )
1460
+ result = []
1461
+ result
1462
+ end
1463
+ .,.,
1464
+
1465
+ # reduce 7 omitted
1466
+
1467
+ # reduce 8 omitted
1468
+
1469
+ # reduce 9 omitted
1470
+
1471
+ # reduce 10 omitted
1472
+
1473
+ # reduce 11 omitted
1474
+
1475
+ # reduce 12 omitted
1476
+
1477
+ # reduce 13 omitted
1478
+
1479
+ # reduce 14 omitted
1480
+
1481
+ # reduce 15 omitted
1482
+
1483
+ # reduce 16 omitted
1484
+
1485
+ # reduce 17 omitted
1486
+
1487
+ # reduce 18 omitted
1488
+
1489
+ # reduce 19 omitted
1490
+
1491
+ # reduce 20 omitted
1492
+
1493
+ # reduce 21 omitted
1494
+
1495
+ # reduce 22 omitted
1496
+
1497
+ # reduce 23 omitted
1498
+
1499
+ # reduce 24 omitted
1500
+
1501
+ # reduce 25 omitted
1502
+
1503
+ module_eval <<'.,.,', 'src/ctype.y', 76
1504
+ def _reduce_26( val, _values, result )
1505
+ result = val[0]; result = result[1,result.length - 2]
1506
+ result
1507
+ end
1508
+ .,.,
1509
+
1510
+ # reduce 27 omitted
1511
+
1512
+ module_eval <<'.,.,', 'src/ctype.y', 81
1513
+ def _reduce_28( val, _values, result )
1514
+ result = val[0] << val[1]
1515
+ result
1516
+ end
1517
+ .,.,
1518
+
1519
+ # reduce 29 omitted
1520
+
1521
+ # reduce 30 omitted
1522
+
1523
+ # reduce 31 omitted
1524
+
1525
+ # reduce 32 omitted
1526
+
1527
+ # reduce 33 omitted
1528
+
1529
+ module_eval <<'.,.,', 'src/ctype.y', 93
1530
+ def _reduce_34( val, _values, result )
1531
+ result = val[1]
1532
+ result
1533
+ end
1534
+ .,.,
1535
+
1536
+ # reduce 35 omitted
1537
+
1538
+ module_eval <<'.,.,', 'src/ctype.y', 98
1539
+ def _reduce_36( val, _values, result )
1540
+ result = val[0,2].join
1541
+ result
1542
+ end
1543
+ .,.,
1544
+
1545
+ module_eval <<'.,.,', 'src/ctype.y', 99
1546
+ def _reduce_37( val, _values, result )
1547
+ result = val[0,2].join
1548
+ result
1549
+ end
1550
+ .,.,
1551
+
1552
+ module_eval <<'.,.,', 'src/ctype.y', 100
1553
+ def _reduce_38( val, _values, result )
1554
+ result = val[0,2].join
1555
+ result
1556
+ end
1557
+ .,.,
1558
+
1559
+ module_eval <<'.,.,', 'src/ctype.y', 101
1560
+ def _reduce_39( val, _values, result )
1561
+ result = val[0,2].join
1562
+ result
1563
+ end
1564
+ .,.,
1565
+
1566
+ module_eval <<'.,.,', 'src/ctype.y', 102
1567
+ def _reduce_40( val, _values, result )
1568
+ result = val[0,2].join
1569
+ result
1570
+ end
1571
+ .,.,
1572
+
1573
+ module_eval <<'.,.,', 'src/ctype.y', 103
1574
+ def _reduce_41( val, _values, result )
1575
+ result = val[0,2].join(' ')
1576
+ result
1577
+ end
1578
+ .,.,
1579
+
1580
+ module_eval <<'.,.,', 'src/ctype.y', 104
1581
+ def _reduce_42( val, _values, result )
1582
+ result = val[0,4].join('')
1583
+ result
1584
+ end
1585
+ .,.,
1586
+
1587
+ # reduce 43 omitted
1588
+
1589
+ module_eval <<'.,.,', 'src/ctype.y', 109
1590
+ def _reduce_44( val, _values, result )
1591
+ result = val[0,3].join
1592
+ result
1593
+ end
1594
+ .,.,
1595
+
1596
+ # reduce 45 omitted
1597
+
1598
+ module_eval <<'.,.,', 'src/ctype.y', 114
1599
+ def _reduce_46( val, _values, result )
1600
+ result = val[0,3].join(' ')
1601
+ result
1602
+ end
1603
+ .,.,
1604
+
1605
+ module_eval <<'.,.,', 'src/ctype.y', 115
1606
+ def _reduce_47( val, _values, result )
1607
+ result = val[0,3].join(' ')
1608
+ result
1609
+ end
1610
+ .,.,
1611
+
1612
+ module_eval <<'.,.,', 'src/ctype.y', 116
1613
+ def _reduce_48( val, _values, result )
1614
+ result = val[0,3].join(' ')
1615
+ result
1616
+ end
1617
+ .,.,
1618
+
1619
+ # reduce 49 omitted
1620
+
1621
+ module_eval <<'.,.,', 'src/ctype.y', 121
1622
+ def _reduce_50( val, _values, result )
1623
+ result = val[0,3].join(' ')
1624
+ result
1625
+ end
1626
+ .,.,
1627
+
1628
+ module_eval <<'.,.,', 'src/ctype.y', 122
1629
+ def _reduce_51( val, _values, result )
1630
+ result = val[0,3].join(' ')
1631
+ result
1632
+ end
1633
+ .,.,
1634
+
1635
+ # reduce 52 omitted
1636
+
1637
+ module_eval <<'.,.,', 'src/ctype.y', 127
1638
+ def _reduce_53( val, _values, result )
1639
+ result = val[0,3].join(' ')
1640
+ result
1641
+ end
1642
+ .,.,
1643
+
1644
+ module_eval <<'.,.,', 'src/ctype.y', 128
1645
+ def _reduce_54( val, _values, result )
1646
+ result = val[0,3].join(' ')
1647
+ result
1648
+ end
1649
+ .,.,
1650
+
1651
+ # reduce 55 omitted
1652
+
1653
+ module_eval <<'.,.,', 'src/ctype.y', 133
1654
+ def _reduce_56( val, _values, result )
1655
+ result = val[0,3].join(' ')
1656
+ result
1657
+ end
1658
+ .,.,
1659
+
1660
+ module_eval <<'.,.,', 'src/ctype.y', 134
1661
+ def _reduce_57( val, _values, result )
1662
+ result = val[0,3].join(' ')
1663
+ result
1664
+ end
1665
+ .,.,
1666
+
1667
+ module_eval <<'.,.,', 'src/ctype.y', 135
1668
+ def _reduce_58( val, _values, result )
1669
+ result = val[0,3].join(' ')
1670
+ result
1671
+ end
1672
+ .,.,
1673
+
1674
+ module_eval <<'.,.,', 'src/ctype.y', 136
1675
+ def _reduce_59( val, _values, result )
1676
+ result = val[0,3].join(' ')
1677
+ result
1678
+ end
1679
+ .,.,
1680
+
1681
+ # reduce 60 omitted
1682
+
1683
+ module_eval <<'.,.,', 'src/ctype.y', 141
1684
+ def _reduce_61( val, _values, result )
1685
+ result = val[0,3].join(' ')
1686
+ result
1687
+ end
1688
+ .,.,
1689
+
1690
+ module_eval <<'.,.,', 'src/ctype.y', 142
1691
+ def _reduce_62( val, _values, result )
1692
+ result = val[0,3].join(' ')
1693
+ result
1694
+ end
1695
+ .,.,
1696
+
1697
+ # reduce 63 omitted
1698
+
1699
+ module_eval <<'.,.,', 'src/ctype.y', 147
1700
+ def _reduce_64( val, _values, result )
1701
+ result = val[0,3].join(' ')
1702
+ result
1703
+ end
1704
+ .,.,
1705
+
1706
+ # reduce 65 omitted
1707
+
1708
+ module_eval <<'.,.,', 'src/ctype.y', 152
1709
+ def _reduce_66( val, _values, result )
1710
+ result = val[0,3].join(' ')
1711
+ result
1712
+ end
1713
+ .,.,
1714
+
1715
+ # reduce 67 omitted
1716
+
1717
+ module_eval <<'.,.,', 'src/ctype.y', 157
1718
+ def _reduce_68( val, _values, result )
1719
+ result = val[0,3].join(' ')
1720
+ result
1721
+ end
1722
+ .,.,
1723
+
1724
+ # reduce 69 omitted
1725
+
1726
+ module_eval <<'.,.,', 'src/ctype.y', 162
1727
+ def _reduce_70( val, _values, result )
1728
+ result = val[0,3].join(' ')
1729
+ result
1730
+ end
1731
+ .,.,
1732
+
1733
+ # reduce 71 omitted
1734
+
1735
+ module_eval <<'.,.,', 'src/ctype.y', 167
1736
+ def _reduce_72( val, _values, result )
1737
+ result = val[0,3].join(' ')
1738
+ result
1739
+ end
1740
+ .,.,
1741
+
1742
+ # reduce 73 omitted
1743
+
1744
+ module_eval <<'.,.,', 'src/ctype.y', 172
1745
+ def _reduce_74( val, _values, result )
1746
+ result = val[0,3].join(' ')
1747
+ result
1748
+ end
1749
+ .,.,
1750
+
1751
+ # reduce 75 omitted
1752
+
1753
+ module_eval <<'.,.,', 'src/ctype.y', 186
1754
+ def _reduce_76( val, _values, result )
1755
+ result = val[1]
1756
+ result.add_declaration_specifiers(val[0])
1757
+ result.add_parameter_declarations(val[2])
1758
+ result
1759
+ end
1760
+ .,.,
1761
+
1762
+ module_eval <<'.,.,', 'src/ctype.y', 191
1763
+ def _reduce_77( val, _values, result )
1764
+ result = val[1]
1765
+ result.add_declaration_specifiers(val[0])
1766
+ result
1767
+ end
1768
+ .,.,
1769
+
1770
+ module_eval <<'.,.,', 'src/ctype.y', 194
1771
+ def _reduce_78( val, _values, result )
1772
+ result = val[0,1]; result.flatten!
1773
+ result
1774
+ end
1775
+ .,.,
1776
+
1777
+ module_eval <<'.,.,', 'src/ctype.y', 195
1778
+ def _reduce_79( val, _values, result )
1779
+ result = val[0] << val[1]; result.flatten!
1780
+ result
1781
+ end
1782
+ .,.,
1783
+
1784
+ module_eval <<'.,.,', 'src/ctype.y', 200
1785
+ def _reduce_80( val, _values, result )
1786
+ result = val[1].each { |d| d.add_declaration_specifiers(val[0]) }
1787
+ result
1788
+ end
1789
+ .,.,
1790
+
1791
+ module_eval <<'.,.,', 'src/ctype.y', 207
1792
+ def _reduce_81( val, _values, result )
1793
+ result = CType::Type.new()
1794
+ result.add_declaration_specifiers(val[0])
1795
+ result = [result]
1796
+ result
1797
+ end
1798
+ .,.,
1799
+
1800
+ module_eval <<'.,.,', 'src/ctype.y', 210
1801
+ def _reduce_82( val, _values, result )
1802
+ result = val[0,1]
1803
+ result
1804
+ end
1805
+ .,.,
1806
+
1807
+ module_eval <<'.,.,', 'src/ctype.y', 211
1808
+ def _reduce_83( val, _values, result )
1809
+ result = val[0] << val[2]
1810
+ result
1811
+ end
1812
+ .,.,
1813
+
1814
+ # reduce 84 omitted
1815
+
1816
+ # reduce 85 omitted
1817
+
1818
+ # reduce 86 omitted
1819
+
1820
+ module_eval <<'.,.,', 'src/ctype.y', 223
1821
+ def _reduce_87( val, _values, result )
1822
+ result = val[0,3].join(' ')
1823
+ result
1824
+ end
1825
+ .,.,
1826
+
1827
+ module_eval <<'.,.,', 'src/ctype.y', 224
1828
+ def _reduce_88( val, _values, result )
1829
+ result = val[0,4].join(' ')
1830
+ result
1831
+ end
1832
+ .,.,
1833
+
1834
+ # reduce 89 omitted
1835
+
1836
+ module_eval <<'.,.,', 'src/ctype.y', 229
1837
+ def _reduce_90( val, _values, result )
1838
+ result = val[0,3].join(' ')
1839
+ result
1840
+ end
1841
+ .,.,
1842
+
1843
+ # reduce 91 omitted
1844
+
1845
+ # reduce 92 omitted
1846
+
1847
+ module_eval <<'.,.,', 'src/ctype.y', 236
1848
+ def _reduce_93( val, _values, result )
1849
+ result = val[0,3].join(' ')
1850
+ result
1851
+ end
1852
+ .,.,
1853
+
1854
+ # reduce 94 omitted
1855
+
1856
+ # reduce 95 omitted
1857
+
1858
+ # reduce 96 omitted
1859
+
1860
+ # reduce 97 omitted
1861
+
1862
+ # reduce 98 omitted
1863
+
1864
+ # reduce 99 omitted
1865
+
1866
+ # reduce 100 omitted
1867
+
1868
+ # reduce 101 omitted
1869
+
1870
+ # reduce 102 omitted
1871
+
1872
+ # reduce 103 omitted
1873
+
1874
+ # reduce 104 omitted
1875
+
1876
+ module_eval <<'.,.,', 'src/ctype.y', 256
1877
+ def _reduce_105( val, _values, result )
1878
+ result = val[0,1]
1879
+ result
1880
+ end
1881
+ .,.,
1882
+
1883
+ module_eval <<'.,.,', 'src/ctype.y', 258
1884
+ def _reduce_106( val, _values, result )
1885
+ result = val[1]; result.insert(0,val[0])
1886
+ result
1887
+ end
1888
+ .,.,
1889
+
1890
+ module_eval <<'.,.,', 'src/ctype.y', 260
1891
+ def _reduce_107( val, _values, result )
1892
+ result = val[1]; result.last.add_qualifier(val[0])
1893
+ result
1894
+ end
1895
+ .,.,
1896
+
1897
+ module_eval <<'.,.,', 'src/ctype.y', 265
1898
+ def _reduce_108( val, _values, result )
1899
+ result = CType::Primitive.new(val[0])
1900
+ result
1901
+ end
1902
+ .,.,
1903
+
1904
+ module_eval <<'.,.,', 'src/ctype.y', 266
1905
+ def _reduce_109( val, _values, result )
1906
+ result = val[1].insert(val[0])
1907
+ result
1908
+ end
1909
+ .,.,
1910
+
1911
+ module_eval <<'.,.,', 'src/ctype.y', 271
1912
+ def _reduce_110( val, _values, result )
1913
+ result = CType::Base.new(val[0])
1914
+ result
1915
+ end
1916
+ .,.,
1917
+
1918
+ module_eval <<'.,.,', 'src/ctype.y', 272
1919
+ def _reduce_111( val, _values, result )
1920
+ result = CType::Base.new(val[0])
1921
+ result
1922
+ end
1923
+ .,.,
1924
+
1925
+ module_eval <<'.,.,', 'src/ctype.y', 273
1926
+ def _reduce_112( val, _values, result )
1927
+ result = CType::Base.new(val[0])
1928
+ result
1929
+ end
1930
+ .,.,
1931
+
1932
+ module_eval <<'.,.,', 'src/ctype.y', 274
1933
+ def _reduce_113( val, _values, result )
1934
+ result = CType::Base.new(val[0])
1935
+ result
1936
+ end
1937
+ .,.,
1938
+
1939
+ # reduce 114 omitted
1940
+
1941
+ module_eval <<'.,.,', 'src/ctype.y', 279
1942
+ def _reduce_115( val, _values, result )
1943
+ result = val[0].identifier
1944
+ result
1945
+ end
1946
+ .,.,
1947
+
1948
+ module_eval <<'.,.,', 'src/ctype.y', 284
1949
+ def _reduce_116( val, _values, result )
1950
+ result = CType::StructUnion.get(val[0], val[1], val[3])
1951
+ result
1952
+ end
1953
+ .,.,
1954
+
1955
+ module_eval <<'.,.,', 'src/ctype.y', 286
1956
+ def _reduce_117( val, _values, result )
1957
+ result = CType::StructUnion.get(val[0], nil, val[2])
1958
+ result
1959
+ end
1960
+ .,.,
1961
+
1962
+ module_eval <<'.,.,', 'src/ctype.y', 288
1963
+ def _reduce_118( val, _values, result )
1964
+ result = CType::StructUnion.get(val[0], val[1])
1965
+ result
1966
+ end
1967
+ .,.,
1968
+
1969
+ module_eval <<'.,.,', 'src/ctype.y', 293
1970
+ def _reduce_119( val, _values, result )
1971
+ result = val[0,1]
1972
+ result
1973
+ end
1974
+ .,.,
1975
+
1976
+ module_eval <<'.,.,', 'src/ctype.y', 294
1977
+ def _reduce_120( val, _values, result )
1978
+ result = val[0] << val[1]
1979
+ result
1980
+ end
1981
+ .,.,
1982
+
1983
+ module_eval <<'.,.,', 'src/ctype.y', 300
1984
+ def _reduce_121( val, _values, result )
1985
+ result = val[1].each { |d| d.base_type = val[0] }
1986
+ result
1987
+ end
1988
+ .,.,
1989
+
1990
+ module_eval <<'.,.,', 'src/ctype.y', 308
1991
+ def _reduce_122( val, _values, result )
1992
+ result = val[0].primitive
1993
+ raise "expecting a union" unless result.class == CType::Union
1994
+ result = result.get_members
1995
+ result
1996
+ end
1997
+ .,.,
1998
+
1999
+ # reduce 123 omitted
2000
+
2001
+ module_eval <<'.,.,', 'src/ctype.y', 314
2002
+ def _reduce_124( val, _values, result )
2003
+ result = val[1]; result.add_qualifier(val[0])
2004
+ result
2005
+ end
2006
+ .,.,
2007
+
2008
+ module_eval <<'.,.,', 'src/ctype.y', 318
2009
+ def _reduce_125( val, _values, result )
2010
+ result = val[0,1]
2011
+ result
2012
+ end
2013
+ .,.,
2014
+
2015
+ module_eval <<'.,.,', 'src/ctype.y', 319
2016
+ def _reduce_126( val, _values, result )
2017
+ result = val[0] << val[2]
2018
+ result
2019
+ end
2020
+ .,.,
2021
+
2022
+ # reduce 127 omitted
2023
+
2024
+ module_eval <<'.,.,', 'src/ctype.y', 325
2025
+ def _reduce_128( val, _values, result )
2026
+ result = CType::Type.new(); result.size = val[1]
2027
+ result
2028
+ end
2029
+ .,.,
2030
+
2031
+ module_eval <<'.,.,', 'src/ctype.y', 326
2032
+ def _reduce_129( val, _values, result )
2033
+ result = val[0]; result.size = val[2]
2034
+ result
2035
+ end
2036
+ .,.,
2037
+
2038
+ module_eval <<'.,.,', 'src/ctype.y', 330
2039
+ def _reduce_130( val, _values, result )
2040
+ result = val[0].first
2041
+ result
2042
+ end
2043
+ .,.,
2044
+
2045
+ module_eval <<'.,.,', 'src/ctype.y', 345
2046
+ def _reduce_131( val, _values, result )
2047
+ # the base type of the last element in the declarator sequence
2048
+ # is not a pointer. that pointer points to a new type which is
2049
+ # appended to the end of the declarator sequence
2050
+ result = val[1]
2051
+ result.last.base_type = val[0]
2052
+ result << val[0].base_type = CType::Type.new()
2053
+ result
2054
+ end
2055
+ .,.,
2056
+
2057
+ # reduce 132 omitted
2058
+
2059
+ # reduce 133 omitted
2060
+
2061
+ module_eval <<'.,.,', 'src/ctype.y', 355
2062
+ def _reduce_134( val, _values, result )
2063
+ result = [CType::Type.new(val[0])]
2064
+ result
2065
+ end
2066
+ .,.,
2067
+
2068
+ module_eval <<'.,.,', 'src/ctype.y', 357
2069
+ def _reduce_135( val, _values, result )
2070
+ result = val[1]
2071
+ result
2072
+ end
2073
+ .,.,
2074
+
2075
+ module_eval <<'.,.,', 'src/ctype.y', 359
2076
+ def _reduce_136( val, _values, result )
2077
+ result = val[0]; result.last.dimensions << val[2]
2078
+ result
2079
+ end
2080
+ .,.,
2081
+
2082
+ module_eval <<'.,.,', 'src/ctype.y', 361
2083
+ def _reduce_137( val, _values, result )
2084
+ result = val[0]; result.last.dimensions << nil
2085
+ result
2086
+ end
2087
+ .,.,
2088
+
2089
+ module_eval <<'.,.,', 'src/ctype.y', 363
2090
+ def _reduce_138( val, _values, result )
2091
+ result = val[0]; result.last.parameters = val[2]
2092
+ result
2093
+ end
2094
+ .,.,
2095
+
2096
+ module_eval <<'.,.,', 'src/ctype.y', 365
2097
+ def _reduce_139( val, _values, result )
2098
+ result = val[0]; result.last.parameters = val[2]
2099
+ result
2100
+ end
2101
+ .,.,
2102
+
2103
+ module_eval <<'.,.,', 'src/ctype.y', 367
2104
+ def _reduce_140( val, _values, result )
2105
+ result = val[0]; result.last.parameters = nil
2106
+ result
2107
+ end
2108
+ .,.,
2109
+
2110
+ module_eval <<'.,.,', 'src/ctype.y', 372
2111
+ def _reduce_141( val, _values, result )
2112
+ result = CType::Enum[val[1]]; result.add(val[3])
2113
+ result
2114
+ end
2115
+ .,.,
2116
+
2117
+ module_eval <<'.,.,', 'src/ctype.y', 374
2118
+ def _reduce_142( val, _values, result )
2119
+ result = CType::Enum[]; result.add(val[2])
2120
+ result
2121
+ end
2122
+ .,.,
2123
+
2124
+ module_eval <<'.,.,', 'src/ctype.y', 376
2125
+ def _reduce_143( val, _values, result )
2126
+ result = CType::Enum[val[1]]
2127
+ result
2128
+ end
2129
+ .,.,
2130
+
2131
+ # reduce 144 omitted
2132
+
2133
+ # reduce 145 omitted
2134
+
2135
+ module_eval <<'.,.,', 'src/ctype.y', 386
2136
+ def _reduce_146( val, _values, result )
2137
+ result = val[0,1]
2138
+ result
2139
+ end
2140
+ .,.,
2141
+
2142
+ module_eval <<'.,.,', 'src/ctype.y', 387
2143
+ def _reduce_147( val, _values, result )
2144
+ result = val[0] << val[2]
2145
+ result
2146
+ end
2147
+ .,.,
2148
+
2149
+ module_eval <<'.,.,', 'src/ctype.y', 391
2150
+ def _reduce_148( val, _values, result )
2151
+ result = val[0,1]
2152
+ result
2153
+ end
2154
+ .,.,
2155
+
2156
+ module_eval <<'.,.,', 'src/ctype.y', 392
2157
+ def _reduce_149( val, _values, result )
2158
+ result = [val[0], val[2]]
2159
+ result
2160
+ end
2161
+ .,.,
2162
+
2163
+ module_eval <<'.,.,', 'src/ctype.y', 397
2164
+ def _reduce_150( val, _values, result )
2165
+ result = CType::Pointer.new(val[1])
2166
+ result
2167
+ end
2168
+ .,.,
2169
+
2170
+ module_eval <<'.,.,', 'src/ctype.y', 399
2171
+ def _reduce_151( val, _values, result )
2172
+ result = CType::Pointer.new()
2173
+ result
2174
+ end
2175
+ .,.,
2176
+
2177
+ module_eval <<'.,.,', 'src/ctype.y', 405
2178
+ def _reduce_152( val, _values, result )
2179
+ result = val[2]
2180
+ result.base_type = CType::Pointer.new(val[1])
2181
+ result
2182
+ end
2183
+ .,.,
2184
+
2185
+ module_eval <<'.,.,', 'src/ctype.y', 410
2186
+ def _reduce_153( val, _values, result )
2187
+ result = val[1]
2188
+ result.base_type = CType::Pointer.new()
2189
+ result
2190
+ end
2191
+ .,.,
2192
+
2193
+ module_eval <<'.,.,', 'src/ctype.y', 414
2194
+ def _reduce_154( val, _values, result )
2195
+ result = val[0,1]
2196
+ result
2197
+ end
2198
+ .,.,
2199
+
2200
+ module_eval <<'.,.,', 'src/ctype.y', 415
2201
+ def _reduce_155( val, _values, result )
2202
+ result = val[0] << val[1]
2203
+ result
2204
+ end
2205
+ .,.,
2206
+
2207
+ module_eval <<'.,.,', 'src/ctype.y', 420
2208
+ def _reduce_156( val, _values, result )
2209
+ result = val[0].finalize
2210
+ result
2211
+ end
2212
+ .,.,
2213
+
2214
+ module_eval <<'.,.,', 'src/ctype.y', 421
2215
+ def _reduce_157( val, _values, result )
2216
+ result = val[0].with_ellipses
2217
+ result
2218
+ end
2219
+ .,.,
2220
+
2221
+ module_eval <<'.,.,', 'src/ctype.y', 426
2222
+ def _reduce_158( val, _values, result )
2223
+ result = CType::List.new << val[0]
2224
+ result
2225
+ end
2226
+ .,.,
2227
+
2228
+ module_eval <<'.,.,', 'src/ctype.y', 427
2229
+ def _reduce_159( val, _values, result )
2230
+ result = val[0] << val[2]
2231
+ result
2232
+ end
2233
+ .,.,
2234
+
2235
+ module_eval <<'.,.,', 'src/ctype.y', 433
2236
+ def _reduce_160( val, _values, result )
2237
+ result = val[1]; result.add_declaration_specifiers(val[0])
2238
+ result
2239
+ end
2240
+ .,.,
2241
+
2242
+ module_eval <<'.,.,', 'src/ctype.y', 435
2243
+ def _reduce_161( val, _values, result )
2244
+ result = val[1]; result.add_declaration_specifiers(val[0])
2245
+ result
2246
+ end
2247
+ .,.,
2248
+
2249
+ module_eval <<'.,.,', 'src/ctype.y', 437
2250
+ def _reduce_162( val, _values, result )
2251
+ result = CType::Type.new(); result.add_declaration_specifiers(val[0])
2252
+ result
2253
+ end
2254
+ .,.,
2255
+
2256
+ module_eval <<'.,.,', 'src/ctype.y', 446
2257
+ def _reduce_163( val, _values, result )
2258
+ result = val[0].finalize
2259
+ result
2260
+ end
2261
+ .,.,
2262
+
2263
+ module_eval <<'.,.,', 'src/ctype.y', 451
2264
+ def _reduce_164( val, _values, result )
2265
+ result = CType::List.new << val[0]
2266
+ result
2267
+ end
2268
+ .,.,
2269
+
2270
+ module_eval <<'.,.,', 'src/ctype.y', 452
2271
+ def _reduce_165( val, _values, result )
2272
+ result = val[0] << val[2]
2273
+ result
2274
+ end
2275
+ .,.,
2276
+
2277
+ module_eval <<'.,.,', 'src/ctype.y', 457
2278
+ def _reduce_166( val, _values, result )
2279
+ result = CType::Type.new(); result.base_type = val[0]
2280
+ result
2281
+ end
2282
+ .,.,
2283
+
2284
+ module_eval <<'.,.,', 'src/ctype.y', 459
2285
+ def _reduce_167( val, _values, result )
2286
+ result = val[1]; result.base_type = val[0]
2287
+ result
2288
+ end
2289
+ .,.,
2290
+
2291
+ module_eval <<'.,.,', 'src/ctype.y', 464
2292
+ def _reduce_168( val, _values, result )
2293
+ result = val[0].first
2294
+ result
2295
+ end
2296
+ .,.,
2297
+
2298
+ module_eval <<'.,.,', 'src/ctype.y', 477
2299
+ def _reduce_169( val, _values, result )
2300
+ # create new type, example: int (*)(const char *, const char *)
2301
+ result = [CType::Type.new(), CType::Type.new()]
2302
+ result.first.base_type = val[0] # pointer to a
2303
+ val[0].base_type = result.last # yet to be determined type
2304
+ result
2305
+ end
2306
+ .,.,
2307
+
2308
+ # reduce 170 omitted
2309
+
2310
+ module_eval <<'.,.,', 'src/ctype.y', 485
2311
+ def _reduce_171( val, _values, result )
2312
+ # see direct_declarator for more info
2313
+ result = val[1]
2314
+ result.last.base_type = val[0]
2315
+ result << val[0].base_type = CType::Type.new()
2316
+ result
2317
+ end
2318
+ .,.,
2319
+
2320
+ module_eval <<'.,.,', 'src/ctype.y', 489
2321
+ def _reduce_172( val, _values, result )
2322
+ result = val[1]
2323
+ result
2324
+ end
2325
+ .,.,
2326
+
2327
+ module_eval <<'.,.,', 'src/ctype.y', 496
2328
+ def _reduce_173( val, _values, result )
2329
+ # create new type
2330
+ result = [CType::Type.new()]
2331
+ result.last.dimensions << nil
2332
+ result
2333
+ end
2334
+ .,.,
2335
+
2336
+ module_eval <<'.,.,', 'src/ctype.y', 502
2337
+ def _reduce_174( val, _values, result )
2338
+ # create new type
2339
+ result = [CType::Type.new()]
2340
+ result.last.dimensions << val[1]
2341
+ result
2342
+ end
2343
+ .,.,
2344
+
2345
+ module_eval <<'.,.,', 'src/ctype.y', 503
2346
+ def _reduce_175( val, _values, result )
2347
+ result = val[0]; result.last.dimensions << nil
2348
+ result
2349
+ end
2350
+ .,.,
2351
+
2352
+ module_eval <<'.,.,', 'src/ctype.y', 505
2353
+ def _reduce_176( val, _values, result )
2354
+ result = val[0]; result.last.dimensions << val[2]
2355
+ result
2356
+ end
2357
+ .,.,
2358
+
2359
+ module_eval <<'.,.,', 'src/ctype.y', 512
2360
+ def _reduce_177( val, _values, result )
2361
+ # create new type
2362
+ result = [CType::Type.new()]
2363
+ result.last.parameters = nil
2364
+ result
2365
+ end
2366
+ .,.,
2367
+
2368
+ module_eval <<'.,.,', 'src/ctype.y', 518
2369
+ def _reduce_178( val, _values, result )
2370
+ # create new type
2371
+ result = [CType::Type.new()]
2372
+ result.last.parameters = val[1]
2373
+ result
2374
+ end
2375
+ .,.,
2376
+
2377
+ module_eval <<'.,.,', 'src/ctype.y', 519
2378
+ def _reduce_179( val, _values, result )
2379
+ result = val[0]; result.last.parameters = nil
2380
+ result
2381
+ end
2382
+ .,.,
2383
+
2384
+ module_eval <<'.,.,', 'src/ctype.y', 521
2385
+ def _reduce_180( val, _values, result )
2386
+ result = val[0]; result.last.parameters = val[2]
2387
+ result
2388
+ end
2389
+ .,.,
2390
+
2391
+ def _reduce_none( val, _values, result )
2392
+ result
2393
+ end
2394
+
2395
+ end # class Parser
2396
+
2397
+ end # module CType