dbc 1.1.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.
@@ -0,0 +1,132 @@
1
+ # Copyright (c) 2004 Charles M Mills
2
+ # This document is licenced under The MIT Licence.
3
+ # THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
4
+ # See included LICENCE file.
5
+
6
+ require 'dbc/ctokenizer'
7
+
8
+ def expand_function(conditions, context, body, start_line, line_info)
9
+ raise 'should be a function' unless context.function?
10
+
11
+ context_str = context.short_name
12
+ f_cond = conditions[context_str]
13
+
14
+ pre_text = '' # preconditions
15
+ post_text = '' # postconditions
16
+ inv_text = '' # invariants
17
+ init_text = '' # initializations
18
+ final_text = '' # stuff at the end
19
+
20
+ if f_cond
21
+ # get the conditions
22
+ f_cond.conditions.each do |c|
23
+ case c.type
24
+ when "pre"
25
+ pre_text
26
+ when "post"
27
+ post_text
28
+ else
29
+ raise ParseError, "unexpected condition type: #{c.type} for #{context_str}"
30
+ end << c.to_cexp("\t")
31
+ end
32
+ # set up old values
33
+ f_cond.old_values.each do |identifier, var_used|
34
+ # figures out the type of identifiers such as a->b->c
35
+ begin
36
+ p_type = context.evaluate(identifier)
37
+ rescue CType::EvaluationError
38
+ raise CType::EvaluationError, "#{line_info}: in #{context_str}, #{$!} for #{identifier}"
39
+ end
40
+ init_text << "\t" << p_type.to_init_s(var_used)
41
+ init_text << ' = ' << identifier << ";\n"
42
+ end
43
+ end
44
+
45
+ context.parameters.each do |p|
46
+ inv = conditions[p.short_name]
47
+ if inv then inv.conditions.each do |c|
48
+ raise ParseError, "expecting invariant got #{c.long_type} for #{p.to_s}" \
49
+ unless c.type == "inv"
50
+ exp_str = c.to_cexp("\t", context_str)
51
+ # fix me - this could be better
52
+ sub_str = '\1' + p.identifier + '\2'
53
+ exp_str.gsub!(/(\W)self(\W+)/, sub_str)
54
+ inv_text << exp_str
55
+ end; end
56
+ end
57
+
58
+ void_return_type = (context.base_type.to_s == 'void')
59
+
60
+ unless void_return_type or \
61
+ (post_text.empty? and inv_text.empty?)
62
+ init_text << "\t" << context.base_type.to_init_s('ocl__ret_val') << ";\n"
63
+ end
64
+
65
+ outstr = ''
66
+
67
+ if pre_text.empty? and post_text.empty? and inv_text.empty?
68
+ # we're done early
69
+ body.each do |t|
70
+ outstr << t[1]
71
+ end
72
+ return outstr
73
+ end
74
+
75
+ outstr << "\n" << init_text
76
+
77
+ # output invariants and preconditions
78
+ outstr << "\t/* Invariants: */\n" << inv_text unless inv_text.empty?
79
+ outstr << "\t/* Preconditions: */\n" << pre_text unless pre_text.empty?
80
+
81
+ outstr << "{\n"
82
+ outstr << '#line ' << start_line.to_s << "\n" if line_info
83
+
84
+ # output function body
85
+ if post_text.empty? and inv_text.empty?
86
+ body.each do |t|
87
+ outstr << t[1]
88
+ start_line += CTokenizer.line_count(t[1])
89
+ end
90
+ else
91
+ output_label = false
92
+ body = body.dup
93
+ until body.empty?
94
+ t = body.shift
95
+ start_line += CTokenizer.line_count(t[1])
96
+ # replace return statements with goto statements.
97
+ # if a value is returned this value is saved in ocl__ret_val
98
+ if t[1] == 'return'
99
+ output_label = true
100
+ if void_return_type
101
+ outstr << 'goto ocl__return_here'
102
+ else
103
+ outstr << '{ ocl__ret_val = ( '
104
+ loop do
105
+ raise "syntax error" if body.empty?
106
+ t = body.shift
107
+ start_line += CTokenizer.line_count(t[1])
108
+ break if t[1] == ';'
109
+ outstr << t[1]
110
+ end
111
+ outstr << ' ); goto ocl__return_here; }'
112
+ end
113
+ else # output all other tokens
114
+ outstr << t[1]
115
+ end
116
+ end
117
+ outstr << "\nocl__return_here:\n" if output_label
118
+ # must explicitly return the return value unless return value is void
119
+ final_text << "\treturn ocl__ret_val;\n" unless void_return_type
120
+ end
121
+ outstr << "\n"
122
+
123
+ # output postconditions and invariants
124
+ outstr << "\t/* Postconditions: */\n" << post_text unless post_text.empty?
125
+ outstr << "\t/* Invariants: */\n" << inv_text unless inv_text.empty?
126
+
127
+ outstr << final_text
128
+ outstr << "}\n"
129
+ outstr << '#line ' << start_line.to_s << "\n" if line_info
130
+ outstr
131
+ end
132
+
@@ -0,0 +1,2166 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by racc 1.4.4
4
+ # from racc grammer file "src/ocl.y".
5
+ #
6
+
7
+ require 'racc/parser'
8
+
9
+
10
+
11
+ require 'dbc/ctype'
12
+ require 'dbc/ctokenizer'
13
+ require 'dbc/parseerrorhandler'
14
+
15
+ class String
16
+ def cexp?; true end
17
+ def to_cexp; self end
18
+ end
19
+
20
+ module OCL
21
+
22
+ class Label
23
+
24
+ def initialize(message, file, line)
25
+ @message = message
26
+ if message =~ /\n\r"/
27
+ raise ParseError, "label '#{message}' contains invalid characters: '\\n', '\\r', or '\"'"
28
+ end
29
+ @file = file
30
+ @line = line
31
+ end
32
+
33
+ attr_reader :message, :file, :line
34
+
35
+ def to_s(context = nil)
36
+ if @file
37
+ tag = "\"#{@file}:#{@line}: "
38
+ else
39
+ tag = " __FILE__ \":#{@line}: "
40
+ end
41
+ # C string is open
42
+ tag << context << ': ' if context
43
+ tag << ' ' << @message if @message
44
+ tag << "\"" # close C string
45
+ end
46
+
47
+ end # Label
48
+
49
+ class Range
50
+ def initialize(first, last, exclude_end)
51
+ @first = first
52
+ @last = last
53
+ @exclude_end = (exclude_end == true)
54
+ end
55
+ def exclude_end?
56
+ @exclude_end
57
+ end
58
+ def test_expression(expression)
59
+ if @exclude_end
60
+ s = '<'
61
+ else
62
+ s = '<='
63
+ end
64
+ "(((#{@first}) <= (#{expression})) && ((#{expression}) #{s} (#{@last})))"
65
+ end
66
+ attr_reader :first, :last
67
+ end # Range
68
+
69
+ class IteratorRange
70
+ def initialize(declaration, boundry)
71
+ @declaration = declaration
72
+ @boundry = boundry
73
+ end
74
+ def declare(indent_str)
75
+ str = indent_str.dup
76
+ # initialization of variable
77
+ str << @declaration.to_s << ";\n"
78
+ end
79
+ def open(indent_str)
80
+ identifier = @declaration.identifier
81
+ str = ''
82
+ str << indent_str << "for (#{identifier} = #{@boundry.first}; "
83
+ if @boundry.exclude_end?
84
+ str << "#{identifier} < #{@boundry.last}; "
85
+ else
86
+ str << "#{identifier} <= #{@boundry.last}; "
87
+ end
88
+ str << "#{identifier}++) {\n"
89
+ end
90
+ def close(indent_str)
91
+ "#{indent_str}}\n"
92
+ end
93
+ end # IteratorRange
94
+
95
+ class Block
96
+ @@results = 0
97
+ def Block.result
98
+ "__ocl_#{@@results += 1}_"
99
+ end
100
+ def Block.check_condition(condition, result, indent_str = '')
101
+ "#{indent_str}#{result} = (int)(#{condition});\n"
102
+ end
103
+
104
+ def to_s
105
+ raise ParseError, "invalid expression" unless cexp?
106
+ to_cexp
107
+ end
108
+ end # Block
109
+
110
+ class Paren < Block
111
+ def initialize(exp)
112
+ @expression = exp
113
+ end
114
+ def cexp?
115
+ @expression.cexp?
116
+ end
117
+ def to_exp(result, indent_str = '')
118
+ @expression.to_exp(result, indent_str)
119
+ end
120
+ def to_cexp
121
+ "(#{@expression})"
122
+ end
123
+ end # Parens
124
+
125
+ class Implies < Block
126
+ def initialize(condition, implication)
127
+ @condition = condition
128
+ @implication = implication
129
+ end
130
+
131
+ def to_exp(result, indent_str = '')
132
+ str = ''
133
+ # implies statements are true by default
134
+ str << indent_str << "#{result} = 1;\n"
135
+ if @condition.cexp?
136
+ expression = @condition.to_cexp
137
+ else
138
+ expression = Block.result
139
+ str << @condition.to_exp(expression, indent_str)
140
+ end
141
+ # if the expression is true then that implies the condition
142
+ str << indent_str << "if (#{expression}) {\n"
143
+ if @implication.cexp?
144
+ str << check_condition(@implication.to_cexp, result, "\t" << indent_str)
145
+ else
146
+ str << @implication.to_exp(result, "\t" << indent_str)
147
+ end
148
+ str << indent_str << "}\n"
149
+ end
150
+
151
+ def cexp?
152
+ @condition.cexp? and @implication.cexp?
153
+ end
154
+
155
+ def to_cexp
156
+ "#{@condition.to_cexp} ? #{@implication.to_cexp} : 1"
157
+ end
158
+ end # Implies
159
+
160
+ class Binary < Block
161
+ def initialize(exp1, exp2)
162
+ @expression1 = exp1
163
+ @expression2 = exp2
164
+ end
165
+ def cexp?
166
+ @expression1.cexp? and @expression2.cexp?
167
+ end
168
+ def to_cexp
169
+ "(#{@expression1.to_cexp} #{csymbol} #{@expression2.to_cexp})"
170
+ end
171
+ end # Binary
172
+
173
+ class And < Binary
174
+ def to_exp(result, indent_str = '')
175
+ str = ''
176
+ if @expression1.cexp?
177
+ str << Block.check_condition(@expression1.to_cexp, result, indent_str)
178
+ else
179
+ str << @expression1.to_exp(result, indent_str)
180
+ end
181
+ # if expression1 is true we must check condtion
182
+ str << indent_str << "if (#{result}) {\n"
183
+ if @expression2.cexp?
184
+ str << Block.check_condition(@expression2.to_cexp, result, "\t" << indent_str)
185
+ else
186
+ str << @expression2.to_exp(result, "\t" << indent_str)
187
+ end
188
+ str << indent_str << "}\n"
189
+ end
190
+ def csymbol; '&&' end
191
+ end # And
192
+
193
+ class Or < Binary
194
+ def to_exp(result, indent_str = '')
195
+ str = ''
196
+ if @expression1.cexp?
197
+ str << Block.check_condition(@expression1.to_cexp, result, indent_str)
198
+ else
199
+ str << @expression1.to_exp(result, indent_str)
200
+ end
201
+ # if expression1 is true we must check condtion
202
+ str << indent_str << "if (!#{result}) {\n"
203
+ if @expression2.cexp?
204
+ str << Block.check_condition(@expression2.to_cexp, result, "\t" << indent_str)
205
+ else
206
+ str << @expression2.to_exp(result, "\t" << indent_str)
207
+ end
208
+ str << indent_str << "}\n"
209
+ end
210
+ def csymbol; '||' end
211
+ end # Or
212
+
213
+ class Xor < Binary
214
+ def to_exp(result, indent_str = '')
215
+ raise "XOR not implemented yet..."
216
+ end
217
+ end # Xor
218
+
219
+ class Unary < Block
220
+ def initialize(exp)
221
+ @expression = exp
222
+ end
223
+ def cexp?
224
+ @expression.cexp?
225
+ end
226
+ def to_cexp
227
+ "#{csymbol}#{@expression.to_cexp}"
228
+ end
229
+ def to_exp(result, indent_str = '')
230
+ # expresssion should be a block
231
+ str = ''
232
+ str << @expression.to_exp(result, indent_str)
233
+ str << indent_str << "#{result} = #{csymbol}#{result};\n"
234
+ end
235
+ end # Unary
236
+
237
+ class Not < Unary
238
+ def csymbol; '!' end
239
+ end
240
+
241
+ class UMinus < Unary
242
+ def csymbol; '-' end
243
+ end
244
+
245
+ class UPlus < Unary
246
+ def csymbol; '+' end
247
+ end
248
+
249
+ # only allows C expression
250
+ class CUnary < Unary
251
+ def initialize(exp)
252
+ @expression = exp.to_cexp
253
+ end
254
+ def cexp?; true end
255
+ end
256
+
257
+ class SizeOf < Block
258
+ def initialize(exp)
259
+ raise ParseError, "cannot take the size of a condition" unless exp.cexp?
260
+ super
261
+ end
262
+ def to_cexp
263
+ "sizeof(#{expression})"
264
+ end
265
+ end # SizeOf
266
+
267
+ class UAddrs < CUnary
268
+ def initialize(exp)
269
+ raise ParseError, "cannot reference a condition" unless exp.cexp?
270
+ super
271
+ end
272
+ def csymbol; '&' end
273
+ def cexp?; true end
274
+ end
275
+
276
+ class UDeref < CUnary
277
+ def initialize(exp)
278
+ raise ParseError, "cannot dereference a condition" unless exp.cexp?
279
+ super
280
+ end
281
+ def csymbol; '*' end
282
+ def cexp?; true end
283
+ end
284
+
285
+ class IterBlock < Block
286
+ def initialize(iterator, expression)
287
+ @iterator = iterator
288
+ @expression = expression
289
+ end
290
+ def cexp?
291
+ false
292
+ end
293
+ def to_cexp
294
+ raise "cannot convert #{self.class} to C expression"
295
+ end
296
+ def to_exp(result, indent_str = '')
297
+ # if the condition is true for a single element then we mark result
298
+ # as true and break (since the condition must be true for only one element).
299
+ str = ''
300
+ str << self.initialize_iterator(result, indent_str)
301
+ str << indent_str << "{\n"
302
+ indent = "\t" << indent_str # increase indent
303
+ if @expression.cexp?
304
+ check_exp = @expression.to_cexp
305
+ inside_iterator = ''
306
+ else
307
+ check_exp = Block.result
308
+ str << indent << "int #{check_exp} = 0;\n"
309
+ inside_iterator = @expression.to_exp(check_exp, "\t" << indent)
310
+ end
311
+ str << @iterator.declare(indent)
312
+ str << @iterator.open(indent)
313
+ # inside_iterator does checks / calcs necessary for check_exp to be valid
314
+ str << inside_iterator
315
+ str << self.check_iteration(check_exp, result, indent)
316
+ str << @iterator.close(indent)
317
+ str << indent_str << "}\n"
318
+ end
319
+ end # IterBlock
320
+
321
+ class Exists < IterBlock
322
+ def initialize_iterator(result, indent_str)
323
+ '' << indent_str << "#{result} = 0;\n"
324
+ end
325
+
326
+ def check_iteration(expression, result, indent_str)
327
+ str = ''
328
+ str << indent_str << "\tif (#{expression}) {\n"
329
+ str << indent_str << "\t\t#{result} = 1;\n"
330
+ str << indent_str << "\t\tbreak;\n"
331
+ str << indent_str << "\t}\n"
332
+ end
333
+ end # Exists
334
+
335
+ class Forall < IterBlock
336
+ def initialize_iterator(result, indent_str)
337
+ '' << indent_str << "#{result} = 1;\n"
338
+ end
339
+ def check_iteration(expression, result, indent_str)
340
+ str = ''
341
+ str << indent_str << "\tif (!(#{expression})) {\n"
342
+ str << indent_str << "\t\t#{result} = 0;\n"
343
+ str << indent_str << "\t\tbreak;\n"
344
+ str << indent_str << "\t}\n"
345
+ end
346
+ end # Forall
347
+
348
+ # Needs to be able to deal with old values!
349
+ class Condition
350
+ DEFAULT_ERROR_FUNCTION = 'dbc_error'.freeze
351
+
352
+ @@mappings = {
353
+ 'pre' => 'precondition',
354
+ 'post' => 'postcondition',
355
+ 'inv' => 'invariant'
356
+ }.freeze
357
+
358
+ def initialize(type, label)
359
+ @old_values = nil
360
+ @type = type
361
+ raise "invalid condition type #{type}" unless @type
362
+ @label = label
363
+ @error_function = DEFAULT_ERROR_FUNCTION
364
+ end
365
+
366
+ def condition=(expression)
367
+ raise "condition already set" if @condition
368
+ @condition = expression
369
+ end
370
+
371
+ attr_accessor :error_function
372
+ attr_reader :type, :label, :old_values
373
+
374
+ def long_type
375
+ @@mappings[@type]
376
+ end
377
+
378
+ def to_cexp(indent='', context=nil)
379
+ raise "condition not set" unless @condition
380
+
381
+ error_tag = "#{@label.to_s(context)} \"#{long_type} failed\""
382
+
383
+ str = ''
384
+ str << indent << "{\n"
385
+ if @condition.cexp?
386
+ result = @condition.to_cexp
387
+ else
388
+ result = "__ocl_result_"
389
+ str << indent << "\tint #{result};\n"
390
+ str << @condition.to_exp(result, "\t" << indent)
391
+ end
392
+ str << abort_condition(error_tag, result, "\t" << indent)
393
+ str << indent << "}\n"
394
+ end
395
+
396
+ def abort_condition(error_info, result, indent_str='')
397
+ str = ''
398
+ str << indent_str << "if (!(#{result})) {\n"
399
+ str << indent_str << "\t#{@error_function}(#{error_info});\n"
400
+ str << indent_str << "}\n"
401
+ end
402
+
403
+ def to_s
404
+ "#{@type}:"
405
+ end
406
+
407
+ end # Condition
408
+
409
+ end # module OCL
410
+
411
+
412
+ module OCL
413
+
414
+ class Parser < Racc::Parser
415
+
416
+ module_eval <<'..end src/ocl.y modeval..id980a140244', 'src/ocl.y', 849
417
+
418
+ def Parser.reserved_word?(str)
419
+ (str =~ /\A(?:context|forall|exists|in|and|or|implies|not|xor)\Z/o) != nil
420
+ end
421
+
422
+ def initialize(str, file, line)
423
+ @line = line
424
+ @file = file
425
+
426
+ @old_values = []
427
+ @context = nil
428
+ begin
429
+ get_tokens(str)
430
+ @conditions = do_parse
431
+ rescue ParseError
432
+ CTokenizer.error(@file, @line, $!)
433
+ end
434
+ @q = nil # done with tokens
435
+ end
436
+
437
+ attr_reader :file, :line, :old_values, :conditions, :context
438
+
439
+ def context=(val)
440
+ raise "context already set" if @context
441
+ @context = val
442
+ end
443
+
444
+ protected
445
+ include ParseErrorHandler
446
+
447
+ def add_old(identifier)
448
+ # reuse variables if possible
449
+ id_var = @old_values.find do |pair|
450
+ pair[0] == identifier
451
+ end
452
+ if id_var
453
+ var_used = id_var[1]
454
+ else
455
+ var_used = "ocl__old_value#{@old_values.length}"
456
+ @old_values.push [identifier, var_used]
457
+ end
458
+ var_used
459
+ end
460
+
461
+ def get_tokens(str)
462
+ @q = []
463
+ line = @line
464
+ until str.empty?
465
+ case str
466
+ when /\A(@)[ \t]*(pre)/o
467
+ @q.push ['@pre', '@pre']
468
+ str = $'
469
+ when /\A(inv|pre|post)(?:[ \t]+([^:]+))?[ \t]*:/o
470
+ @q.push [:END_OF_STATEMENT, ''] unless @q.empty?
471
+ @q.push [$1, $1]
472
+ @q.push [:LABEL, Label.new($2, @file, line)]
473
+ str = $'
474
+ when /\A\.\.\.?/
475
+ @q.push [$&, $&]
476
+ str = $'
477
+ else
478
+ # get C token
479
+ t, str = CTokenizer.split_token(str)
480
+ line += CTokenizer.line_count(t[1])
481
+ case t[0]
482
+ when :SYMBOL
483
+ t = [t[1], t[1]]
484
+ when :IDENTIFIER
485
+ if CTokenizer::CLexer.reserved_word?(t[1]) or \
486
+ Parser.reserved_word?(t[1])
487
+ t = [t[1], t[1]].freeze
488
+ elsif tdef = CType[t[1]]
489
+ t = [:TYPEDEF_NAME, tdef]
490
+ end
491
+ when :COMMENT
492
+ raise ParseError, "comment embedded inside a comment"
493
+ when :SPACE
494
+ next # skip
495
+ end
496
+ @q.push t
497
+ end
498
+ end # until
499
+ @q.push [:END_OF_STATEMENT, false]
500
+ @q.push [false, false]
501
+ end
502
+
503
+ def next_token
504
+ t = @q.shift
505
+ while t and t[0] == :NEWLINE
506
+ @line += 1
507
+ t = @q.shift
508
+ end
509
+ t
510
+ end
511
+
512
+ ..end src/ocl.y modeval..id980a140244
513
+
514
+ ##### racc 1.4.4 generates ###
515
+
516
+ racc_reduce_table = [
517
+ 0, 0, :racc_error,
518
+ 1, 69, :_reduce_none,
519
+ 1, 70, :_reduce_none,
520
+ 2, 70, :_reduce_3,
521
+ 1, 70, :_reduce_4,
522
+ 1, 71, :_reduce_5,
523
+ 2, 71, :_reduce_6,
524
+ 3, 72, :_reduce_7,
525
+ 1, 74, :_reduce_none,
526
+ 1, 74, :_reduce_none,
527
+ 3, 73, :_reduce_10,
528
+ 2, 77, :_reduce_11,
529
+ 1, 79, :_reduce_none,
530
+ 1, 79, :_reduce_none,
531
+ 1, 79, :_reduce_none,
532
+ 1, 80, :_reduce_none,
533
+ 1, 80, :_reduce_none,
534
+ 1, 80, :_reduce_none,
535
+ 1, 80, :_reduce_none,
536
+ 1, 80, :_reduce_none,
537
+ 3, 80, :_reduce_20,
538
+ 1, 76, :_reduce_none,
539
+ 1, 76, :_reduce_22,
540
+ 1, 76, :_reduce_none,
541
+ 1, 76, :_reduce_none,
542
+ 1, 81, :_reduce_none,
543
+ 4, 81, :_reduce_26,
544
+ 4, 81, :_reduce_27,
545
+ 3, 81, :_reduce_28,
546
+ 3, 81, :_reduce_29,
547
+ 3, 81, :_reduce_30,
548
+ 1, 83, :_reduce_none,
549
+ 2, 83, :_reduce_32,
550
+ 1, 82, :_reduce_none,
551
+ 3, 82, :_reduce_34,
552
+ 1, 84, :_reduce_none,
553
+ 1, 84, :_reduce_none,
554
+ 1, 86, :_reduce_none,
555
+ 2, 86, :_reduce_38,
556
+ 2, 86, :_reduce_39,
557
+ 2, 86, :_reduce_40,
558
+ 2, 86, :_reduce_41,
559
+ 2, 86, :_reduce_42,
560
+ 2, 86, :_reduce_43,
561
+ 4, 86, :_reduce_44,
562
+ 6, 86, :_reduce_45,
563
+ 6, 86, :_reduce_46,
564
+ 1, 87, :_reduce_none,
565
+ 4, 87, :_reduce_48,
566
+ 1, 89, :_reduce_none,
567
+ 3, 89, :_reduce_50,
568
+ 3, 89, :_reduce_51,
569
+ 3, 89, :_reduce_52,
570
+ 1, 90, :_reduce_none,
571
+ 3, 90, :_reduce_54,
572
+ 3, 90, :_reduce_55,
573
+ 1, 91, :_reduce_none,
574
+ 3, 91, :_reduce_57,
575
+ 1, 93, :_reduce_none,
576
+ 3, 93, :_reduce_59,
577
+ 3, 93, :_reduce_60,
578
+ 3, 93, :_reduce_61,
579
+ 3, 93, :_reduce_62,
580
+ 3, 93, :_reduce_63,
581
+ 3, 93, :_reduce_64,
582
+ 1, 94, :_reduce_none,
583
+ 3, 94, :_reduce_66,
584
+ 1, 95, :_reduce_none,
585
+ 3, 95, :_reduce_68,
586
+ 1, 96, :_reduce_none,
587
+ 3, 96, :_reduce_70,
588
+ 1, 78, :_reduce_none,
589
+ 3, 78, :_reduce_72,
590
+ 3, 88, :_reduce_73,
591
+ 3, 92, :_reduce_74,
592
+ 3, 92, :_reduce_75,
593
+ 1, 97, :_reduce_none,
594
+ 1, 97, :_reduce_none,
595
+ 1, 97, :_reduce_none,
596
+ 1, 97, :_reduce_none,
597
+ 1, 97, :_reduce_none,
598
+ 1, 97, :_reduce_none,
599
+ 1, 97, :_reduce_none,
600
+ 1, 97, :_reduce_none,
601
+ 1, 97, :_reduce_none,
602
+ 1, 98, :_reduce_none,
603
+ 1, 98, :_reduce_none,
604
+ 1, 99, :_reduce_none,
605
+ 1, 99, :_reduce_none,
606
+ 2, 75, :_reduce_89,
607
+ 1, 75, :_reduce_90,
608
+ 1, 102, :_reduce_91,
609
+ 2, 102, :_reduce_92,
610
+ 1, 103, :_reduce_93,
611
+ 1, 103, :_reduce_94,
612
+ 1, 103, :_reduce_95,
613
+ 1, 103, :_reduce_96,
614
+ 1, 106, :_reduce_none,
615
+ 1, 106, :_reduce_none,
616
+ 2, 104, :_reduce_99,
617
+ 1, 100, :_reduce_none,
618
+ 2, 100, :_reduce_101,
619
+ 1, 101, :_reduce_102,
620
+ 2, 107, :_reduce_103,
621
+ 1, 107, :_reduce_none,
622
+ 1, 110, :_reduce_none,
623
+ 1, 109, :_reduce_106,
624
+ 3, 109, :_reduce_107,
625
+ 4, 109, :_reduce_108,
626
+ 3, 109, :_reduce_109,
627
+ 4, 109, :_reduce_110,
628
+ 4, 109, :_reduce_111,
629
+ 3, 109, :_reduce_112,
630
+ 2, 105, :_reduce_113,
631
+ 2, 108, :_reduce_114,
632
+ 1, 108, :_reduce_115,
633
+ 3, 108, :_reduce_116,
634
+ 2, 108, :_reduce_117,
635
+ 1, 113, :_reduce_118,
636
+ 2, 113, :_reduce_119,
637
+ 1, 111, :_reduce_120,
638
+ 3, 111, :_reduce_121,
639
+ 1, 114, :_reduce_122,
640
+ 3, 114, :_reduce_123,
641
+ 2, 115, :_reduce_124,
642
+ 2, 115, :_reduce_125,
643
+ 1, 115, :_reduce_126,
644
+ 1, 112, :_reduce_127,
645
+ 1, 117, :_reduce_128,
646
+ 3, 117, :_reduce_129,
647
+ 1, 85, :_reduce_130,
648
+ 2, 85, :_reduce_131,
649
+ 1, 116, :_reduce_132,
650
+ 1, 118, :_reduce_133,
651
+ 1, 118, :_reduce_none,
652
+ 2, 118, :_reduce_135,
653
+ 3, 119, :_reduce_none,
654
+ 2, 119, :_reduce_137,
655
+ 3, 119, :_reduce_138,
656
+ 3, 119, :_reduce_139,
657
+ 4, 119, :_reduce_140,
658
+ 2, 119, :_reduce_141,
659
+ 3, 119, :_reduce_142,
660
+ 3, 119, :_reduce_143,
661
+ 4, 119, :_reduce_144 ]
662
+
663
+ racc_reduce_n = 145
664
+
665
+ racc_shift_n = 228
666
+
667
+ racc_action_table = [
668
+ 37, 40, 13, 79, 79, 20, 22, 79, 113, 115,
669
+ 79, 167, 113, 81, 82, 166, 117, 98, 222, 158,
670
+ 32, 35, 38, 42, 47, 16, 217, 121, 25, 225,
671
+ 87, 88, 34, 139, 41, 14, 89, 81, 82, 23,
672
+ 27, 108, 31, 80, 113, 70, 49, 52, 53, 55,
673
+ 57, 59, 61, 62, 63, 66, 69, 48, 50, 37,
674
+ 40, 13, 69, 48, 20, 22, 69, 48, 185, 90,
675
+ 79, 79, 184, 86, 154, 168, 169, 79, 152, 32,
676
+ 35, 38, 42, 47, 16, 175, 79, 25, 100, 205,
677
+ 170, 34, 221, 41, 14, 78, 167, 206, 23, 27,
678
+ 166, 31, 113, 113, 70, 49, 52, 53, 55, 57,
679
+ 59, 61, 62, 63, 66, 69, 48, 50, 37, 40,
680
+ 13, 113, 172, 20, 22, 115, 115, 171, 81, 82,
681
+ 185, 154, 209, 117, 184, 152, 152, 99, 32, 35,
682
+ 38, 42, 47, 16, 115, 211, 25, 212, 115, 99,
683
+ 34, 117, 41, 14, 97, 209, 98, 23, 27, 152,
684
+ 31, 81, 82, 70, 49, 52, 53, 55, 57, 59,
685
+ 61, 62, 63, 66, 69, 48, 50, 37, 40, 13,
686
+ 110, 16, 20, 22, 25, 110, 16, 174, 218, 25,
687
+ 41, 14, 75, 76, 77, 41, 14, 32, 35, 38,
688
+ 42, 47, 16, 219, 220, 25, 7, 9, 11, 34,
689
+ 159, 41, 14, 79, 113, 173, 23, 27, 188, 31,
690
+ 191, 101, 70, 49, 52, 53, 55, 57, 59, 61,
691
+ 62, 63, 66, 69, 48, 50, 47, 115, 3, 5,
692
+ 7, 9, 11, 16, 209, 183, 25, 45, 152, 113,
693
+ 44, 226, 41, 14, 7, 9, 11, 70, 49, 52,
694
+ 53, 55, 57, 59, 61, 62, 63, 66, 69, 48,
695
+ 50, 47, 16, 101, nil, 25, 75, 76, 77, 154,
696
+ 183, 41, 14, 152, 93, 94, 95, 96, 91, 92,
697
+ nil, nil, 70, 49, 52, 53, 55, 57, 59, 61,
698
+ 62, 63, 66, 69, 48, 50, 37, 40, 13, nil,
699
+ 16, 20, 22, 25, 7, 9, 11, nil, nil, 41,
700
+ 14, 75, 76, 77, nil, nil, 32, 35, 38, 42,
701
+ nil, 16, nil, nil, 25, nil, nil, nil, 106, nil,
702
+ 41, 14, nil, nil, nil, 23, 27, nil, 31, 37,
703
+ 40, 13, nil, nil, 20, 22, 70, 49, 52, 53,
704
+ 55, 57, 59, 61, 62, nil, nil, nil, nil, 32,
705
+ 35, 38, 42, nil, 16, nil, nil, 25, nil, nil,
706
+ nil, 34, nil, 41, 14, nil, 193, nil, 23, 27,
707
+ nil, 31, 37, 40, 13, nil, nil, 20, 22, 93,
708
+ 94, 95, 96, 91, 92, nil, nil, nil, nil, nil,
709
+ nil, nil, 32, 35, 38, 42, nil, 16, nil, nil,
710
+ 25, nil, nil, nil, 34, nil, 41, 14, nil, nil,
711
+ nil, 23, 27, nil, 31, 37, 40, 13, nil, nil,
712
+ 20, 22, nil, nil, nil, nil, nil, nil, nil, nil,
713
+ nil, nil, nil, nil, nil, 32, 35, 38, 42, nil,
714
+ 16, nil, nil, 25, nil, nil, nil, 34, nil, 41,
715
+ 14, nil, nil, nil, 23, 27, nil, 31, 37, 40,
716
+ 13, nil, nil, 20, 22, nil, nil, nil, nil, nil,
717
+ nil, nil, nil, nil, nil, nil, nil, nil, 32, 35,
718
+ 38, 42, nil, 16, nil, nil, 25, nil, nil, nil,
719
+ 34, nil, 41, 14, nil, nil, nil, 23, 27, nil,
720
+ 31, 37, 40, 13, nil, nil, 20, 22, nil, nil,
721
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
722
+ nil, 32, 35, 38, 42, nil, 16, nil, nil, 25,
723
+ nil, nil, nil, 34, nil, 41, 14, nil, nil, nil,
724
+ 23, 27, nil, 31, 37, 40, 13, nil, nil, 20,
725
+ 22, nil, nil, nil, nil, nil, nil, nil, nil, nil,
726
+ nil, nil, nil, nil, 32, 35, 38, 42, nil, 16,
727
+ nil, nil, 25, nil, nil, nil, 34, nil, 41, 14,
728
+ nil, 177, nil, 23, 27, nil, 31, 37, 40, 13,
729
+ nil, nil, 20, 22, nil, nil, nil, nil, nil, nil,
730
+ nil, nil, nil, nil, nil, nil, nil, 32, 35, 38,
731
+ 42, nil, 16, nil, nil, 25, nil, nil, nil, 34,
732
+ nil, 41, 14, nil, nil, nil, 23, 27, nil, 31,
733
+ 37, 40, 13, nil, nil, 20, 22, nil, nil, nil,
734
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
735
+ 32, 35, 38, 42, nil, 16, nil, nil, 25, nil,
736
+ nil, nil, 34, nil, 41, 14, nil, 214, nil, 23,
737
+ 27, nil, 31, 37, 40, 13, nil, nil, 20, 22,
738
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
739
+ nil, nil, nil, 32, 35, 38, 42, nil, 16, nil,
740
+ nil, 25, nil, nil, nil, 34, nil, 41, 14, nil,
741
+ nil, nil, 23, 27, nil, 31, 37, 40, 13, nil,
742
+ nil, 20, 22, nil, nil, nil, nil, nil, nil, nil,
743
+ nil, nil, nil, nil, nil, nil, 32, 35, 38, 42,
744
+ nil, 16, nil, nil, 25, nil, nil, nil, 34, nil,
745
+ 41, 14, nil, nil, nil, 23, 27, nil, 31, 37,
746
+ 40, 13, nil, nil, 20, 22, nil, nil, nil, nil,
747
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 32,
748
+ 35, 38, 42, nil, 16, nil, nil, 25, nil, nil,
749
+ nil, 34, nil, 41, 14, nil, nil, nil, 23, 27,
750
+ nil, 31, 37, 40, 13, nil, nil, 20, 22, nil,
751
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
752
+ nil, nil, 32, 35, 38, 42, nil, 16, nil, nil,
753
+ 25, nil, nil, nil, 34, nil, 41, 14, nil, nil,
754
+ nil, 23, 27, nil, 31, 37, 40, 13, nil, nil,
755
+ 20, 22, nil, nil, nil, nil, nil, nil, nil, nil,
756
+ nil, nil, nil, nil, nil, 32, 35, 38, 42, nil,
757
+ 16, nil, nil, 25, nil, nil, nil, 34, nil, 41,
758
+ 14, nil, nil, nil, 23, 27, nil, 31, 37, 40,
759
+ 13, nil, nil, 20, 22, nil, nil, nil, nil, nil,
760
+ nil, nil, nil, nil, nil, nil, nil, nil, 32, 35,
761
+ 38, 42, nil, 16, nil, nil, 25, nil, nil, nil,
762
+ 34, nil, 41, 14, nil, nil, nil, 23, 27, nil,
763
+ 31, 37, 40, 13, nil, nil, 20, 22, nil, nil,
764
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
765
+ nil, 32, 35, 38, 42, nil, 16, nil, nil, 25,
766
+ nil, nil, nil, 34, nil, 41, 14, nil, nil, nil,
767
+ 23, 27, nil, 31, 37, 40, 13, nil, nil, 20,
768
+ 22, nil, nil, nil, nil, nil, nil, nil, nil, nil,
769
+ nil, nil, nil, nil, 32, 35, 38, 42, nil, 16,
770
+ nil, nil, 25, nil, nil, nil, 34, nil, 41, 14,
771
+ nil, nil, nil, 23, 27, nil, 31, 37, 40, 13,
772
+ nil, nil, 20, 22, nil, nil, nil, nil, nil, nil,
773
+ nil, nil, nil, nil, nil, nil, nil, 32, 35, 38,
774
+ 42, nil, 16, nil, nil, 25, nil, nil, nil, 34,
775
+ nil, 41, 14, nil, nil, nil, 23, 27, nil, 31,
776
+ 37, 40, 13, nil, nil, 20, 22, nil, nil, nil,
777
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
778
+ 32, 35, 38, 42, nil, 16, nil, nil, 25, nil,
779
+ nil, nil, 34, nil, 41, 14, nil, nil, nil, 23,
780
+ 27, nil, 31, 37, 40, 13, nil, nil, 20, 22,
781
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
782
+ nil, nil, nil, 32, 35, 38, 42, nil, 16, nil,
783
+ nil, 25, nil, nil, nil, 34, nil, 41, 14, nil,
784
+ nil, nil, 23, 27, nil, 31, 37, 40, 13, nil,
785
+ nil, 20, 22, nil, nil, nil, nil, nil, nil, nil,
786
+ nil, nil, nil, nil, nil, nil, 32, 35, 38, 42,
787
+ nil, 16, nil, nil, 25, nil, nil, nil, 34, nil,
788
+ 41, 14, nil, nil, nil, 23, 27, nil, 31, 37,
789
+ 40, 13, nil, nil, 20, 22, nil, nil, nil, nil,
790
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 32,
791
+ 35, 38, 42, nil, 16, nil, nil, 25, nil, nil,
792
+ nil, 34, nil, 41, 14, nil, nil, nil, 23, 27,
793
+ nil, 31, 37, 40, 13, nil, nil, 20, 22, nil,
794
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
795
+ nil, nil, 32, 35, 38, 42, nil, 16, nil, nil,
796
+ 25, nil, nil, nil, 34, nil, 41, 14, nil, nil,
797
+ nil, 23, 27, nil, 31, 37, 40, 13, nil, nil,
798
+ 20, 22, nil, nil, nil, nil, nil, nil, nil, nil,
799
+ nil, nil, nil, nil, nil, 32, 35, 38, 42, nil,
800
+ 16, nil, nil, 25, nil, nil, nil, 34, nil, 41,
801
+ 14, nil, nil, nil, 23, 27, nil, 31, 37, 40,
802
+ 13, nil, nil, 20, 22, nil, nil, nil, nil, nil,
803
+ nil, nil, nil, nil, nil, nil, nil, nil, 32, 35,
804
+ 38, 42, nil, 16, nil, nil, 25, nil, nil, nil,
805
+ 34, nil, 41, 14, nil, nil, nil, 23, 27, nil,
806
+ 31, 37, 40, 13, nil, nil, 20, 22, nil, nil,
807
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
808
+ nil, 32, 35, 38, 42, nil, 16, nil, nil, 25,
809
+ nil, nil, nil, 34, nil, 41, 14, nil, nil, nil,
810
+ 23, 27, nil, 31, 37, 40, 13, nil, nil, 20,
811
+ 22, nil, nil, nil, nil, nil, nil, nil, nil, nil,
812
+ nil, nil, nil, nil, 32, 35, 38, 42, nil, 16,
813
+ nil, nil, 25, nil, nil, nil, 34, nil, 41, 14,
814
+ nil, nil, nil, 23, 27, nil, 31, 37, 40, 13,
815
+ nil, nil, 20, 22, nil, nil, nil, nil, nil, nil,
816
+ nil, nil, nil, nil, nil, nil, nil, 32, 35, 38,
817
+ 42, nil, 16, nil, nil, 25, nil, nil, nil, 34,
818
+ nil, 41, 14, nil, nil, nil, 23, 27, nil, 31,
819
+ 37, 40, 13, nil, nil, 20, 22, nil, nil, nil,
820
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
821
+ 32, 35, 38, 42, nil, 16, nil, nil, 25, nil,
822
+ nil, nil, 34, nil, 41, 14, nil, nil, nil, 23,
823
+ 27, nil, 31, 37, 40, 13, nil, nil, 20, 22,
824
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
825
+ nil, nil, nil, 32, 35, 38, 42, nil, 16, nil,
826
+ nil, 25, nil, nil, nil, 34, nil, 41, 14, nil,
827
+ nil, nil, 23, 27, nil, 31, 37, 40, 13, nil,
828
+ nil, 20, 22, nil, nil, nil, nil, nil, nil, nil,
829
+ nil, nil, nil, nil, nil, nil, 32, 35, 38, 42,
830
+ nil, 16, nil, nil, 25, nil, nil, nil, 34, nil,
831
+ 41, 14, nil, nil, nil, 23, 27, nil, 31, 37,
832
+ 40, 13, nil, nil, 20, 22, nil, nil, nil, nil,
833
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 32,
834
+ 35, 38, 42, nil, 16, nil, nil, 25, nil, nil,
835
+ nil, 34, nil, 41, 14, nil, nil, nil, 23, 27,
836
+ nil, 31, 37, 40, 13, nil, nil, 20, 22, nil,
837
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
838
+ nil, nil, 32, 35, 38, 42, 47, 16, nil, nil,
839
+ 25, nil, nil, nil, 34, nil, 41, 14, nil, nil,
840
+ 47, 23, 27, nil, 31, nil, nil, 70, 49, 52,
841
+ 53, 55, 57, 59, 61, 62, 63, 66, 69, 48,
842
+ 50, 70, 49, 52, 53, 55, 57, 59, 61, 62,
843
+ 63, 66, 69, 48, 50, 47, nil, nil, nil, nil,
844
+ nil, nil, nil, nil, 216, nil, nil, nil, nil, nil,
845
+ nil, nil, nil, nil, nil, nil, 70, 49, 52, 53,
846
+ 55, 57, 59, 61, 62, 63, 66, 69, 48, 50,
847
+ 47, 16, nil, nil, 25, nil, nil, nil, nil, nil,
848
+ 41, 14, nil, nil, nil, 47, nil, nil, nil, nil,
849
+ nil, 70, 49, 52, 53, 55, 57, 59, 61, 62,
850
+ 63, 66, 69, 48, 50, 224, 70, 49, 52, 53,
851
+ 55, 57, 59, 61, 62, 63, 66, 69, 48, 50,
852
+ 47, 16, nil, nil, 25, nil, nil, nil, nil, 197,
853
+ 41, 14, nil, nil, 47, nil, nil, nil, nil, nil,
854
+ nil, 70, 49, 52, 53, 55, 57, 59, 61, 62,
855
+ 63, 66, 69, 48, 50, 70, 49, 52, 53, 55,
856
+ 57, 59, 61, 62, 63, 66, 69, 48, 50 ]
857
+
858
+ racc_action_check = [
859
+ 90, 90, 90, 204, 103, 90, 90, 192, 113, 119,
860
+ 213, 165, 162, 18, 18, 165, 119, 28, 204, 103,
861
+ 90, 90, 90, 90, 90, 90, 192, 64, 90, 213,
862
+ 24, 24, 90, 90, 90, 90, 24, 128, 128, 90,
863
+ 90, 45, 90, 18, 102, 90, 90, 90, 90, 90,
864
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 171,
865
+ 171, 171, 113, 113, 171, 171, 162, 162, 186, 24,
866
+ 176, 132, 186, 24, 102, 128, 128, 202, 102, 171,
867
+ 171, 171, 171, 171, 171, 150, 17, 171, 31, 176,
868
+ 132, 171, 202, 171, 171, 17, 120, 178, 171, 171,
869
+ 120, 171, 179, 117, 171, 171, 171, 171, 171, 171,
870
+ 171, 171, 171, 171, 171, 171, 171, 171, 106, 106,
871
+ 106, 51, 136, 106, 106, 179, 117, 136, 199, 199,
872
+ 156, 157, 179, 117, 156, 157, 179, 30, 106, 106,
873
+ 106, 106, 106, 106, 51, 180, 106, 182, 210, 151,
874
+ 106, 51, 106, 106, 27, 210, 149, 106, 106, 210,
875
+ 106, 200, 200, 106, 106, 106, 106, 106, 106, 106,
876
+ 106, 106, 106, 106, 106, 106, 106, 34, 34, 34,
877
+ 50, 50, 34, 34, 50, 68, 68, 147, 194, 68,
878
+ 50, 50, 130, 130, 130, 68, 68, 34, 34, 34,
879
+ 34, 34, 34, 195, 196, 34, 8, 8, 8, 34,
880
+ 104, 34, 34, 135, 209, 146, 34, 34, 160, 34,
881
+ 164, 127, 34, 34, 34, 34, 34, 34, 34, 34,
882
+ 34, 34, 34, 34, 34, 34, 209, 209, 0, 0,
883
+ 0, 0, 0, 87, 209, 209, 87, 4, 209, 154,
884
+ 2, 215, 87, 87, 10, 10, 10, 209, 209, 209,
885
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
886
+ 209, 154, 88, 33, nil, 88, 15, 15, 15, 154,
887
+ 154, 88, 88, 154, 148, 148, 148, 148, 148, 148,
888
+ nil, nil, 154, 154, 154, 154, 154, 154, 154, 154,
889
+ 154, 154, 154, 154, 154, 154, 40, 40, 40, nil,
890
+ 220, 40, 40, 220, 73, 73, 73, nil, nil, 220,
891
+ 220, 131, 131, 131, nil, nil, 40, 40, 40, 40,
892
+ nil, 40, nil, nil, 40, nil, nil, nil, 40, nil,
893
+ 40, 40, nil, nil, nil, 40, 40, nil, 40, 166,
894
+ 166, 166, nil, nil, 166, 166, 65, 65, 65, 65,
895
+ 65, 65, 65, 65, 65, nil, nil, nil, nil, 166,
896
+ 166, 166, 166, nil, 166, nil, nil, 166, nil, nil,
897
+ nil, 166, nil, 166, 166, nil, 166, nil, 166, 166,
898
+ nil, 166, 20, 20, 20, nil, nil, 20, 20, 26,
899
+ 26, 26, 26, 26, 26, nil, nil, nil, nil, nil,
900
+ nil, nil, 20, 20, 20, 20, nil, 20, nil, nil,
901
+ 20, nil, nil, nil, 20, nil, 20, 20, nil, nil,
902
+ nil, 20, 20, nil, 20, 22, 22, 22, nil, nil,
903
+ 22, 22, nil, nil, nil, nil, nil, nil, nil, nil,
904
+ nil, nil, nil, nil, nil, 22, 22, 22, 22, nil,
905
+ 22, nil, nil, 22, nil, nil, nil, 22, nil, 22,
906
+ 22, nil, nil, nil, 22, 22, nil, 22, 23, 23,
907
+ 23, nil, nil, 23, 23, nil, nil, nil, nil, nil,
908
+ nil, nil, nil, nil, nil, nil, nil, nil, 23, 23,
909
+ 23, 23, nil, 23, nil, nil, 23, nil, nil, nil,
910
+ 23, nil, 23, 23, nil, nil, nil, 23, 23, nil,
911
+ 23, 13, 13, 13, nil, nil, 13, 13, nil, nil,
912
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
913
+ nil, 13, 13, 13, 13, nil, 13, nil, nil, 13,
914
+ nil, nil, nil, 13, nil, 13, 13, nil, nil, nil,
915
+ 13, 13, nil, 13, 152, 152, 152, nil, nil, 152,
916
+ 152, nil, nil, nil, nil, nil, nil, nil, nil, nil,
917
+ nil, nil, nil, nil, 152, 152, 152, 152, nil, 152,
918
+ nil, nil, 152, nil, nil, nil, 152, nil, 152, 152,
919
+ nil, 152, nil, 152, 152, nil, 152, 95, 95, 95,
920
+ nil, nil, 95, 95, nil, nil, nil, nil, nil, nil,
921
+ nil, nil, nil, nil, nil, nil, nil, 95, 95, 95,
922
+ 95, nil, 95, nil, nil, 95, nil, nil, nil, 95,
923
+ nil, 95, 95, nil, nil, nil, 95, 95, nil, 95,
924
+ 184, 184, 184, nil, nil, 184, 184, nil, nil, nil,
925
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
926
+ 184, 184, 184, 184, nil, 184, nil, nil, 184, nil,
927
+ nil, nil, 184, nil, 184, 184, nil, 184, nil, 184,
928
+ 184, nil, 184, 94, 94, 94, nil, nil, 94, 94,
929
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
930
+ nil, nil, nil, 94, 94, 94, 94, nil, 94, nil,
931
+ nil, 94, nil, nil, nil, 94, nil, 94, 94, nil,
932
+ nil, nil, 94, 94, nil, 94, 96, 96, 96, nil,
933
+ nil, 96, 96, nil, nil, nil, nil, nil, nil, nil,
934
+ nil, nil, nil, nil, nil, nil, 96, 96, 96, 96,
935
+ nil, 96, nil, nil, 96, nil, nil, nil, 96, nil,
936
+ 96, 96, nil, nil, nil, 96, 96, nil, 96, 175,
937
+ 175, 175, nil, nil, 175, 175, nil, nil, nil, nil,
938
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 175,
939
+ 175, 175, 175, nil, 175, nil, nil, 175, nil, nil,
940
+ nil, 175, nil, 175, 175, nil, nil, nil, 175, 175,
941
+ nil, 175, 99, 99, 99, nil, nil, 99, 99, nil,
942
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
943
+ nil, nil, 99, 99, 99, 99, nil, 99, nil, nil,
944
+ 99, nil, nil, nil, 99, nil, 99, 99, nil, nil,
945
+ nil, 99, 99, nil, 99, 37, 37, 37, nil, nil,
946
+ 37, 37, nil, nil, nil, nil, nil, nil, nil, nil,
947
+ nil, nil, nil, nil, nil, 37, 37, 37, 37, nil,
948
+ 37, nil, nil, 37, nil, nil, nil, 37, nil, 37,
949
+ 37, nil, nil, nil, 37, 37, nil, 37, 98, 98,
950
+ 98, nil, nil, 98, 98, nil, nil, nil, nil, nil,
951
+ nil, nil, nil, nil, nil, nil, nil, nil, 98, 98,
952
+ 98, 98, nil, 98, nil, nil, 98, nil, nil, nil,
953
+ 98, nil, 98, 98, nil, nil, nil, 98, 98, nil,
954
+ 98, 174, 174, 174, nil, nil, 174, 174, nil, nil,
955
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
956
+ nil, 174, 174, 174, 174, nil, 174, nil, nil, 174,
957
+ nil, nil, nil, 174, nil, 174, 174, nil, nil, nil,
958
+ 174, 174, nil, 174, 93, 93, 93, nil, nil, 93,
959
+ 93, nil, nil, nil, nil, nil, nil, nil, nil, nil,
960
+ nil, nil, nil, nil, 93, 93, 93, 93, nil, 93,
961
+ nil, nil, 93, nil, nil, nil, 93, nil, 93, 93,
962
+ nil, nil, nil, 93, 93, nil, 93, 91, 91, 91,
963
+ nil, nil, 91, 91, nil, nil, nil, nil, nil, nil,
964
+ nil, nil, nil, nil, nil, nil, nil, 91, 91, 91,
965
+ 91, nil, 91, nil, nil, 91, nil, nil, nil, 91,
966
+ nil, 91, 91, nil, nil, nil, 91, 91, nil, 91,
967
+ 168, 168, 168, nil, nil, 168, 168, nil, nil, nil,
968
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
969
+ 168, 168, 168, 168, nil, 168, nil, nil, 168, nil,
970
+ nil, nil, 168, nil, 168, 168, nil, nil, nil, 168,
971
+ 168, nil, 168, 173, 173, 173, nil, nil, 173, 173,
972
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
973
+ nil, nil, nil, 173, 173, 173, 173, nil, 173, nil,
974
+ nil, 173, nil, nil, nil, 173, nil, 173, 173, nil,
975
+ nil, nil, 173, 173, nil, 173, 1, 1, 1, nil,
976
+ nil, 1, 1, nil, nil, nil, nil, nil, nil, nil,
977
+ nil, nil, nil, nil, nil, nil, 1, 1, 1, 1,
978
+ nil, 1, nil, nil, 1, nil, nil, nil, 1, nil,
979
+ 1, 1, nil, nil, nil, 1, 1, nil, 1, 92,
980
+ 92, 92, nil, nil, 92, 92, nil, nil, nil, nil,
981
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 92,
982
+ 92, 92, 92, nil, 92, nil, nil, 92, nil, nil,
983
+ nil, 92, nil, 92, 92, nil, nil, nil, 92, 92,
984
+ nil, 92, 169, 169, 169, nil, nil, 169, 169, nil,
985
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
986
+ nil, nil, 169, 169, 169, 169, nil, 169, nil, nil,
987
+ 169, nil, nil, nil, 169, nil, 169, 169, nil, nil,
988
+ nil, 169, 169, nil, 169, 75, 75, 75, nil, nil,
989
+ 75, 75, nil, nil, nil, nil, nil, nil, nil, nil,
990
+ nil, nil, nil, nil, nil, 75, 75, 75, 75, nil,
991
+ 75, nil, nil, 75, nil, nil, nil, 75, nil, 75,
992
+ 75, nil, nil, nil, 75, 75, nil, 75, 76, 76,
993
+ 76, nil, nil, 76, 76, nil, nil, nil, nil, nil,
994
+ nil, nil, nil, nil, nil, nil, nil, nil, 76, 76,
995
+ 76, 76, nil, 76, nil, nil, 76, nil, nil, nil,
996
+ 76, nil, 76, 76, nil, nil, nil, 76, 76, nil,
997
+ 76, 77, 77, 77, nil, nil, 77, 77, nil, nil,
998
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
999
+ nil, 77, 77, 77, 77, nil, 77, nil, nil, 77,
1000
+ nil, nil, nil, 77, nil, 77, 77, nil, nil, nil,
1001
+ 77, 77, nil, 77, 79, 79, 79, nil, nil, 79,
1002
+ 79, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1003
+ nil, nil, nil, nil, 79, 79, 79, 79, nil, 79,
1004
+ nil, nil, 79, nil, nil, nil, 79, nil, 79, 79,
1005
+ nil, nil, nil, 79, 79, nil, 79, 80, 80, 80,
1006
+ nil, nil, 80, 80, nil, nil, nil, nil, nil, nil,
1007
+ nil, nil, nil, nil, nil, nil, nil, 80, 80, 80,
1008
+ 80, nil, 80, nil, nil, 80, nil, nil, nil, 80,
1009
+ nil, 80, 80, nil, nil, nil, 80, 80, nil, 80,
1010
+ 81, 81, 81, nil, nil, 81, 81, nil, nil, nil,
1011
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1012
+ 81, 81, 81, 81, nil, 81, nil, nil, 81, nil,
1013
+ nil, nil, 81, nil, 81, 81, nil, nil, nil, 81,
1014
+ 81, nil, 81, 82, 82, 82, nil, nil, 82, 82,
1015
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1016
+ nil, nil, nil, 82, 82, 82, 82, nil, 82, nil,
1017
+ nil, 82, nil, nil, nil, 82, nil, 82, 82, nil,
1018
+ nil, nil, 82, 82, nil, 82, 86, 86, 86, nil,
1019
+ nil, 86, 86, nil, nil, nil, nil, nil, nil, nil,
1020
+ nil, nil, nil, nil, nil, nil, 86, 86, 86, 86,
1021
+ nil, 86, nil, nil, 86, nil, nil, nil, 86, nil,
1022
+ 86, 86, nil, nil, nil, 86, 86, nil, 86, 101,
1023
+ 101, 101, nil, nil, 101, 101, nil, nil, nil, nil,
1024
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 101,
1025
+ 101, 101, 101, nil, 101, nil, nil, 101, nil, nil,
1026
+ nil, 101, nil, 101, 101, nil, nil, nil, 101, 101,
1027
+ nil, 101, 159, 159, 159, nil, nil, 159, 159, nil,
1028
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1029
+ nil, nil, 159, 159, 159, 159, 46, 159, nil, nil,
1030
+ 159, nil, nil, nil, 159, nil, 159, 159, nil, nil,
1031
+ 100, 159, 159, nil, 159, nil, nil, 46, 46, 46,
1032
+ 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1033
+ 46, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1034
+ 100, 100, 100, 100, 100, 185, nil, nil, nil, nil,
1035
+ nil, nil, nil, nil, 185, nil, nil, nil, nil, nil,
1036
+ nil, nil, nil, nil, nil, nil, 185, 185, 185, 185,
1037
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1038
+ 5, 5, nil, nil, 5, nil, nil, nil, nil, nil,
1039
+ 5, 5, nil, nil, nil, 211, nil, nil, nil, nil,
1040
+ nil, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1041
+ 5, 5, 5, 5, 5, 211, 211, 211, 211, 211,
1042
+ 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
1043
+ 167, 167, nil, nil, 167, nil, nil, nil, nil, 167,
1044
+ 167, 167, nil, nil, 97, nil, nil, nil, nil, nil,
1045
+ nil, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1046
+ 167, 167, 167, 167, 167, 97, 97, 97, 97, 97,
1047
+ 97, 97, 97, 97, 97, 97, 97, 97, 97 ]
1048
+
1049
+ racc_action_pointer = [
1050
+ 202, 1157, 215, nil, 247, 1757, nil, nil, 168, nil,
1051
+ 216, nil, nil, 512, nil, 265, nil, 59, -1, nil,
1052
+ 383, nil, 426, 469, 28, nil, 381, 113, -7, nil,
1053
+ 112, 47, nil, 247, 168, nil, nil, 856, nil, nil,
1054
+ 297, nil, nil, nil, nil, 41, 1673, nil, nil, nil,
1055
+ 147, 110, nil, nil, nil, nil, nil, nil, nil, nil,
1056
+ nil, nil, nil, nil, -9, 302, nil, nil, 152, nil,
1057
+ nil, nil, nil, 276, nil, 1286, 1329, 1372, nil, 1415,
1058
+ 1458, 1501, 1544, nil, nil, nil, 1587, 209, 238, nil,
1059
+ -9, 1028, 1200, 985, 684, 598, 727, 1821, 899, 813,
1060
+ 1687, 1630, 33, -23, 168, nil, 109, nil, nil, nil,
1061
+ nil, nil, nil, -3, nil, nil, nil, 92, nil, -25,
1062
+ 55, nil, nil, nil, nil, nil, nil, 195, 23, nil,
1063
+ 181, 310, 44, nil, nil, 186, 80, nil, nil, nil,
1064
+ nil, nil, nil, nil, nil, nil, 165, 143, 266, 132,
1065
+ 35, 124, 555, nil, 238, nil, 89, 90, nil, 1673,
1066
+ 176, nil, 1, nil, 178, -30, 340, 1807, 1071, 1243,
1067
+ nil, 50, nil, 1114, 942, 770, 43, nil, 55, 91,
1068
+ 98, nil, 105, nil, 641, 1722, 27, nil, nil, nil,
1069
+ nil, nil, -20, nil, 146, 161, 157, nil, nil, 114,
1070
+ 147, nil, 50, nil, -24, nil, nil, nil, nil, 203,
1071
+ 114, 1772, nil, -17, nil, 209, nil, nil, nil, nil,
1072
+ 276, nil, nil, nil, nil, nil, nil, nil ]
1073
+
1074
+ racc_action_default = [
1075
+ -145, -145, -145, -4, -145, -145, -1, -12, -2, -13,
1076
+ -145, -14, -5, -145, -24, -53, -21, -145, -56, -58,
1077
+ -145, -25, -145, -145, -31, -23, -65, -145, -67, -37,
1078
+ -69, -145, -16, -71, -145, -18, -47, -145, -17, -49,
1079
+ -145, -22, -19, -15, -11, -145, -145, -96, -88, -77,
1080
+ -145, -90, -78, -79, -93, -80, -100, -81, -94, -82,
1081
+ -95, -83, -84, -85, -145, -91, -86, -8, -145, -87,
1082
+ -76, -9, -6, -3, -39, -145, -145, -145, -10, -145,
1083
+ -145, -145, -145, -40, -41, -38, -145, -145, -145, -32,
1084
+ -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1085
+ -145, -145, -130, -145, -145, -42, -145, -43, 228, -101,
1086
+ -98, -113, -97, -115, -106, -105, -89, -145, -102, -145,
1087
+ -104, -7, -92, -99, -50, -51, -52, -72, -145, -57,
1088
+ -54, -55, -145, -29, -30, -35, -145, -33, -36, -28,
1089
+ -63, -64, -59, -61, -60, -62, -145, -145, -66, -68,
1090
+ -145, -70, -145, -131, -145, -132, -134, -133, -20, -145,
1091
+ -145, -118, -114, -117, -145, -103, -145, -145, -145, -145,
1092
+ -26, -145, -27, -145, -145, -145, -145, -137, -145, -126,
1093
+ -120, -122, -145, -141, -145, -145, -135, -48, -44, -119,
1094
+ -116, -107, -145, -109, -145, -145, -127, -112, -128, -74,
1095
+ -75, -34, -145, -73, -145, -138, -142, -124, -125, -145,
1096
+ -133, -145, -136, -145, -139, -145, -143, -108, -110, -111,
1097
+ -145, -45, -46, -123, -121, -140, -144, -129 ]
1098
+
1099
+ racc_goto_table = [
1100
+ 71, 17, 51, 74, 116, 129, 164, 128, 157, 165,
1101
+ 83, 137, 84, 85, 153, 72, 104, 182, 186, 163,
1102
+ 161, 194, 111, 8, 148, 146, 151, 105, 150, 130,
1103
+ 131, 102, 149, 73, 122, 127, 107, 136, 67, 215,
1104
+ 123, 64, 195, 109, 162, 112, 140, 141, 142, 143,
1105
+ 144, 145, 223, 10, 196, 6, 4, nil, nil, nil,
1106
+ 157, nil, nil, 112, nil, 124, 125, 126, 190, 189,
1107
+ nil, 186, 182, nil, nil, nil, nil, nil, nil, nil,
1108
+ 72, nil, 133, 134, nil, 210, 132, 102, 160, nil,
1109
+ 135, 208, 201, nil, 51, 199, 200, 51, 164, 203,
1110
+ 165, 128, nil, 102, nil, nil, nil, nil, nil, nil,
1111
+ nil, nil, nil, nil, nil, 210, nil, nil, nil, nil,
1112
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1113
+ nil, nil, 207, nil, nil, nil, nil, nil, nil, nil,
1114
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 187,
1115
+ nil, nil, 176, nil, nil, nil, nil, nil, nil, nil,
1116
+ nil, nil, 198, nil, nil, nil, 192, nil, 102, nil,
1117
+ nil, 135, nil, 202, nil, 204, nil, nil, nil, nil,
1118
+ nil, nil, nil, nil, 213, nil, nil, nil, nil, nil,
1119
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1120
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1121
+ nil, nil, nil, nil, nil, 227 ]
1122
+
1123
+ racc_goto_check = [
1124
+ 8, 10, 32, 19, 33, 24, 39, 22, 40, 41,
1125
+ 19, 16, 19, 19, 48, 5, 17, 50, 51, 40,
1126
+ 31, 43, 38, 3, 25, 20, 27, 19, 20, 21,
1127
+ 21, 32, 26, 3, 34, 28, 18, 14, 7, 43,
1128
+ 38, 6, 44, 32, 45, 8, 23, 23, 23, 23,
1129
+ 23, 23, 47, 4, 49, 2, 1, nil, nil, nil,
1130
+ 40, nil, nil, 8, nil, 19, 19, 19, 40, 31,
1131
+ nil, 51, 50, nil, nil, nil, nil, nil, nil, nil,
1132
+ 5, nil, 8, 8, nil, 40, 10, 32, 17, nil,
1133
+ 10, 48, 16, nil, 32, 22, 22, 32, 39, 24,
1134
+ 41, 22, nil, 32, nil, nil, nil, nil, nil, nil,
1135
+ nil, nil, nil, nil, nil, 40, nil, nil, nil, nil,
1136
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1137
+ nil, nil, 33, nil, nil, nil, nil, nil, nil, nil,
1138
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 19,
1139
+ nil, nil, 10, nil, nil, nil, nil, nil, nil, nil,
1140
+ nil, nil, 8, nil, nil, nil, 10, nil, 32, nil,
1141
+ nil, 10, nil, 10, nil, 10, nil, nil, nil, nil,
1142
+ nil, nil, nil, nil, 10, nil, nil, nil, nil, nil,
1143
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1144
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1145
+ nil, nil, nil, nil, nil, 8 ]
1146
+
1147
+ racc_goto_pointer = [
1148
+ nil, 56, 55, 23, 53, 7, 36, 33, -5, nil,
1149
+ 0, nil, nil, nil, -53, nil, -79, -18, -4, -10,
1150
+ -72, -52, -73, -45, -75, -74, -67, -75, -44, nil,
1151
+ nil, -93, -3, -47, -31, nil, nil, nil, -28, -111,
1152
+ -94, -110, nil, -146, -125, -69, nil, -159, -88, -113,
1153
+ -137, -139 ]
1154
+
1155
+ racc_goto_default = [
1156
+ nil, nil, nil, nil, nil, 12, nil, 147, 43, 1,
1157
+ 103, 2, 21, 24, nil, 29, nil, 138, 36, 39,
1158
+ nil, 15, 18, 19, nil, 26, 28, 30, 33, 65,
1159
+ 68, 46, 179, nil, 54, 56, 58, 60, nil, 118,
1160
+ 119, 120, 114, 178, nil, nil, 180, 181, nil, nil,
1161
+ 155, 156 ]
1162
+
1163
+ racc_token_table = {
1164
+ false => 0,
1165
+ Object.new => 1,
1166
+ "." => 2,
1167
+ "->" => 3,
1168
+ :UADDRS => 4,
1169
+ :UDEREF => 5,
1170
+ :UPLUS => 6,
1171
+ :UMINUS => 7,
1172
+ "@pre" => 8,
1173
+ "not" => 9,
1174
+ "sizeof" => 10,
1175
+ "*" => 11,
1176
+ "/" => 12,
1177
+ "%" => 13,
1178
+ "+" => 14,
1179
+ "-" => 15,
1180
+ :RANGE => 16,
1181
+ :IN_RANGE => 17,
1182
+ "<" => 18,
1183
+ "<=" => 19,
1184
+ ">" => 20,
1185
+ ">=" => 21,
1186
+ "==" => 22,
1187
+ "!=" => 23,
1188
+ "and" => 24,
1189
+ "or" => 25,
1190
+ "xor" => 26,
1191
+ "implies" => 27,
1192
+ :POINTER => 28,
1193
+ :INTEGER => 29,
1194
+ :FLOATING => 30,
1195
+ :CHARACTER => 31,
1196
+ :STRING => 32,
1197
+ :TYPEDEF_NAME => 33,
1198
+ :IDENTIFIER => 34,
1199
+ :LABEL => 35,
1200
+ :END_OF_STATEMENT => 36,
1201
+ "context" => 37,
1202
+ "inv" => 38,
1203
+ "pre" => 39,
1204
+ "post" => 40,
1205
+ "(" => 41,
1206
+ ")" => 42,
1207
+ "return" => 43,
1208
+ "in" => 44,
1209
+ "[" => 45,
1210
+ "]" => 46,
1211
+ "," => 47,
1212
+ "&" => 48,
1213
+ "forall" => 49,
1214
+ "|" => 50,
1215
+ "exists" => 51,
1216
+ ".." => 52,
1217
+ "..." => 53,
1218
+ "void" => 54,
1219
+ "char" => 55,
1220
+ "short" => 56,
1221
+ "int" => 57,
1222
+ "long" => 58,
1223
+ "float" => 59,
1224
+ "double" => 60,
1225
+ "signed" => 61,
1226
+ "unsigned" => 62,
1227
+ "struct" => 63,
1228
+ "union" => 64,
1229
+ "const" => 65,
1230
+ "volatile" => 66,
1231
+ "enum" => 67 }
1232
+
1233
+ racc_use_result_var = true
1234
+
1235
+ racc_nt_base = 68
1236
+
1237
+ Racc_arg = [
1238
+ racc_action_table,
1239
+ racc_action_check,
1240
+ racc_action_default,
1241
+ racc_action_pointer,
1242
+ racc_goto_table,
1243
+ racc_goto_check,
1244
+ racc_goto_default,
1245
+ racc_goto_pointer,
1246
+ racc_nt_base,
1247
+ racc_reduce_table,
1248
+ racc_token_table,
1249
+ racc_shift_n,
1250
+ racc_reduce_n,
1251
+ racc_use_result_var ]
1252
+
1253
+ Racc_token_to_s_table = [
1254
+ '$end',
1255
+ 'error',
1256
+ '"."',
1257
+ '"->"',
1258
+ 'UADDRS',
1259
+ 'UDEREF',
1260
+ 'UPLUS',
1261
+ 'UMINUS',
1262
+ '"@pre"',
1263
+ '"not"',
1264
+ '"sizeof"',
1265
+ '"*"',
1266
+ '"/"',
1267
+ '"%"',
1268
+ '"+"',
1269
+ '"-"',
1270
+ 'RANGE',
1271
+ 'IN_RANGE',
1272
+ '"<"',
1273
+ '"<="',
1274
+ '">"',
1275
+ '">="',
1276
+ '"=="',
1277
+ '"!="',
1278
+ '"and"',
1279
+ '"or"',
1280
+ '"xor"',
1281
+ '"implies"',
1282
+ 'POINTER',
1283
+ 'INTEGER',
1284
+ 'FLOATING',
1285
+ 'CHARACTER',
1286
+ 'STRING',
1287
+ 'TYPEDEF_NAME',
1288
+ 'IDENTIFIER',
1289
+ 'LABEL',
1290
+ 'END_OF_STATEMENT',
1291
+ '"context"',
1292
+ '"inv"',
1293
+ '"pre"',
1294
+ '"post"',
1295
+ '"("',
1296
+ '")"',
1297
+ '"return"',
1298
+ '"in"',
1299
+ '"["',
1300
+ '"]"',
1301
+ '","',
1302
+ '"&"',
1303
+ '"forall"',
1304
+ '"|"',
1305
+ '"exists"',
1306
+ '".."',
1307
+ '"..."',
1308
+ '"void"',
1309
+ '"char"',
1310
+ '"short"',
1311
+ '"int"',
1312
+ '"long"',
1313
+ '"float"',
1314
+ '"double"',
1315
+ '"signed"',
1316
+ '"unsigned"',
1317
+ '"struct"',
1318
+ '"union"',
1319
+ '"const"',
1320
+ '"volatile"',
1321
+ '"enum"',
1322
+ '$start',
1323
+ 'target',
1324
+ 'statement',
1325
+ 'conditions',
1326
+ 'context',
1327
+ 'dbc_condition',
1328
+ 'context_name',
1329
+ 'declaration',
1330
+ 'identifier',
1331
+ 'dbc_condition_start',
1332
+ 'expression',
1333
+ 'dbc_steriotype',
1334
+ 'primary_expression',
1335
+ 'postfix_expression',
1336
+ 'argument_expression_list',
1337
+ 'at_pre_expression',
1338
+ 'argument_expression',
1339
+ 'type_name',
1340
+ 'unary_expression',
1341
+ 'cast_expression',
1342
+ 'iterator_declaration',
1343
+ 'multiplicative_expression',
1344
+ 'additive_expression',
1345
+ 'in_expression',
1346
+ 'range',
1347
+ 'relational_expression',
1348
+ 'and_expression',
1349
+ 'or_expression',
1350
+ 'xor_expression',
1351
+ 'primitive_type',
1352
+ 'struct_or_union',
1353
+ 'type_qualifier',
1354
+ 'specifier_qualifier_list',
1355
+ 'declarator',
1356
+ 'primitive_type_specifier',
1357
+ 'type_specifier',
1358
+ 'struct_or_union_specifier',
1359
+ 'enum_specifier',
1360
+ 'struct_or_union_or_enum_name',
1361
+ 'declarator_sequence',
1362
+ 'pointer',
1363
+ 'direct_declarator',
1364
+ 'declarator_identifier',
1365
+ 'parameter_type_list',
1366
+ 'identifier_list',
1367
+ 'type_qualifier_list',
1368
+ 'parameter_list',
1369
+ 'parameter_declaration',
1370
+ 'abstract_declarator',
1371
+ 'identifier_sequence',
1372
+ 'abstract_declarator_sequence',
1373
+ 'direct_abstract_declarator']
1374
+
1375
+ Racc_debug_parser = false
1376
+
1377
+ ##### racc system variables end #####
1378
+
1379
+ # reduce 0 omitted
1380
+
1381
+ # reduce 1 omitted
1382
+
1383
+ # reduce 2 omitted
1384
+
1385
+ module_eval <<'.,.,', 'src/ocl.y', 43
1386
+ def _reduce_3( val, _values, result )
1387
+ result = val[1]
1388
+ result
1389
+ end
1390
+ .,.,
1391
+
1392
+ module_eval <<'.,.,', 'src/ocl.y', 44
1393
+ def _reduce_4( val, _values, result )
1394
+ result = []
1395
+ result
1396
+ end
1397
+ .,.,
1398
+
1399
+ module_eval <<'.,.,', 'src/ocl.y', 48
1400
+ def _reduce_5( val, _values, result )
1401
+ result = val[0,1]
1402
+ result
1403
+ end
1404
+ .,.,
1405
+
1406
+ module_eval <<'.,.,', 'src/ocl.y', 49
1407
+ def _reduce_6( val, _values, result )
1408
+ val[0] << val[1]
1409
+ result
1410
+ end
1411
+ .,.,
1412
+
1413
+ module_eval <<'.,.,', 'src/ocl.y', 53
1414
+ def _reduce_7( val, _values, result )
1415
+ result = val[1]; self.context = val[1]
1416
+ result
1417
+ end
1418
+ .,.,
1419
+
1420
+ # reduce 8 omitted
1421
+
1422
+ # reduce 9 omitted
1423
+
1424
+ module_eval <<'.,.,', 'src/ocl.y', 63
1425
+ def _reduce_10( val, _values, result )
1426
+ val[0].condition = val[1]; result = val[0]
1427
+ result
1428
+ end
1429
+ .,.,
1430
+
1431
+ module_eval <<'.,.,', 'src/ocl.y', 67
1432
+ def _reduce_11( val, _values, result )
1433
+ result = Condition.new(val[0], val[1])
1434
+ result
1435
+ end
1436
+ .,.,
1437
+
1438
+ # reduce 12 omitted
1439
+
1440
+ # reduce 13 omitted
1441
+
1442
+ # reduce 14 omitted
1443
+
1444
+ # reduce 15 omitted
1445
+
1446
+ # reduce 16 omitted
1447
+
1448
+ # reduce 17 omitted
1449
+
1450
+ # reduce 18 omitted
1451
+
1452
+ # reduce 19 omitted
1453
+
1454
+ module_eval <<'.,.,', 'src/ocl.y', 82
1455
+ def _reduce_20( val, _values, result )
1456
+ result = Paren.new(val[1])
1457
+ result
1458
+ end
1459
+ .,.,
1460
+
1461
+ # reduce 21 omitted
1462
+
1463
+ module_eval <<'.,.,', 'src/ocl.y', 87
1464
+ def _reduce_22( val, _values, result )
1465
+ result = 'ocl__ret_val'
1466
+ result
1467
+ end
1468
+ .,.,
1469
+
1470
+ # reduce 23 omitted
1471
+
1472
+ # reduce 24 omitted
1473
+
1474
+ # reduce 25 omitted
1475
+
1476
+ module_eval <<'.,.,', 'src/ocl.y', 101
1477
+ def _reduce_26( val, _values, result )
1478
+ result = val[0,4].join
1479
+ result
1480
+ end
1481
+ .,.,
1482
+
1483
+ module_eval <<'.,.,', 'src/ocl.y', 102
1484
+ def _reduce_27( val, _values, result )
1485
+ result = val[0,4].join
1486
+ result
1487
+ end
1488
+ .,.,
1489
+
1490
+ module_eval <<'.,.,', 'src/ocl.y', 103
1491
+ def _reduce_28( val, _values, result )
1492
+ result = val[0,3].join
1493
+ result
1494
+ end
1495
+ .,.,
1496
+
1497
+ module_eval <<'.,.,', 'src/ocl.y', 104
1498
+ def _reduce_29( val, _values, result )
1499
+ result = val[0,3].join
1500
+ result
1501
+ end
1502
+ .,.,
1503
+
1504
+ module_eval <<'.,.,', 'src/ocl.y', 105
1505
+ def _reduce_30( val, _values, result )
1506
+ result = val[0,3].join
1507
+ result
1508
+ end
1509
+ .,.,
1510
+
1511
+ # reduce 31 omitted
1512
+
1513
+ module_eval <<'.,.,', 'src/ocl.y', 110
1514
+ def _reduce_32( val, _values, result )
1515
+ result = add_old(val[0].to_s)
1516
+ result
1517
+ end
1518
+ .,.,
1519
+
1520
+ # reduce 33 omitted
1521
+
1522
+ module_eval <<'.,.,', 'src/ocl.y', 116
1523
+ def _reduce_34( val, _values, result )
1524
+ result = val[0,3].join(' ')
1525
+ result
1526
+ end
1527
+ .,.,
1528
+
1529
+ # reduce 35 omitted
1530
+
1531
+ # reduce 36 omitted
1532
+
1533
+ # reduce 37 omitted
1534
+
1535
+ module_eval <<'.,.,', 'src/ocl.y', 127
1536
+ def _reduce_38( val, _values, result )
1537
+ result = UAddrs.new(val[1])
1538
+ result
1539
+ end
1540
+ .,.,
1541
+
1542
+ module_eval <<'.,.,', 'src/ocl.y', 128
1543
+ def _reduce_39( val, _values, result )
1544
+ result = UDeref.new(val[1])
1545
+ result
1546
+ end
1547
+ .,.,
1548
+
1549
+ module_eval <<'.,.,', 'src/ocl.y', 129
1550
+ def _reduce_40( val, _values, result )
1551
+ result = UPlus.new(val[1])
1552
+ result
1553
+ end
1554
+ .,.,
1555
+
1556
+ module_eval <<'.,.,', 'src/ocl.y', 130
1557
+ def _reduce_41( val, _values, result )
1558
+ result = UMinus.new(val[1])
1559
+ result
1560
+ end
1561
+ .,.,
1562
+
1563
+ module_eval <<'.,.,', 'src/ocl.y', 131
1564
+ def _reduce_42( val, _values, result )
1565
+ result = Not.new(val[1])
1566
+ result
1567
+ end
1568
+ .,.,
1569
+
1570
+ module_eval <<'.,.,', 'src/ocl.y', 132
1571
+ def _reduce_43( val, _values, result )
1572
+ result = SizeOf.new(val[1])
1573
+ result
1574
+ end
1575
+ .,.,
1576
+
1577
+ module_eval <<'.,.,', 'src/ocl.y', 133
1578
+ def _reduce_44( val, _values, result )
1579
+ result = val[0,4].join
1580
+ result
1581
+ end
1582
+ .,.,
1583
+
1584
+ module_eval <<'.,.,', 'src/ocl.y', 135
1585
+ def _reduce_45( val, _values, result )
1586
+ result = Forall.new(val[2], val[4])
1587
+ result
1588
+ end
1589
+ .,.,
1590
+
1591
+ module_eval <<'.,.,', 'src/ocl.y', 137
1592
+ def _reduce_46( val, _values, result )
1593
+ result = Exists.new(val[2], val[4])
1594
+ result
1595
+ end
1596
+ .,.,
1597
+
1598
+ # reduce 47 omitted
1599
+
1600
+ module_eval <<'.,.,', 'src/ocl.y', 142
1601
+ def _reduce_48( val, _values, result )
1602
+ result = val[0,4].join(' ')
1603
+ result
1604
+ end
1605
+ .,.,
1606
+
1607
+ # reduce 49 omitted
1608
+
1609
+ module_eval <<'.,.,', 'src/ocl.y', 147
1610
+ def _reduce_50( val, _values, result )
1611
+ result = val[0,3].join(' ')
1612
+ result
1613
+ end
1614
+ .,.,
1615
+
1616
+ module_eval <<'.,.,', 'src/ocl.y', 148
1617
+ def _reduce_51( val, _values, result )
1618
+ result = val[0,3].join(' ')
1619
+ result
1620
+ end
1621
+ .,.,
1622
+
1623
+ module_eval <<'.,.,', 'src/ocl.y', 149
1624
+ def _reduce_52( val, _values, result )
1625
+ result = val[0,3].join(' ')
1626
+ result
1627
+ end
1628
+ .,.,
1629
+
1630
+ # reduce 53 omitted
1631
+
1632
+ module_eval <<'.,.,', 'src/ocl.y', 154
1633
+ def _reduce_54( val, _values, result )
1634
+ result = val[0,3].join(' ')
1635
+ result
1636
+ end
1637
+ .,.,
1638
+
1639
+ module_eval <<'.,.,', 'src/ocl.y', 155
1640
+ def _reduce_55( val, _values, result )
1641
+ result = val[0,3].join(' ')
1642
+ result
1643
+ end
1644
+ .,.,
1645
+
1646
+ # reduce 56 omitted
1647
+
1648
+ module_eval <<'.,.,', 'src/ocl.y', 161
1649
+ def _reduce_57( val, _values, result )
1650
+ result = val[2].test_expression(val[0])
1651
+ result
1652
+ end
1653
+ .,.,
1654
+
1655
+ # reduce 58 omitted
1656
+
1657
+ module_eval <<'.,.,', 'src/ocl.y', 166
1658
+ def _reduce_59( val, _values, result )
1659
+ result = val[0,3].join(' ')
1660
+ result
1661
+ end
1662
+ .,.,
1663
+
1664
+ module_eval <<'.,.,', 'src/ocl.y', 167
1665
+ def _reduce_60( val, _values, result )
1666
+ result = val[0,3].join(' ')
1667
+ result
1668
+ end
1669
+ .,.,
1670
+
1671
+ module_eval <<'.,.,', 'src/ocl.y', 168
1672
+ def _reduce_61( val, _values, result )
1673
+ result = val[0,3].join(' ')
1674
+ result
1675
+ end
1676
+ .,.,
1677
+
1678
+ module_eval <<'.,.,', 'src/ocl.y', 169
1679
+ def _reduce_62( val, _values, result )
1680
+ result = val[0,3].join(' ')
1681
+ result
1682
+ end
1683
+ .,.,
1684
+
1685
+ module_eval <<'.,.,', 'src/ocl.y', 170
1686
+ def _reduce_63( val, _values, result )
1687
+ result = val[0,3].join(' ')
1688
+ result
1689
+ end
1690
+ .,.,
1691
+
1692
+ module_eval <<'.,.,', 'src/ocl.y', 171
1693
+ def _reduce_64( val, _values, result )
1694
+ result = val[0,3].join(' ')
1695
+ result
1696
+ end
1697
+ .,.,
1698
+
1699
+ # reduce 65 omitted
1700
+
1701
+ module_eval <<'.,.,', 'src/ocl.y', 176
1702
+ def _reduce_66( val, _values, result )
1703
+ result = And.new(val[0], val[2])
1704
+ result
1705
+ end
1706
+ .,.,
1707
+
1708
+ # reduce 67 omitted
1709
+
1710
+ module_eval <<'.,.,', 'src/ocl.y', 181
1711
+ def _reduce_68( val, _values, result )
1712
+ result = Or.new(val[0], val[2])
1713
+ result
1714
+ end
1715
+ .,.,
1716
+
1717
+ # reduce 69 omitted
1718
+
1719
+ module_eval <<'.,.,', 'src/ocl.y', 186
1720
+ def _reduce_70( val, _values, result )
1721
+ result = XOr.new(val[0], val[2])
1722
+ result
1723
+ end
1724
+ .,.,
1725
+
1726
+ # reduce 71 omitted
1727
+
1728
+ module_eval <<'.,.,', 'src/ocl.y', 191
1729
+ def _reduce_72( val, _values, result )
1730
+ result = Implies.new(val[0], val[2])
1731
+ result
1732
+ end
1733
+ .,.,
1734
+
1735
+ module_eval <<'.,.,', 'src/ocl.y', 195
1736
+ def _reduce_73( val, _values, result )
1737
+ result = IteratorRange.new(val[0], val[2])
1738
+ result
1739
+ end
1740
+ .,.,
1741
+
1742
+ module_eval <<'.,.,', 'src/ocl.y', 201
1743
+ def _reduce_74( val, _values, result )
1744
+ result = Range.new(val[0], val[2], false)
1745
+ result
1746
+ end
1747
+ .,.,
1748
+
1749
+ module_eval <<'.,.,', 'src/ocl.y', 203
1750
+ def _reduce_75( val, _values, result )
1751
+ result = Range.new(val[0], val[2], true)
1752
+ result
1753
+ end
1754
+ .,.,
1755
+
1756
+ # reduce 76 omitted
1757
+
1758
+ # reduce 77 omitted
1759
+
1760
+ # reduce 78 omitted
1761
+
1762
+ # reduce 79 omitted
1763
+
1764
+ # reduce 80 omitted
1765
+
1766
+ # reduce 81 omitted
1767
+
1768
+ # reduce 82 omitted
1769
+
1770
+ # reduce 83 omitted
1771
+
1772
+ # reduce 84 omitted
1773
+
1774
+ # reduce 85 omitted
1775
+
1776
+ # reduce 86 omitted
1777
+
1778
+ # reduce 87 omitted
1779
+
1780
+ # reduce 88 omitted
1781
+
1782
+ module_eval <<'.,.,', 'src/ocl.y', 233
1783
+ def _reduce_89( val, _values, result )
1784
+ result = val[1]; result.base_type = val[0]
1785
+ result
1786
+ end
1787
+ .,.,
1788
+
1789
+ module_eval <<'.,.,', 'src/ocl.y', 235
1790
+ def _reduce_90( val, _values, result )
1791
+ result = CType::Type.new(); result.base_type = val[0]
1792
+ result
1793
+ end
1794
+ .,.,
1795
+
1796
+ module_eval <<'.,.,', 'src/ocl.y', 240
1797
+ def _reduce_91( val, _values, result )
1798
+ result = CType::Primitive.new(val[0])
1799
+ result
1800
+ end
1801
+ .,.,
1802
+
1803
+ module_eval <<'.,.,', 'src/ocl.y', 241
1804
+ def _reduce_92( val, _values, result )
1805
+ result = val[1].insert(val[0])
1806
+ result
1807
+ end
1808
+ .,.,
1809
+
1810
+ module_eval <<'.,.,', 'src/ocl.y', 246
1811
+ def _reduce_93( val, _values, result )
1812
+ result = CType::Base.new(val[0])
1813
+ result
1814
+ end
1815
+ .,.,
1816
+
1817
+ module_eval <<'.,.,', 'src/ocl.y', 247
1818
+ def _reduce_94( val, _values, result )
1819
+ result = CType::Base.new(val[0])
1820
+ result
1821
+ end
1822
+ .,.,
1823
+
1824
+ module_eval <<'.,.,', 'src/ocl.y', 248
1825
+ def _reduce_95( val, _values, result )
1826
+ result = CType::Base.new(val[0])
1827
+ result
1828
+ end
1829
+ .,.,
1830
+
1831
+ module_eval <<'.,.,', 'src/ocl.y', 249
1832
+ def _reduce_96( val, _values, result )
1833
+ result = CType::Base.new(val[0])
1834
+ result
1835
+ end
1836
+ .,.,
1837
+
1838
+ # reduce 97 omitted
1839
+
1840
+ # reduce 98 omitted
1841
+
1842
+ module_eval <<'.,.,', 'src/ocl.y', 259
1843
+ def _reduce_99( val, _values, result )
1844
+ result = CType::StructUnion.get(val[0], val[1])
1845
+ result
1846
+ end
1847
+ .,.,
1848
+
1849
+ # reduce 100 omitted
1850
+
1851
+ module_eval <<'.,.,', 'src/ocl.y', 266
1852
+ def _reduce_101( val, _values, result )
1853
+ result = val[1]; result.add_qualifier(val[0])
1854
+ result
1855
+ end
1856
+ .,.,
1857
+
1858
+ module_eval <<'.,.,', 'src/ocl.y', 270
1859
+ def _reduce_102( val, _values, result )
1860
+ result = val[0].first
1861
+ result
1862
+ end
1863
+ .,.,
1864
+
1865
+ module_eval <<'.,.,', 'src/ocl.y', 285
1866
+ def _reduce_103( val, _values, result )
1867
+ # the base type of the last element in the declarator sequence
1868
+ # is not a pointer. that pointer points to a new type which is
1869
+ # appended to the end of the declarator sequence
1870
+ result = val[1]
1871
+ result.last.base_type = val[0]
1872
+ result << val[0].base_type = CType::Type.new()
1873
+ result
1874
+ end
1875
+ .,.,
1876
+
1877
+ # reduce 104 omitted
1878
+
1879
+ # reduce 105 omitted
1880
+
1881
+ module_eval <<'.,.,', 'src/ocl.y', 295
1882
+ def _reduce_106( val, _values, result )
1883
+ result = [CType::Type.new(val[0])]
1884
+ result
1885
+ end
1886
+ .,.,
1887
+
1888
+ module_eval <<'.,.,', 'src/ocl.y', 297
1889
+ def _reduce_107( val, _values, result )
1890
+ result = val[1]
1891
+ result
1892
+ end
1893
+ .,.,
1894
+
1895
+ module_eval <<'.,.,', 'src/ocl.y', 299
1896
+ def _reduce_108( val, _values, result )
1897
+ result = val[0]; result.last.dimensions << val[2]
1898
+ result
1899
+ end
1900
+ .,.,
1901
+
1902
+ module_eval <<'.,.,', 'src/ocl.y', 301
1903
+ def _reduce_109( val, _values, result )
1904
+ result = val[0]; result.last.dimensions << nil
1905
+ result
1906
+ end
1907
+ .,.,
1908
+
1909
+ module_eval <<'.,.,', 'src/ocl.y', 303
1910
+ def _reduce_110( val, _values, result )
1911
+ result = val[0]; result.last.parameters = val[2]
1912
+ result
1913
+ end
1914
+ .,.,
1915
+
1916
+ module_eval <<'.,.,', 'src/ocl.y', 305
1917
+ def _reduce_111( val, _values, result )
1918
+ result = val[0]; result.last.parameters = val[2]
1919
+ result
1920
+ end
1921
+ .,.,
1922
+
1923
+ module_eval <<'.,.,', 'src/ocl.y', 307
1924
+ def _reduce_112( val, _values, result )
1925
+ result = val[0]; result.last.parameters = nil
1926
+ result
1927
+ end
1928
+ .,.,
1929
+
1930
+ module_eval <<'.,.,', 'src/ocl.y', 312
1931
+ def _reduce_113( val, _values, result )
1932
+ result = CType::Enum[val[1]]
1933
+ result
1934
+ end
1935
+ .,.,
1936
+
1937
+ module_eval <<'.,.,', 'src/ocl.y', 317
1938
+ def _reduce_114( val, _values, result )
1939
+ result = CType::Pointer.new(val[1])
1940
+ result
1941
+ end
1942
+ .,.,
1943
+
1944
+ module_eval <<'.,.,', 'src/ocl.y', 319
1945
+ def _reduce_115( val, _values, result )
1946
+ result = CType::Pointer.new()
1947
+ result
1948
+ end
1949
+ .,.,
1950
+
1951
+ module_eval <<'.,.,', 'src/ocl.y', 325
1952
+ def _reduce_116( val, _values, result )
1953
+ result = val[2]
1954
+ result.base_type = CType::Pointer.new(val[1])
1955
+ result
1956
+ end
1957
+ .,.,
1958
+
1959
+ module_eval <<'.,.,', 'src/ocl.y', 330
1960
+ def _reduce_117( val, _values, result )
1961
+ result = val[1]
1962
+ result.base_type = CType::Pointer.new()
1963
+ result
1964
+ end
1965
+ .,.,
1966
+
1967
+ module_eval <<'.,.,', 'src/ocl.y', 334
1968
+ def _reduce_118( val, _values, result )
1969
+ result = val[0,1]
1970
+ result
1971
+ end
1972
+ .,.,
1973
+
1974
+ module_eval <<'.,.,', 'src/ocl.y', 335
1975
+ def _reduce_119( val, _values, result )
1976
+ result = val[0] << val[1]
1977
+ result
1978
+ end
1979
+ .,.,
1980
+
1981
+ module_eval <<'.,.,', 'src/ocl.y', 340
1982
+ def _reduce_120( val, _values, result )
1983
+ result = val[0].finalize
1984
+ result
1985
+ end
1986
+ .,.,
1987
+
1988
+ module_eval <<'.,.,', 'src/ocl.y', 341
1989
+ def _reduce_121( val, _values, result )
1990
+ result = val[0].with_ellipses
1991
+ result
1992
+ end
1993
+ .,.,
1994
+
1995
+ module_eval <<'.,.,', 'src/ocl.y', 346
1996
+ def _reduce_122( val, _values, result )
1997
+ result = CType::List.new << val[0]
1998
+ result
1999
+ end
2000
+ .,.,
2001
+
2002
+ module_eval <<'.,.,', 'src/ocl.y', 347
2003
+ def _reduce_123( val, _values, result )
2004
+ result = val[0] << val[2]
2005
+ result
2006
+ end
2007
+ .,.,
2008
+
2009
+ module_eval <<'.,.,', 'src/ocl.y', 353
2010
+ def _reduce_124( val, _values, result )
2011
+ result = val[1]; result.base_type = val[0]
2012
+ result
2013
+ end
2014
+ .,.,
2015
+
2016
+ module_eval <<'.,.,', 'src/ocl.y', 355
2017
+ def _reduce_125( val, _values, result )
2018
+ result = val[1]; result.base_type = val[0]
2019
+ result
2020
+ end
2021
+ .,.,
2022
+
2023
+ module_eval <<'.,.,', 'src/ocl.y', 357
2024
+ def _reduce_126( val, _values, result )
2025
+ result = CType::Type.new(); result.base_type = val[0]
2026
+ result
2027
+ end
2028
+ .,.,
2029
+
2030
+ module_eval <<'.,.,', 'src/ocl.y', 366
2031
+ def _reduce_127( val, _values, result )
2032
+ result = val[0].finalize
2033
+ result
2034
+ end
2035
+ .,.,
2036
+
2037
+ module_eval <<'.,.,', 'src/ocl.y', 371
2038
+ def _reduce_128( val, _values, result )
2039
+ result = CType::List.new << val[0]
2040
+ result
2041
+ end
2042
+ .,.,
2043
+
2044
+ module_eval <<'.,.,', 'src/ocl.y', 372
2045
+ def _reduce_129( val, _values, result )
2046
+ result = val[0] << val[2]
2047
+ result
2048
+ end
2049
+ .,.,
2050
+
2051
+ module_eval <<'.,.,', 'src/ocl.y', 377
2052
+ def _reduce_130( val, _values, result )
2053
+ result = CType::Type.new(); result.base_type = val[0]
2054
+ result
2055
+ end
2056
+ .,.,
2057
+
2058
+ module_eval <<'.,.,', 'src/ocl.y', 379
2059
+ def _reduce_131( val, _values, result )
2060
+ result = val[1]; result.base_type = val[0]
2061
+ result
2062
+ end
2063
+ .,.,
2064
+
2065
+ module_eval <<'.,.,', 'src/ocl.y', 384
2066
+ def _reduce_132( val, _values, result )
2067
+ result = val[0].first
2068
+ result
2069
+ end
2070
+ .,.,
2071
+
2072
+ module_eval <<'.,.,', 'src/ocl.y', 397
2073
+ def _reduce_133( val, _values, result )
2074
+ # create new type, example: int (*)(const char *, const char *)
2075
+ result = [CType::Type.new(), CType::Type.new()]
2076
+ result.first.base_type = val[0] # pointer to a
2077
+ val[0].base_type = result.last # yet to be determined type
2078
+ result
2079
+ end
2080
+ .,.,
2081
+
2082
+ # reduce 134 omitted
2083
+
2084
+ module_eval <<'.,.,', 'src/ocl.y', 405
2085
+ def _reduce_135( val, _values, result )
2086
+ # see direct_declarator for more info
2087
+ result = val[1]
2088
+ result.last.base_type = val[0]
2089
+ result << val[0].base_type = CType::Type.new()
2090
+ result
2091
+ end
2092
+ .,.,
2093
+
2094
+ # reduce 136 omitted
2095
+
2096
+ module_eval <<'.,.,', 'src/ocl.y', 415
2097
+ def _reduce_137( val, _values, result )
2098
+ # create new type
2099
+ result = [CType::Type.new()]
2100
+ result.last.dimensions << nil
2101
+ result
2102
+ end
2103
+ .,.,
2104
+
2105
+ module_eval <<'.,.,', 'src/ocl.y', 421
2106
+ def _reduce_138( val, _values, result )
2107
+ # create new type
2108
+ result = [CType::Type.new()]
2109
+ result.last.dimensions << val[1]
2110
+ result
2111
+ end
2112
+ .,.,
2113
+
2114
+ module_eval <<'.,.,', 'src/ocl.y', 422
2115
+ def _reduce_139( val, _values, result )
2116
+ result = val[0]; result.last.dimensions << nil
2117
+ result
2118
+ end
2119
+ .,.,
2120
+
2121
+ module_eval <<'.,.,', 'src/ocl.y', 424
2122
+ def _reduce_140( val, _values, result )
2123
+ result = val[0]; result.last.dimensions << val[2]
2124
+ result
2125
+ end
2126
+ .,.,
2127
+
2128
+ module_eval <<'.,.,', 'src/ocl.y', 431
2129
+ def _reduce_141( val, _values, result )
2130
+ # create new type
2131
+ result = [CType::Type.new()]
2132
+ result.last.parameters = nil
2133
+ result
2134
+ end
2135
+ .,.,
2136
+
2137
+ module_eval <<'.,.,', 'src/ocl.y', 437
2138
+ def _reduce_142( val, _values, result )
2139
+ # create new type
2140
+ result = [CType::Type.new()]
2141
+ result.last.parameters = val[2]
2142
+ result
2143
+ end
2144
+ .,.,
2145
+
2146
+ module_eval <<'.,.,', 'src/ocl.y', 438
2147
+ def _reduce_143( val, _values, result )
2148
+ result = val[0]; result.last.parameters = nil
2149
+ result
2150
+ end
2151
+ .,.,
2152
+
2153
+ module_eval <<'.,.,', 'src/ocl.y', 440
2154
+ def _reduce_144( val, _values, result )
2155
+ result = val[0]; result.last.parameters = val[2]
2156
+ result
2157
+ end
2158
+ .,.,
2159
+
2160
+ def _reduce_none( val, _values, result )
2161
+ result
2162
+ end
2163
+
2164
+ end # class Parser
2165
+
2166
+ end # module OCL