dbc 1.3.0 → 2.0.0

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