cast 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,10 +6,7 @@
6
6
  ### ##################################################################
7
7
  ###
8
8
 
9
- require 'common.rb'
10
-
11
9
  class ParserTest < Test::Unit::TestCase
12
- include CheckAst
13
10
  def check s
14
11
  check_ast(s){|inp| C::Parser.new.parse(inp)}
15
12
  end
@@ -86,8 +83,8 @@ TranslationUnit
86
83
  - Declarator
87
84
  name: "i"
88
85
  EOS
89
- assert_raise(ParseError){C::Parser.new.parse("")}
90
- assert_raise(ParseError){C::Parser.new.parse(";")}
86
+ assert_raise(C::ParseError){C::Parser.new.parse("")}
87
+ assert_raise(C::ParseError){C::Parser.new.parse(";")}
91
88
  end
92
89
 
93
90
  def test_external_declaration
@@ -142,28 +139,28 @@ TranslationUnit
142
139
  name: "main"
143
140
  EOS
144
141
  ## non-function type
145
- assert_raise(ParseError){C::Parser.new.parse("int f {}")}
142
+ assert_raise(C::ParseError){C::Parser.new.parse("int f {}")}
146
143
 
147
144
  ## both prototype and declist
148
- assert_raise(ParseError){C::Parser.new.parse("void f(int argc, int argv) int argc, argv; {}")}
149
- assert_raise(ParseError){C::Parser.new.parse("void f(int argc, argv) int argv; {}")}
145
+ assert_raise(C::ParseError){C::Parser.new.parse("void f(int argc, int argv) int argc, argv; {}")}
146
+ assert_raise(C::ParseError){C::Parser.new.parse("void f(int argc, argv) int argv; {}")}
150
147
 
151
148
  ## bad param name
152
- assert_raise(ParseError){C::Parser.new.parse("void f(argc, argv) int argx, argc; {}")}
153
- assert_raise(ParseError){C::Parser.new.parse("void f(argc, argv) int argx, argc, argv; {}")}
149
+ assert_raise(C::ParseError){C::Parser.new.parse("void f(argc, argv) int argx, argc; {}")}
150
+ assert_raise(C::ParseError){C::Parser.new.parse("void f(argc, argv) int argx, argc, argv; {}")}
154
151
 
155
152
  ## type missing
156
- assert_raise(ParseError){C::Parser.new.parse("void f(argc, argv) int argc; {}")}
153
+ assert_raise(C::ParseError){C::Parser.new.parse("void f(argc, argv) int argc; {}")}
157
154
 
158
155
  ## bad storage
159
- assert_raise(ParseError){C::Parser.new.parse("typedef void f(argc, argv) int argc; {}")}
160
- assert_raise(ParseError){C::Parser.new.parse("auto void f(argc, argv) int argc; {}")}
161
- assert_raise(ParseError){C::Parser.new.parse("register void f(argc, argv) int argc; {}")}
156
+ assert_raise(C::ParseError){C::Parser.new.parse("typedef void f(argc, argv) int argc; {}")}
157
+ assert_raise(C::ParseError){C::Parser.new.parse("auto void f(argc, argv) int argc; {}")}
158
+ assert_raise(C::ParseError){C::Parser.new.parse("register void f(argc, argv) int argc; {}")}
162
159
 
163
160
  ## duplicate storages
164
- assert_raise(ParseError){C::Parser.new.parse("static auto int i;")}
165
- assert_raise(ParseError){C::Parser.new.parse("static extern int i;")}
166
- assert_raise(ParseError){C::Parser.new.parse("typedef register int i;")}
161
+ assert_raise(C::ParseError){C::Parser.new.parse("static auto int i;")}
162
+ assert_raise(C::ParseError){C::Parser.new.parse("static extern int i;")}
163
+ assert_raise(C::ParseError){C::Parser.new.parse("typedef register int i;")}
167
164
 
168
165
  ## `inline' can be repeated
169
166
  assert_nothing_raised{C::Parser.new.parse("inline inline int i() {}")}
@@ -837,9 +834,9 @@ TranslationUnit
837
834
  name: "j"
838
835
  EOS
839
836
  ## duplicate storages
840
- assert_raise(ParseError){C::Parser.new.parse("static auto int ;")}
841
- assert_raise(ParseError){C::Parser.new.parse("static extern int i ;")}
842
- assert_raise(ParseError){C::Parser.new.parse("typedef register int i, j;")}
837
+ assert_raise(C::ParseError){C::Parser.new.parse("static auto int ;")}
838
+ assert_raise(C::ParseError){C::Parser.new.parse("static extern int i ;")}
839
+ assert_raise(C::ParseError){C::Parser.new.parse("typedef register int i, j;")}
843
840
 
844
841
  ## `inline' can be repeated
845
842
  assert_nothing_raised{C::Parser.new.parse("inline inline int f();")}
@@ -1154,15 +1151,15 @@ TranslationUnit
1154
1151
  name: "I"
1155
1152
  EOS
1156
1153
  ## some illegal combos
1157
- assert_raise(ParseError){C::Parser.new.parse("int float;")}
1158
- assert_raise(ParseError){C::Parser.new.parse("struct s {} int;")}
1159
- assert_raise(ParseError){C::Parser.new.parse("_Complex;")}
1160
- assert_raise(ParseError){C::Parser.new.parse("_Complex _Imaginary float;")}
1161
- assert_raise(ParseError){C::Parser.new.parse("short long;")}
1162
- assert_raise(ParseError){C::Parser.new.parse("signed unsigned char;")}
1163
- assert_raise(ParseError){C::Parser.new.parse("int int;")}
1164
- assert_raise(ParseError){C::Parser.new.parse("long char;")}
1165
- assert_raise(ParseError){C::Parser.new.parse("long long long;")}
1154
+ assert_raise(C::ParseError){C::Parser.new.parse("int float;")}
1155
+ assert_raise(C::ParseError){C::Parser.new.parse("struct s {} int;")}
1156
+ assert_raise(C::ParseError){C::Parser.new.parse("_Complex;")}
1157
+ assert_raise(C::ParseError){C::Parser.new.parse("_Complex _Imaginary float;")}
1158
+ assert_raise(C::ParseError){C::Parser.new.parse("short long;")}
1159
+ assert_raise(C::ParseError){C::Parser.new.parse("signed unsigned char;")}
1160
+ assert_raise(C::ParseError){C::Parser.new.parse("int int;")}
1161
+ assert_raise(C::ParseError){C::Parser.new.parse("long char;")}
1162
+ assert_raise(C::ParseError){C::Parser.new.parse("long long long;")}
1166
1163
  end
1167
1164
 
1168
1165
  def test_struct_or_union_specifier
@@ -2152,11 +2149,12 @@ TranslationUnit
2152
2149
  EOS
2153
2150
  end
2154
2151
 
2155
- def test_argument_comma
2152
+ def test_argument_expression_list
2156
2153
  check <<EOS
2157
2154
  void f() {
2158
2155
  x(1);
2159
- x(1, 2);
2156
+ x(int);
2157
+ x(1, int);
2160
2158
  }
2161
2159
  ----
2162
2160
  TranslationUnit
@@ -2174,6 +2172,12 @@ TranslationUnit
2174
2172
  args:
2175
2173
  - IntLiteral
2176
2174
  val: 1
2175
+ - ExpressionStatement
2176
+ expr: Call
2177
+ expr: Variable
2178
+ name: "x"
2179
+ args:
2180
+ - Int
2177
2181
  - ExpressionStatement
2178
2182
  expr: Call
2179
2183
  expr: Variable
@@ -2181,8 +2185,51 @@ TranslationUnit
2181
2185
  args:
2182
2186
  - IntLiteral
2183
2187
  val: 1
2184
- - IntLiteral
2185
- val: 2
2188
+ - Int
2189
+ EOS
2190
+ end
2191
+
2192
+ def test_argument_expression
2193
+ check <<EOS
2194
+ void f() {
2195
+ x(a = 1);
2196
+ x(int*);
2197
+ x(const struct s[]);
2198
+ }
2199
+ ----
2200
+ TranslationUnit
2201
+ entities:
2202
+ - FunctionDef
2203
+ type: Function
2204
+ type: Void
2205
+ name: "f"
2206
+ def: Block
2207
+ stmts:
2208
+ - ExpressionStatement
2209
+ expr: Call
2210
+ expr: Variable
2211
+ name: "x"
2212
+ args:
2213
+ - Assign
2214
+ lval: Variable
2215
+ name: "a"
2216
+ rval: IntLiteral
2217
+ val: 1
2218
+ - ExpressionStatement
2219
+ expr: Call
2220
+ expr: Variable
2221
+ name: "x"
2222
+ args:
2223
+ - Pointer
2224
+ type: Int
2225
+ - ExpressionStatement
2226
+ expr: Call
2227
+ expr: Variable
2228
+ name: "x"
2229
+ args:
2230
+ - Array
2231
+ type: Struct (const)
2232
+ name: "s"
2186
2233
  EOS
2187
2234
  end
2188
2235
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.4
2
+ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: cast
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.1
7
- date: 2005-02-21
6
+ version: 0.1.0
7
+ date: 2006-04-26 00:00:00 +10:00
8
8
  summary: C parser and AST constructor.
9
9
  require_paths:
10
- - lib
11
- email: g_ogata@optushome.com.au
10
+ - lib
11
+ email: george.ogata@gmail.com
12
12
  homepage: http://cast.rubyforge.org
13
13
  rubyforge_project: cast
14
14
  description:
@@ -18,39 +18,51 @@ bindir: bin
18
18
  has_rdoc: false
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
- -
22
- - ">"
23
- - !ruby/object:Gem::Version
24
- version: 0.0.0
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
25
24
  version:
26
25
  platform: ruby
26
+ signing_key:
27
+ cert_chain:
27
28
  authors:
28
- - George Ogata
29
+ - George Ogata
29
30
  files:
30
- - README
31
- - install.rb
32
- - lib/c.tab.rb
33
- - lib/c.y
34
- - lib/c_nodes.rb
35
- - lib/cast.rb
36
- - lib/node.rb
37
- - lib/node_list.rb
38
- - lib/parse.rb
39
- - lib/to_debug.rb
40
- - lib/to_s.rb
41
- - doc/index.html
42
- - test/common.rb
43
- - test/run.rb
44
- - test/test_c_nodes.rb
45
- - test/test_node.rb
46
- - test/test_node_list.rb
47
- - test/test_parse.rb
48
- - test/test_parser.rb
31
+ - README
32
+ - lib/cast
33
+ - lib/cast.rb
34
+ - lib/cast/node.rb
35
+ - lib/cast/c.y
36
+ - lib/cast/c_nodes.rb
37
+ - lib/cast/inspect.rb
38
+ - lib/cast/node_list.rb
39
+ - lib/cast/parse.rb
40
+ - lib/cast/to_s.rb
41
+ - ext/cast_ext.c
42
+ - ext/cast.h
43
+ - ext/extconf.rb
44
+ - ext/parser.c
45
+ - ext/yylex.re
46
+ - doc/index.html
47
+ - test/test_node.rb
48
+ - test/run.rb
49
+ - test/test_c_nodes.rb
50
+ - test/test_node_list.rb
51
+ - test/test_parse.rb
52
+ - test/test_parser.rb
53
+ - ext/yylex.c
54
+ - lib/cast/c.tab.rb
49
55
  test_files:
50
- - test/run.rb
56
+ - test/run.rb
51
57
  rdoc_options: []
58
+
52
59
  extra_rdoc_files: []
60
+
53
61
  executables: []
54
- extensions: []
62
+
63
+ extensions:
64
+ - ext/extconf.rb
55
65
  requirements: []
56
- dependencies: []
66
+
67
+ dependencies: []
68
+
data/install.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'fileutils'
2
- include FileUtils
3
- require 'rbconfig'
4
-
5
- SRC = File.expand_path('lib')
6
- DEST = "#{Config::CONFIG['sitelibdir']}/cast"
7
-
8
- opts = {:verbose => true}
9
- if ARGV[0] == 'remove'
10
- rm_rf DEST, opts
11
- else
12
- rm_rf DEST, opts
13
- cp_r SRC, DEST, opts
14
- end
@@ -1,3433 +0,0 @@
1
- #
2
- # DO NOT MODIFY!!!!
3
- # This file is automatically generated by racc 1.4.4
4
- # from racc grammer file "c.y".
5
- #
6
-
7
- require 'racc/parser'
8
-
9
-
10
-
11
- require 'set'
12
-
13
- #### Error classes
14
- module C
15
- class ParseError < StandardError; end
16
- end
17
-
18
- ### Local variables:
19
- ### mode: ruby
20
- ### end:
21
-
22
- module C
23
-
24
- class Parser < Racc::Parser
25
-
26
- module_eval <<'..end c.y modeval..iddc00389379', 'c.y', 531
27
- ## A.1.9 -- Preprocessing numbers -- skip
28
- ## A.1.8 -- Header names -- skip
29
-
30
- ## A.1.7 -- Puncuators -- we don't bother with {##,#,%:,%:%:} since
31
- ## we don't do preprocessing
32
- @@punctuators = %r'\+\+|-[->]|&&|\|\||\.\.\.|(?:<<|>>|[<>=!*/%+\-&^|])=?|[\[\](){}.~?:;,]'
33
- @@digraphs = %r'<[:%]|[:%]>'
34
-
35
- ## A.1.6 -- String Literals -- simple for us because we don't decode
36
- ## the string (and indeed accept some illegal strings)
37
- @@string_literal = %r'L?"(?:[^\\]|\\.)*?"'m
38
-
39
- ## A.1.5 -- Constants
40
- @@decimal_floating_constant = %r'(?:(?:\d*\.\d+|\d+\.)(?:e[-+]?\d+)?|\d+e[-+]?\d+)[fl]?'i
41
- @@hexadecimal_floating_constant = %r'0x(?:(?:[0-9a-f]*\.[0-9a-f]+|[0-9a-f]+\.)|[0-9a-f]+)p[-+]?\d+[fl]?'i
42
-
43
- @@integer_constant = %r'(?:[1-9][0-9]*|0x[0-9a-f]+|0[0-7]*)(?:ul?l?|ll?u?)?'i
44
- @@floating_constant = %r'#{@@decimal_floating_constant}|#{@@hexadecimal_floating_constant}'
45
- @@enumeration_constant = %r'[a-zA-Z_\\][a-zA-Z_\\0-9]*'
46
- @@character_constant = %r"L?'(?:[^\\]|\\.)+?'"
47
- ## (note that as with string-literals, we accept some illegal
48
- ## character-constants)
49
-
50
- ## A.1.4 -- Universal character names -- skip
51
-
52
- ## A.1.3 -- Identifiers -- skip, since an identifier is lexically
53
- ## identical to an enumeration constant
54
-
55
- ## A.1.2 Keywords
56
- keywords = %w'auto break case char const continue default do
57
- double else enum extern float for goto if inline int long register
58
- restrict return short signed sizeof static struct switch typedef union
59
- unsigned void volatile while _Bool _Complex _Imaginary'
60
- @@keywords = %r"#{keywords.join('|')}"
61
-
62
- def initialize
63
- @type_names = ::Set.new
64
-
65
- @warning_proc = lambda{}
66
- @pos = C::Node::Pos.new(nil, 1, 0)
67
- end
68
- def initialize_copy x
69
- @pos = x.pos.dup
70
- @type_names = x.type_names.dup
71
- end
72
- attr_accessor :pos, :type_names
73
-
74
- def parse str
75
- if str.respond_to? :read
76
- str = str.read
77
- end
78
- @str = str
79
- begin
80
- return do_parse
81
- rescue ParseError => e
82
- e.set_backtrace(caller)
83
- raise
84
- end
85
- end
86
-
87
- ### Obsolete? Todo? What was I thinking?
88
- def on_error error_token_id, error_value, value_stack
89
- if error_value == '$'
90
- parse_error @pos, "unexpected EOF"
91
- else
92
- parse_error(error_value.pos,
93
- "parse error on #{error_value.val.inspect}")
94
- end
95
- end
96
-
97
- private
98
-
99
- class Token
100
- attr_accessor :pos, :val
101
- def initialize pos, val
102
- @pos = pos
103
- @val = val
104
- end
105
- end
106
- def eat str
107
- lines = str.split(/\r\n|[\r\n]/, -1)
108
- if lines.length == 1
109
- @pos.col_num += lines[0].length
110
- else
111
- @pos.line_num += lines.length - 1
112
- @pos.col_num = lines[-1].length
113
- end
114
- end
115
- def next_token
116
- return nil if @str == ''
117
- case @str
118
- when %r'\A\s+'
119
- ## whitespace
120
- eat $&
121
- @str[0...$&.length] = ''
122
- return next_token
123
- when %r'\A/\*.*?\*/'m
124
- ## comment
125
- eat $&
126
- @str[0...$&.length] = ''
127
- return next_token
128
- when %r'\A#{@@keywords}\b'
129
- ## keyword
130
- ret = [$&, $&.to_sym]
131
- when %r'\A#{@@enumeration_constant}'
132
- ## identifier, enumeration_constant, or typedef_name
133
- case
134
- when @type_names.include?($&)
135
- ret = [:TYPE_ID, $&]
136
- else
137
- ret = [:ID, $&]
138
- end
139
- when %r'\A#{@@floating_constant}'
140
- ## floating-constant
141
- ret = [:FLOAT, $&.to_f]
142
- when %r'\A#{@@integer_constant}'
143
- ## integer-constant
144
- ret = [:INT, $&.to_i]
145
- when %r'\A#{@@character_constant}'
146
- ## character constant
147
- ret = [:CHAR, $&[1...-1]]
148
- when %r'\A#{@@string_literal}'
149
- ## string-literal
150
- ret = [:STRING, $&[1...-1]]
151
- when %r'\A#{@@punctuators}'
152
- ## punctuator
153
- ret = [$&, $&]
154
- when %r'\A#{@@digraphs}'
155
- ## digraph
156
- case $&
157
- when '<:'
158
- ret = ['[', '[']
159
- when ':>'
160
- ret = [']', ']']
161
- when '<%'
162
- ret = ['{', '{']
163
- when '%>'
164
- ret = ['}', '}']
165
- else
166
- raise 'bug'
167
- end
168
- else
169
- if @str.length > 40
170
- s = @str[0...37] << '...'
171
- else
172
- s = @str
173
- end
174
- raise ParseError, "#{@pos}: invalid token: #{s.inspect}"
175
- end
176
- ret[1] = Token.new(@pos.dup, ret[1])
177
- eat $&
178
- @str[0...$&.length] = ''
179
- return ret
180
- end
181
-
182
- private
183
-
184
- #### Helper methods
185
-
186
- ## Make a Declaration from the given specs and declarators.
187
- def make_declaration pos, specs, declarators
188
- specs.all?{|x| x.is_a?(Symbol) || x.is_a?(Type)} or raise specs.map{|x| x.class}.inspect
189
- decl = Declaration.new_at(pos, nil, declarators)
190
-
191
- ## set storage class
192
- storage_classes = specs.find_all do |x|
193
- [:typedef, :extern, :static, :auto, :register].include? x
194
- end
195
- ## 6.7.1p2: at most, one storage-class specifier may be given in
196
- ## the declaration specifiers in a declaration
197
- storage_classes.length <= 1 or
198
- begin
199
- if declarators.length == 0
200
- for_name = ''
201
- else
202
- for_name = "for `#{declarators[0].name}'"
203
- end
204
- parse_error pos, "multiple or duplicate storage classes given #{for_name}'"
205
- end
206
- decl.storage = storage_classes[0]
207
-
208
- ## set type (specifiers, qualifiers)
209
- decl.type = make_direct_type(pos, specs)
210
-
211
- ## set function specifiers
212
- decl.inline = specs.include?(:inline)
213
-
214
- ## look for new type names
215
- if decl.typedef?
216
- decl.declarators.each do |d|
217
- if d.name
218
- @type_names << d.name
219
- end
220
- end
221
- end
222
-
223
- return decl
224
- end
225
-
226
- def make_function_def pos, specs, func_declarator, decl_list, defn
227
- add_decl_type(func_declarator, make_direct_type(pos, specs))
228
-
229
- ## get types from decl_list if necessary
230
- function = func_declarator.indirect_type
231
- function.is_a? Function or
232
- parse_error pos, "non function type for function `#{func_declarator.name}'"
233
- params = function.params
234
- if decl_list
235
- params.all?{|p| p.type.nil?} or
236
- parse_error pos, "both prototype and declaration list given for `#{func_declarator.name}'"
237
- decl_list.each do |declaration|
238
- declaration.declarators.each do |declarator|
239
- param = params.find{|p| p.name == declarator.name} or
240
- parse_error pos, "no parameter named #{declarator.name}"
241
- if declarator.indirect_type
242
- param.type = declarator.indirect_type
243
- param.type.direct_type = declaration.type.dup
244
- else
245
- param.type = declaration.type.dup
246
- end
247
- end
248
- end
249
- params.all?{|p| p.type} or
250
- begin
251
- s = params.find_all{|p| p.type.nil?}.map{|p| "`#{p.name}'"}.join(' and ')
252
- parse_error pos, "types missing for parameters #{s}"
253
- end
254
- end
255
-
256
- fd = FunctionDef.new_at(pos,
257
- function.detach,
258
- func_declarator.name,
259
- defn,
260
- :no_prototype => !decl_list.nil?)
261
-
262
- ## set storage class
263
- ## 6.9.1p4: only extern or static allowed
264
- specs.each do |s|
265
- [:typedef, :auto, :register].include?(s) and
266
- "`#{s}' illegal for function"
267
- end
268
- storage_classes = specs.find_all do |s|
269
- s == :extern || s == :static
270
- end
271
- ## 6.7.1p2: at most, one storage-class specifier may be given in
272
- ## the declaration specifiers in a declaration
273
- storage_classes.length <= 1 or
274
- "multiple or duplicate storage classes given for `#{declarator.name}'"
275
- fd.storage = storage_classes[0] if storage_classes[0]
276
-
277
- ## set function specifiers
278
- ## 6.7.4p5 'inline' can be repeated
279
- fd.inline = specs.include?(:inline)
280
-
281
- return fd
282
- end
283
-
284
- ## Make a direct type from the list of type specifiers and type
285
- ## qualifiers.
286
- def make_direct_type pos, specs
287
- specs_order = [:signed, :unsigned, :short, :long, :double, :void,
288
- :char, :int, :float, :_Bool, :_Complex, :_Imaginary]
289
-
290
- type_specs = specs.find_all do |x|
291
- specs_order.include?(x) || !x.is_a?(Symbol)
292
- end
293
- type_specs.sort! do |a, b|
294
- (specs_order.index(a)||100) <=> (specs_order.index(b)||100)
295
- end
296
-
297
- ## set type specifiers
298
- ## 6.7.2p2: the specifier list should be one of these
299
- type =
300
- case type_specs
301
- when [:void]
302
- Void.new
303
- when [:char]
304
- Char.new
305
- when [:signed, :char]
306
- Char.new :signed => true
307
- when [:unsigned, :char]
308
- Char.new :signed => false
309
- when [:short], [:signed, :short], [:short, :int],
310
- [:signed, :short, :int]
311
- Int.new :longness => -1
312
- when [:unsigned, :short], [:unsigned, :short, :int]
313
- Int.new :unsigned => true, :longness => -1
314
- when [:int], [:signed], [:signed, :int]
315
- Int.new
316
- when [:unsigned], [:unsigned, :int]
317
- Int.new :unsigned => true
318
- when [:long], [:signed, :long], [:long, :int],
319
- [:signed, :long, :int]
320
- Int.new :longness => 1
321
- when [:unsigned, :long], [:unsigned, :long, :int]
322
- Int.new :longness => 1, :unsigned => true
323
- when [:long, :long], [:signed, :long, :long],
324
- [:long, :long, :int], [:signed, :long, :long, :int]
325
- Int.new :longness => 2
326
- when [:unsigned, :long, :long], [:unsigned, :long, :long, :int]
327
- Int.new :longness => 2, :unsigned => true
328
- when [:float]
329
- Float.new
330
- when [:double]
331
- Float.new :longness => 1
332
- when [:long, :double]
333
- Float.new :longness => 2
334
- when [:_Bool]
335
- Bool.new
336
- when [:float, :_Complex]
337
- Complex.new
338
- when [:double, :_Complex]
339
- Complex.new :longness => 1
340
- when [:long, :double, :_Complex]
341
- Complex.new :longness => 2
342
- when [:float, :_Imaginary]
343
- Imaginary.new
344
- when [:double, :_Imaginary]
345
- Imaginary.new :longness => 1
346
- when [:long, :double, :_Imaginary]
347
- Imaginary.new :longness => 2
348
- else
349
- if type_specs.length == 1 &&
350
- [CustomType, Struct, Union, Enum].any?{|c| type_specs[0].is_a? c}
351
- type_specs[0]
352
- else
353
- if type_specs == []
354
- parse_error pos, "no type specifiers given"
355
- else
356
- parse_error pos, "invalid type specifier combination: #{type_specs.join(' ')}"
357
- end
358
- end
359
- end
360
- type.pos ||= pos
361
-
362
- ## set type qualifiers
363
- ## 6.7.3p4: type qualifiers can be repeated
364
- type.const = specs.any?{|x| x.equal? :const }
365
- type.restrict = specs.any?{|x| x.equal? :restrict}
366
- type.volatile = specs.any?{|x| x.equal? :volatile}
367
-
368
- return type
369
- end
370
-
371
- def make_parameter pos, specs, indirect_type, name
372
- type = indirect_type
373
- if type
374
- type.direct_type = make_direct_type(pos, specs)
375
- else
376
- type = make_direct_type(pos, specs)
377
- end
378
- [:typedef, :extern, :static, :auto, :inline].each do |sym|
379
- specs.include? sym and
380
- parse_error pos, "parameter `#{declarator.name}' declared `#{sym}'"
381
- end
382
- return Parameter.new_at(pos, type, name,
383
- :register => specs.include?(:register))
384
- end
385
-
386
- def add_type_quals type, quals
387
- type.const = quals.include?(:const )
388
- type.restrict = quals.include?(:restrict)
389
- type.volatile = quals.include?(:volatile)
390
- return type
391
- end
392
-
393
- ## Add te given type as the "most direct" type to the given
394
- ## declarator. Return the declarator.
395
- def add_decl_type declarator, type
396
- if declarator.indirect_type
397
- declarator.indirect_type.direct_type = type
398
- else
399
- declarator.indirect_type = type
400
- end
401
- return declarator
402
- end
403
-
404
- def param_list params, var_args
405
- if params.length == 1 &&
406
- params[0].type.is_a?(Void) &&
407
- params[0].name.nil?
408
- return NodeArray[]
409
- elsif params.empty?
410
- return nil
411
- else
412
- return params
413
- end
414
- end
415
-
416
- def parse_error pos, str
417
- raise ParseError, "#{pos}: #{str}"
418
- end
419
-
420
- ..end c.y modeval..iddc00389379
421
-
422
- ##### racc 1.4.4 generates ###
423
-
424
- racc_reduce_table = [
425
- 0, 0, :racc_error,
426
- 1, 92, :_reduce_1,
427
- 2, 92, :_reduce_2,
428
- 1, 93, :_reduce_3,
429
- 1, 93, :_reduce_4,
430
- 4, 94, :_reduce_5,
431
- 3, 94, :_reduce_6,
432
- 1, 98, :_reduce_7,
433
- 2, 98, :_reduce_8,
434
- 1, 100, :_reduce_9,
435
- 1, 100, :_reduce_10,
436
- 1, 100, :_reduce_11,
437
- 1, 100, :_reduce_12,
438
- 1, 100, :_reduce_13,
439
- 1, 100, :_reduce_14,
440
- 3, 101, :_reduce_15,
441
- 4, 101, :_reduce_16,
442
- 3, 101, :_reduce_17,
443
- 3, 101, :_reduce_18,
444
- 3, 99, :_reduce_19,
445
- 2, 99, :_reduce_20,
446
- 1, 109, :_reduce_21,
447
- 2, 109, :_reduce_22,
448
- 1, 110, :_reduce_23,
449
- 1, 110, :_reduce_24,
450
- 2, 102, :_reduce_25,
451
- 1, 102, :_reduce_26,
452
- 5, 103, :_reduce_27,
453
- 7, 103, :_reduce_28,
454
- 5, 103, :_reduce_29,
455
- 5, 104, :_reduce_30,
456
- 7, 104, :_reduce_31,
457
- 9, 104, :_reduce_32,
458
- 8, 104, :_reduce_33,
459
- 8, 104, :_reduce_34,
460
- 7, 104, :_reduce_35,
461
- 8, 104, :_reduce_36,
462
- 7, 104, :_reduce_37,
463
- 7, 104, :_reduce_38,
464
- 6, 104, :_reduce_39,
465
- 8, 104, :_reduce_40,
466
- 7, 104, :_reduce_41,
467
- 7, 104, :_reduce_42,
468
- 6, 104, :_reduce_43,
469
- 3, 105, :_reduce_44,
470
- 2, 105, :_reduce_45,
471
- 2, 105, :_reduce_46,
472
- 3, 105, :_reduce_47,
473
- 2, 105, :_reduce_48,
474
- 3, 105, :_reduce_49,
475
- 3, 95, :_reduce_50,
476
- 2, 95, :_reduce_51,
477
- 2, 96, :_reduce_52,
478
- 1, 96, :_reduce_53,
479
- 2, 96, :_reduce_54,
480
- 1, 96, :_reduce_55,
481
- 2, 96, :_reduce_56,
482
- 1, 96, :_reduce_57,
483
- 2, 96, :_reduce_58,
484
- 1, 96, :_reduce_59,
485
- 1, 112, :_reduce_60,
486
- 3, 112, :_reduce_61,
487
- 1, 117, :_reduce_62,
488
- 3, 117, :_reduce_63,
489
- 1, 113, :_reduce_64,
490
- 1, 113, :_reduce_65,
491
- 1, 113, :_reduce_66,
492
- 1, 113, :_reduce_67,
493
- 1, 113, :_reduce_68,
494
- 1, 114, :_reduce_69,
495
- 1, 114, :_reduce_70,
496
- 1, 114, :_reduce_71,
497
- 1, 114, :_reduce_72,
498
- 1, 114, :_reduce_73,
499
- 1, 114, :_reduce_74,
500
- 1, 114, :_reduce_75,
501
- 1, 114, :_reduce_76,
502
- 1, 114, :_reduce_77,
503
- 1, 114, :_reduce_78,
504
- 1, 114, :_reduce_79,
505
- 1, 114, :_reduce_80,
506
- 1, 114, :_reduce_81,
507
- 1, 114, :_reduce_82,
508
- 1, 114, :_reduce_83,
509
- 5, 119, :_reduce_84,
510
- 4, 119, :_reduce_85,
511
- 2, 119, :_reduce_86,
512
- 5, 119, :_reduce_87,
513
- 2, 119, :_reduce_88,
514
- 1, 121, :_reduce_89,
515
- 1, 121, :_reduce_90,
516
- 1, 122, :_reduce_91,
517
- 2, 122, :_reduce_92,
518
- 3, 123, :_reduce_93,
519
- 2, 124, :_reduce_94,
520
- 1, 124, :_reduce_95,
521
- 2, 124, :_reduce_96,
522
- 1, 124, :_reduce_97,
523
- 1, 125, :_reduce_98,
524
- 3, 125, :_reduce_99,
525
- 1, 126, :_reduce_100,
526
- 3, 126, :_reduce_101,
527
- 2, 126, :_reduce_102,
528
- 5, 120, :_reduce_103,
529
- 4, 120, :_reduce_104,
530
- 6, 120, :_reduce_105,
531
- 5, 120, :_reduce_106,
532
- 2, 120, :_reduce_107,
533
- 5, 120, :_reduce_108,
534
- 6, 120, :_reduce_109,
535
- 2, 120, :_reduce_110,
536
- 1, 127, :_reduce_111,
537
- 3, 127, :_reduce_112,
538
- 1, 128, :_reduce_113,
539
- 3, 128, :_reduce_114,
540
- 1, 115, :_reduce_115,
541
- 1, 115, :_reduce_116,
542
- 1, 115, :_reduce_117,
543
- 1, 116, :_reduce_118,
544
- 2, 97, :_reduce_119,
545
- 1, 97, :_reduce_120,
546
- 1, 131, :_reduce_121,
547
- 3, 131, :_reduce_122,
548
- 5, 131, :_reduce_123,
549
- 4, 131, :_reduce_124,
550
- 4, 131, :_reduce_125,
551
- 3, 131, :_reduce_126,
552
- 6, 131, :_reduce_127,
553
- 5, 131, :_reduce_128,
554
- 6, 131, :_reduce_129,
555
- 5, 131, :_reduce_130,
556
- 4, 131, :_reduce_131,
557
- 4, 131, :_reduce_132,
558
- 4, 131, :_reduce_133,
559
- 3, 131, :_reduce_134,
560
- 2, 130, :_reduce_135,
561
- 1, 130, :_reduce_136,
562
- 3, 130, :_reduce_137,
563
- 2, 130, :_reduce_138,
564
- 1, 132, :_reduce_139,
565
- 2, 132, :_reduce_140,
566
- 1, 134, :_reduce_141,
567
- 3, 134, :_reduce_142,
568
- 1, 136, :_reduce_143,
569
- 3, 136, :_reduce_144,
570
- 2, 137, :_reduce_145,
571
- 2, 137, :_reduce_146,
572
- 1, 137, :_reduce_147,
573
- 1, 135, :_reduce_148,
574
- 3, 135, :_reduce_149,
575
- 2, 139, :_reduce_150,
576
- 1, 139, :_reduce_151,
577
- 1, 138, :_reduce_152,
578
- 2, 138, :_reduce_153,
579
- 1, 138, :_reduce_154,
580
- 3, 140, :_reduce_155,
581
- 4, 140, :_reduce_156,
582
- 3, 140, :_reduce_157,
583
- 3, 140, :_reduce_158,
584
- 2, 140, :_reduce_159,
585
- 4, 140, :_reduce_160,
586
- 3, 140, :_reduce_161,
587
- 4, 140, :_reduce_162,
588
- 3, 140, :_reduce_163,
589
- 3, 140, :_reduce_164,
590
- 2, 140, :_reduce_165,
591
- 1, 108, :_reduce_166,
592
- 1, 118, :_reduce_167,
593
- 3, 118, :_reduce_168,
594
- 4, 118, :_reduce_169,
595
- 2, 141, :_reduce_170,
596
- 1, 141, :_reduce_171,
597
- 4, 141, :_reduce_172,
598
- 3, 141, :_reduce_173,
599
- 2, 142, :_reduce_174,
600
- 1, 143, :_reduce_175,
601
- 2, 143, :_reduce_176,
602
- 3, 144, :_reduce_177,
603
- 2, 144, :_reduce_178,
604
- 1, 145, :_reduce_179,
605
- 1, 145, :_reduce_180,
606
- 1, 145, :_reduce_181,
607
- 3, 145, :_reduce_182,
608
- 1, 148, :_reduce_183,
609
- 4, 148, :_reduce_184,
610
- 4, 148, :_reduce_185,
611
- 3, 148, :_reduce_186,
612
- 3, 148, :_reduce_187,
613
- 3, 148, :_reduce_188,
614
- 2, 148, :_reduce_189,
615
- 2, 148, :_reduce_190,
616
- 6, 148, :_reduce_191,
617
- 7, 148, :_reduce_192,
618
- 1, 149, :_reduce_193,
619
- 3, 149, :_reduce_194,
620
- 1, 150, :_reduce_195,
621
- 2, 150, :_reduce_196,
622
- 2, 150, :_reduce_197,
623
- 2, 150, :_reduce_198,
624
- 2, 150, :_reduce_199,
625
- 4, 150, :_reduce_200,
626
- 1, 151, :_reduce_201,
627
- 1, 151, :_reduce_202,
628
- 1, 151, :_reduce_203,
629
- 1, 151, :_reduce_204,
630
- 1, 151, :_reduce_205,
631
- 1, 151, :_reduce_206,
632
- 1, 152, :_reduce_207,
633
- 4, 152, :_reduce_208,
634
- 1, 153, :_reduce_209,
635
- 3, 153, :_reduce_210,
636
- 3, 153, :_reduce_211,
637
- 3, 153, :_reduce_212,
638
- 1, 154, :_reduce_213,
639
- 3, 154, :_reduce_214,
640
- 3, 154, :_reduce_215,
641
- 1, 155, :_reduce_216,
642
- 3, 155, :_reduce_217,
643
- 3, 155, :_reduce_218,
644
- 1, 156, :_reduce_219,
645
- 3, 156, :_reduce_220,
646
- 3, 156, :_reduce_221,
647
- 3, 156, :_reduce_222,
648
- 3, 156, :_reduce_223,
649
- 1, 157, :_reduce_224,
650
- 3, 157, :_reduce_225,
651
- 3, 157, :_reduce_226,
652
- 1, 158, :_reduce_227,
653
- 3, 158, :_reduce_228,
654
- 1, 159, :_reduce_229,
655
- 3, 159, :_reduce_230,
656
- 1, 160, :_reduce_231,
657
- 3, 160, :_reduce_232,
658
- 1, 161, :_reduce_233,
659
- 3, 161, :_reduce_234,
660
- 1, 162, :_reduce_235,
661
- 3, 162, :_reduce_236,
662
- 1, 163, :_reduce_237,
663
- 5, 163, :_reduce_238,
664
- 1, 133, :_reduce_239,
665
- 3, 133, :_reduce_240,
666
- 1, 164, :_reduce_241,
667
- 1, 164, :_reduce_242,
668
- 1, 164, :_reduce_243,
669
- 1, 164, :_reduce_244,
670
- 1, 164, :_reduce_245,
671
- 1, 164, :_reduce_246,
672
- 1, 164, :_reduce_247,
673
- 1, 164, :_reduce_248,
674
- 1, 164, :_reduce_249,
675
- 1, 164, :_reduce_250,
676
- 1, 164, :_reduce_251,
677
- 1, 111, :_reduce_252,
678
- 3, 111, :_reduce_253,
679
- 1, 107, :_reduce_254,
680
- 1, 106, :_reduce_255,
681
- 1, 146, :_reduce_256,
682
- 1, 146, :_reduce_257,
683
- 1, 146, :_reduce_258,
684
- 1, 129, :_reduce_259,
685
- 1, 147, :_reduce_260 ]
686
-
687
- racc_reduce_n = 261
688
-
689
- racc_shift_n = 455
690
-
691
- clist = [
692
- '121,123,83,291,131,134,137,320,250,147,151,155,158,161,165,168,113,56',
693
- '57,57,373,92,92,320,89,364,89,364,57,57,21,380,420,243,200,378,75,229',
694
- '250,109,287,379,53,376,287,140,53,21,201,76,156,160,164,166,112,116',
695
- '118,120,53,297,287,88,363,88,363,198,41,53,53,296,239,370,250,295,195',
696
- '240,241,242,244,199,41,250,386,41,142,145,148,152,121,123,83,128,131',
697
- '134,137,41,41,147,151,155,158,161,165,168,113,41,41,4,7,9,11,14,18,23',
698
- '27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,49,387,140,223,21,209',
699
- '210,156,160,164,166,112,116,118,120,121,123,83,72,131,134,137,72,72',
700
- '147,151,155,158,161,165,168,113,422,346,391,39,204,392,204,100,41,142',
701
- '145,148,152,21,423,349,261,205,206,205,206,101,424,56,393,57,270,394',
702
- '140,350,21,271,250,156,160,164,166,112,116,118,120,121,123,83,291,131',
703
- '134,137,21,41,147,151,155,158,161,165,168,113,230,32,36,1,217,218,53',
704
- '53,41,142,145,148,152,260,251,252,253,254,255,256,257,258,259,287,231',
705
- '57,41,400,140,401,21,209,210,156,160,164,166,112,116,118,120,121,123',
706
- '83,41,131,134,137,204,232,147,151,155,158,161,165,168,113,409,190,249',
707
- '205,206,41,53,433,41,142,145,148,152,250,191,250,412,439,385,72,250',
708
- '72,442,227,228,57,102,250,140,250,21,250,250,156,160,164,166,112,116',
709
- '118,120,121,123,83,41,131,134,137,427,375,147,151,155,158,161,165,168',
710
- '113,250,250,223,318,374,285,53,447,41,142,145,148,152,250,250,284,451',
711
- '250,222,431,221,32,36,1,209,210,250,53,140,250,21,209,210,156,160,164',
712
- '166,112,116,118,120,121,123,83,41,131,134,137,209,210,147,151,155,158',
713
- '161,165,168,113,215,212,213,214,215,212,213,214,41,142,145,148,152,215',
714
- '212,213,214,207,208,207,208,217,218,207,208,371,219,322,140,221,21,220',
715
- '245,156,160,164,166,112,116,118,120,121,123,83,219,131,134,137,371,305',
716
- '147,151,155,158,161,165,168,113,418,419,377,421,216,41,265,356,41,142',
717
- '145,148,152,267,354,192,352,41,74,73,72,438,329,68,67,231,66,341,140',
718
- '279,21,340,282,156,160,164,166,112,116,118,120,121,123,83,283,131,134',
719
- '137,86,41,147,151,155,158,161,165,168,113,286,41,220,,,,,,41,142,145',
720
- '148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112,116,118,120,121',
721
- '123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,,,,,,,,41,142',
722
- '145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112,116,118,120',
723
- '121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,,,,,,,,41',
724
- '142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112,116,118',
725
- '120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,,,,,',
726
- ',,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112,116',
727
- '118,120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,',
728
- ',,,,,,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112',
729
- '116,118,120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113',
730
- ',,,,,,,,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,137,156,160,164,166',
731
- '112,116,118,120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168',
732
- '113,,,,,,,,,41,142,145,148,152,140,,,,,156,160,164,166,112,116,118,120',
733
- ',,140,,21,,,156,160,164,166,112,116,118,120,,,,,,,,,,,41,142,145,148',
734
- '152,,,,,,,,,,,41,142,145,148,152,121,123,83,233,131,134,137,,,147,151',
735
- '155,158,161,165,168,113,,,4,7,9,11,14,18,23,27,30,35,38,3,6,8,10,13',
736
- '17,22,26,29,32,36,1,5,,,140,,21,,,156,160,164,166,112,116,118,120,121',
737
- '123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,,,,,,,,41,142',
738
- '145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112,116,118,120',
739
- '121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,,,,,,,,41',
740
- '142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112,116,118',
741
- '120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,,,,,',
742
- ',,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112,116',
743
- '118,120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113,,',
744
- ',,,,,,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166,112',
745
- '116,118,120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168,113',
746
- ',,,,,,,,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164,166',
747
- '112,116,118,120,121,123,83,,131,134,137,,,147,151,155,158,161,165,168',
748
- '113,,,,,,,,,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156,160,164',
749
- '166,112,116,118,120,121,123,83,,131,134,137,,,147,151,155,158,161,165',
750
- '168,113,371,,,,137,,,,41,142,145,148,152,,,,,,,,,,,,,,,,140,,21,,,156',
751
- '160,164,166,112,116,118,120,,,140,,,,,156,160,164,166,112,116,118,120',
752
- '170,,,,137,,,,,,41,142,145,148,152,170,,,,137,,,,,,41,142,145,148,152',
753
- ',,,,,,,,,,,270,,140,,,271,,156,160,164,166,112,116,118,120,,,140,,,',
754
- ',156,160,164,166,112,116,118,120,170,388,,,137,,,,,,41,142,145,148,152',
755
- '170,,,,137,,,,,,41,142,145,148,152,,,,,,,,,,,,270,,140,,,271,,156,160',
756
- '164,166,112,116,118,120,,,140,,,,,156,160,164,166,112,116,118,120,170',
757
- '437,,,137,,,,,,41,142,145,148,152,170,,,,137,,,,,,41,142,145,148,152',
758
- ',,,,,,,,,,,270,,140,,,271,,156,160,164,166,112,116,118,120,,,140,,,',
759
- ',156,160,164,166,112,116,118,120,170,,,,137,,,,,,41,142,145,148,152',
760
- '384,,137,,,,,,,,41,142,145,148,152,,,,,,,,,,,,270,,140,,,271,,156,160',
761
- '164,166,112,116,118,120,140,,203,,137,156,160,164,166,112,116,118,120',
762
- ',,382,,137,,,,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148,152,140',
763
- ',,,,156,160,164,166,112,116,118,120,140,,,,,156,160,164,166,112,116',
764
- '118,120,,,,,,,,,,,,,41,142,145,148,152,338,,137,,,,,,41,142,145,148',
765
- '152,,,4,7,9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1',
766
- '5,,,140,,21,,,156,160,164,166,112,116,118,120,416,,137,,,,,,,,,,,,,137',
767
- ',,,,,,,,,41,142,145,148,152,,,,,,,,,,,,140,,,,,156,160,164,166,112,116',
768
- '118,120,140,,,,,156,160,164,166,112,116,118,120,,,137,,,,,,,,,,41,142',
769
- '145,148,152,177,137,,,,,,,41,142,145,148,152,,,,,,32,36,1,,,178,179',
770
- ',,,,156,160,164,166,112,116,118,120,,,,140,,,,137,156,160,164,166,112',
771
- '116,118,120,,,,,,,,,,41,142,145,148,152,137,,,,,,,,,,,41,142,145,148',
772
- '152,140,,,,137,156,160,164,166,112,116,118,120,,,,,32,36,1,,,,140,,',
773
- ',137,156,160,164,166,112,116,118,120,,,41,142,145,148,152,140,,,,137',
774
- '156,160,164,166,112,116,118,120,,,,,,41,142,145,148,152,140,,,,,156',
775
- '160,164,166,112,116,118,120,,,41,142,145,148,152,140,,,,,156,160,164',
776
- '166,112,116,118,120,,,,,,41,142,145,148,152,,,137,,,,,,,,,,,,,41,142',
777
- '145,148,152,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,140',
778
- ',21,,137,156,160,164,166,112,116,118,120,,,,,137,,,,,,,,,,,,,,,,,,,',
779
- ',41,142,145,148,152,140,,,,,156,160,164,166,112,116,118,120,140,,,,137',
780
- '156,160,164,166,112,116,118,120,,,,,137,411,,,,,,,41,142,145,148,152',
781
- ',,,,,,,,41,142,145,148,152,140,,,,,156,160,164,166,112,116,118,120,140',
782
- ',,,,156,160,164,166,112,116,118,120,137,414,,,,,,,,,,,41,142,145,148',
783
- '152,137,336,,,,,,,41,142,145,148,152,,,,,,,,,,140,,,,,156,160,164,166',
784
- '112,116,118,120,,,,,140,,,,137,156,160,164,166,112,116,118,120,,,,,',
785
- ',,,41,142,145,148,152,,,,,,,,,,,,,41,142,145,148,152,140,,,,,156,160',
786
- '164,166,112,116,118,120,,,,,,,,,,,,,137,,,,,,,,,,,,,41,142,145,148,152',
787
- '18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,140,,21,,137,156',
788
- '160,164,166,112,116,118,120,,,,,137,,,,,,,,,,,,,,,,,,,,,41,142,145,148',
789
- '152,140,,,,,156,160,164,166,112,116,118,120,140,,,,,156,160,164,166',
790
- '112,116,118,120,137,426,,,,,,,,,,,41,142,145,148,152,137,,,,,,,,41,142',
791
- '145,148,152,,,,,,,,,,140,,,,,156,160,164,166,112,116,118,120,,,,,140',
792
- ',,,,156,160,164,166,112,116,118,120,137,430,,,,,,,41,142,145,148,152',
793
- '137,,,,,,,,,,,,41,142,145,148,152,,,,,,,,,,140,,,,,156,160,164,166,112',
794
- '116,118,120,140,,,,137,156,160,164,166,112,116,118,120,,,,,137,,,,,',
795
- ',,41,142,145,148,152,,,,,,,,,41,142,145,148,152,140,,,,,156,160,164',
796
- '166,112,116,118,120,140,,,,137,156,160,164,166,112,116,118,120,,,,,',
797
- ',,,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148,152,140,,,,,156,160',
798
- '164,166,112,116,118,120,,,,,,,,,,,,,137,,,,,,,,,,,,,41,142,145,148,152',
799
- '18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,140,,21,,137,156',
800
- '160,164,166,112,116,118,120,,,,,137,,,,,,,,,,,,,,,,,,,,,41,142,145,148',
801
- '152,140,,,,,156,160,164,166,112,116,118,120,140,,,,137,156,160,164,166',
802
- '112,116,118,120,,,,,,137,,,,,,,41,142,145,148,152,,,,,,,,,41,142,145',
803
- '148,152,140,,,,,156,160,164,166,112,116,118,120,396,397,,,,137,156,160',
804
- '164,166,112,116,118,120,,,,,137,435,,,,,,41,142,145,148,152,,,,,,,,',
805
- ',41,142,145,148,152,140,,,,,156,160,164,166,112,116,118,120,140,,,,',
806
- '156,160,164,166,112,116,118,120,137,446,,,,,,,,,,,41,142,145,148,152',
807
- '238,,,,,,,,41,142,145,148,152,,,,,,,,,,140,,,,,156,160,164,166,112,116',
808
- '118,120,,,,,140,,,,137,156,160,164,166,112,116,118,120,,,,,238,,,,41',
809
- '142,145,148,152,,,,,,,,,,,,,41,142,145,148,152,140,,,,,156,160,164,166',
810
- '112,116,118,120,140,,,,137,156,160,164,166,112,116,118,120,,,,,137,',
811
- ',,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148,152,140,,,,,156,160',
812
- '164,166,112,116,118,120,140,,,,137,156,160,164,166,112,116,118,120,',
813
- ',,,264,,,,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148,152,140,,,,',
814
- '156,160,164,166,112,116,118,120,140,,,,137,156,160,164,166,112,116,118',
815
- '120,,,,,137,,,,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148,152,140',
816
- ',,,,156,160,164,166,112,116,118,120,140,,,,137,156,160,164,166,112,116',
817
- '118,120,,,,,,,,,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148,152,140',
818
- ',,,,156,160,164,166,112,116,118,120,137,,,,,,,,,,,,,137,,276,,,,,,,',
819
- ',,41,142,145,148,152,,,,32,36,1,,,277,278,,,,,156,160,164,166,112,116',
820
- '118,120,140,,,,,156,160,164,166,112,116,118,120,137,,,,,,,,,,,,41,142',
821
- '145,148,152,137,,,,,,,,41,142,145,148,152,,,,32,36,1,,,,140,,,,,156',
822
- '160,164,166,112,116,118,120,,,,,140,,,,137,156,160,164,166,112,116,118',
823
- '120,,,,,137,,,,41,142,145,148,152,,,,,,,,,,,,,41,142,145,148,152,140',
824
- ',,,,156,160,164,166,112,116,118,120,140,,,,137,156,160,164,166,112,116',
825
- '118,120,,,,,137,,,,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148,152',
826
- '140,,,,,156,160,164,166,112,116,118,120,140,,,,,156,160,164,166,112',
827
- '116,118,120,137,,,,,,,,,,,,41,142,145,148,152,,,,,,,,,41,142,145,148',
828
- '152,,,,,,,,,361,362,,,,,156,160,164,166,112,116,118,120,,,,,,,,,,,,',
829
- ',,,,,291,367,,,,,,,41,142,145,148,152,4,7,9,11,14,18,23,27,30,35,38',
830
- '3,6,8,10,13,17,22,26,29,32,36,1,5,287,186,53,,21,,,,,,,,,4,7,9,11,14',
831
- '18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,41,21,,,,,,,',
832
- ',,,,,,,45,,,,,,,,,,,,,,,,,,,,,41,4,7,9,11,14,18,23,27,30,35,38,3,6,8',
833
- '10,13,17,22,26,29,32,36,1,5,83,,,,21,,,,,,,,,,,,86,4,7,9,11,14,18,23',
834
- '27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,83,,,,21,,,,,,,,,,,,,4',
835
- '7,9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,91,,,',
836
- '21,,,,,,,,,,,,,,,,,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1',
837
- '193,,,,,21,,,,,,,,,,,,,,,,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29',
838
- '32,36,1,194,,,,,21,,,,,,,,,,,,,,,,18,23,27,30,35,38,3,6,8,10,13,17,22',
839
- '26,29,32,36,1,320,367,,,,21,,,,,,,,4,7,9,11,14,18,23,27,30,35,38,3,6',
840
- '8,10,13,17,22,26,29,32,36,1,5,287,399,53,,21,,,,,,,,,4,7,9,11,14,18',
841
- '23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9,11,14',
842
- '18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9,11',
843
- '14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7,9',
844
- '11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4,7',
845
- '9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,,21,4',
846
- '7,9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,,,,359',
847
- '21,4,7,9,11,14,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,5,',
848
- ',,,21,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,,,21,18,23',
849
- '27,30,35,38,3,6,8,10,13,17,22,26,29,32,36,1,,,,,,21,18,23,27,30,35,38',
850
- '3,6,8,10,13,17,22,26,29,32,36,1,,,,,,21,18,23,27,30,35,38,3,6,8,10,13',
851
- '17,22,26,29,32,36,1,,,,,,21,18,23,27,30,35,38,3,6,8,10,13,17,22,26,29',
852
- '32,36,1,,,,,,21' ]
853
- racc_action_table = arr = ::Array.new(4320, nil)
854
- str = a = i = nil
855
- idx = 0
856
- clist.each do |str|
857
- str.split(',', -1).each do |i|
858
- arr[idx] = i.to_i unless i.empty?
859
- idx += 1
860
- end
861
- end
862
-
863
- clist = [
864
- '451,451,451,185,451,451,451,225,331,451,451,451,451,451,451,451,451',
865
- '31,58,31,324,63,191,321,81,289,60,368,63,191,161,335,398,157,104,331',
866
- '52,144,324,80,185,335,185,329,225,451,225,451,104,52,451,451,451,451',
867
- '451,451,451,451,31,202,321,81,289,60,368,103,161,63,191,201,157,316',
868
- '202,199,101,157,157,157,157,103,185,316,344,451,451,451,451,451,83,83',
869
- '83,83,83,83,83,58,31,83,83,83,83,83,83,83,83,63,191,83,83,83,83,83,83',
870
- '83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,29,347,83,323',
871
- '83,308,308,83,83,83,83,83,83,83,83,447,447,447,201,447,447,447,199,101',
872
- '447,447,447,447,447,447,447,447,403,268,353,2,115,355,302,69,83,83,83',
873
- '83,83,29,403,273,163,115,115,302,302,69,407,85,360,85,268,362,447,273',
874
- '447,268,407,447,447,447,447,447,447,447,447,446,446,446,292,446,446',
875
- '446,2,29,446,446,446,446,446,446,446,446,147,77,77,77,313,313,85,77',
876
- '447,447,447,447,447,163,163,163,163,163,163,163,163,163,163,292,149',
877
- '76,2,365,446,366,446,309,309,446,446,446,446,446,446,446,446,442,442',
878
- '442,85,442,442,442,301,151,442,442,442,442,442,442,442,442,381,93,162',
879
- '301,301,292,76,415,446,446,446,446,446,381,93,162,383,425,339,74,415',
880
- '73,429,139,139,57,71,425,442,383,442,339,429,442,442,442,442,442,442',
881
- '442,442,439,439,439,76,439,439,439,410,328,439,439,439,439,439,439,439',
882
- '439,410,328,136,224,326,181,57,434,442,442,442,442,442,224,326,181,445',
883
- '434,134,413,317,53,53,53,119,119,445,53,439,413,439,307,307,439,439',
884
- '439,439,439,439,439,439,435,435,435,57,435,435,435,306,306,435,435,435',
885
- '435,435,435,435,435,312,312,312,312,311,311,311,311,439,439,439,439',
886
- '439,122,122,122,122,304,304,303,303,125,125,117,117,377,314,226,435',
887
- '133,435,130,158,435,435,435,435,435,435,435,435,216,216,216,127,216',
888
- '216,216,386,211,216,216,216,216,216,216,216,216,395,397,330,402,123',
889
- '284,165,281,435,435,435,435,435,168,278,95,275,271,51,50,49,424,235',
890
- '45,42,236,40,248,216,176,216,247,179,216,216,216,216,216,216,216,216',
891
- '155,155,155,180,155,155,155,106,241,155,155,155,155,155,155,155,155',
892
- '182,240,315,,,,,,216,216,216,216,216,,,,,,,,,,,,,,,,155,,155,,,155,155',
893
- '155,155,155,155,155,155,431,431,431,,431,431,431,,,431,431,431,431,431',
894
- '431,431,431,,,,,,,,,155,155,155,155,155,,,,,,,,,,,,,,,,431,,431,,,431',
895
- '431,431,431,431,431,431,431,430,430,430,,430,430,430,,,430,430,430,430',
896
- '430,430,430,430,,,,,,,,,431,431,431,431,431,,,,,,,,,,,,,,,,430,,430',
897
- ',,430,430,430,430,430,430,430,430,427,427,427,,427,427,427,,,427,427',
898
- '427,427,427,427,427,427,,,,,,,,,430,430,430,430,430,,,,,,,,,,,,,,,,427',
899
- ',427,,,427,427,427,427,427,427,427,427,426,426,426,,426,426,426,,,426',
900
- '426,426,426,426,426,426,426,,,,,,,,,427,427,427,427,427,,,,,,,,,,,,',
901
- ',,,426,,426,,,426,426,426,426,426,426,426,426,370,370,370,,370,370,370',
902
- ',,370,370,370,370,370,370,370,370,,,,,,,,,426,426,426,426,426,,,,,,',
903
- ',,,,,,,,,370,,370,,218,370,370,370,370,370,370,370,370,421,421,421,',
904
- '421,421,421,,,421,421,421,421,421,421,421,421,,,,,,,,,370,370,370,370',
905
- '370,218,,,,,218,218,218,218,218,218,218,218,,,421,,421,,,421,421,421',
906
- '421,421,421,421,421,,,,,,,,,,,218,218,218,218,218,,,,,,,,,,,421,421',
907
- '421,421,421,153,153,153,153,153,153,153,,,153,153,153,153,153,153,153',
908
- '153,,,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153',
909
- '153,153,153,153,153,153,153,153,,,153,,153,,,153,153,153,153,153,153',
910
- '153,153,414,414,414,,414,414,414,,,414,414,414,414,414,414,414,414,',
911
- ',,,,,,,153,153,153,153,153,,,,,,,,,,,,,,,,414,,414,,,414,414,414,414',
912
- '414,414,414,414,229,229,229,,229,229,229,,,229,229,229,229,229,229,229',
913
- '229,,,,,,,,,414,414,414,414,414,,,,,,,,,,,,,,,,229,,229,,,229,229,229',
914
- '229,229,229,229,229,411,411,411,,411,411,411,,,411,411,411,411,411,411',
915
- '411,411,,,,,,,,,229,229,229,229,229,,,,,,,,,,,,,,,,411,,411,,,411,411',
916
- '411,411,411,411,411,411,375,375,375,,375,375,375,,,375,375,375,375,375',
917
- '375,375,375,,,,,,,,,411,411,411,411,411,,,,,,,,,,,,,,,,375,,375,,,375',
918
- '375,375,375,375,375,375,375,305,305,305,,305,305,305,,,305,305,305,305',
919
- '305,305,305,305,,,,,,,,,375,375,375,375,375,,,,,,,,,,,,,,,,305,,305',
920
- ',,305,305,305,305,305,305,305,305,374,374,374,,374,374,374,,,374,374',
921
- '374,374,374,374,374,374,,,,,,,,,305,305,305,305,305,,,,,,,,,,,,,,,,374',
922
- ',374,,,374,374,374,374,374,374,374,374,231,231,231,,231,231,231,,,231',
923
- '231,231,231,231,231,231,231,322,,,,322,,,,374,374,374,374,374,,,,,,',
924
- ',,,,,,,,,231,,231,,,231,231,231,231,231,231,231,231,,,322,,,,,322,322',
925
- '322,322,322,322,322,322,170,,,,170,,,,,,231,231,231,231,231,274,,,,274',
926
- ',,,,,322,322,322,322,322,,,,,,,,,,,,170,,170,,,170,,170,170,170,170',
927
- '170,170,170,170,,,274,,,,,274,274,274,274,274,274,274,274,350,350,,',
928
- '350,,,,,,170,170,170,170,170,86,,,,86,,,,,,274,274,274,274,274,,,,,',
929
- ',,,,,,350,,350,,,350,,350,350,350,350,350,350,350,350,,,86,,,,,86,86',
930
- '86,86,86,86,86,86,423,423,,,423,,,,,,350,350,350,350,350,390,,,,390',
931
- ',,,,,86,86,86,86,86,,,,,,,,,,,,423,,423,,,423,,423,423,423,423,423,423',
932
- '423,423,,,390,,,,,390,390,390,390,390,390,390,390,371,,,,371,,,,,,423',
933
- '423,423,423,423,338,,338,,,,,,,,390,390,390,390,390,,,,,,,,,,,,371,',
934
- '371,,,371,,371,371,371,371,371,371,371,371,338,,113,,113,338,338,338',
935
- '338,338,338,338,338,,,337,,337,,,,,,,,371,371,371,371,371,,,,,,,,,338',
936
- '338,338,338,338,113,,,,,113,113,113,113,113,113,113,113,337,,,,,337',
937
- '337,337,337,337,337,337,337,,,,,,,,,,,,,113,113,113,113,113,245,,245',
938
- ',,,,,337,337,337,337,337,,,245,245,245,245,245,245,245,245,245,245,245',
939
- '245,245,245,245,245,245,245,245,245,245,245,245,245,,,245,,245,,,245',
940
- '245,245,245,245,245,245,245,385,,385,,,,,,,,,,,,,373,,,,,,,,,,245,245',
941
- '245,245,245,,,,,,,,,,,,385,,,,,385,385,385,385,385,385,385,385,373,',
942
- ',,,373,373,373,373,373,373,373,373,,,88,,,,,,,,,,385,385,385,385,385',
943
- '88,376,,,,,,,373,373,373,373,373,,,,,,88,88,88,,,88,88,,,,,88,88,88',
944
- '88,88,88,88,88,,,,376,,,,92,376,376,376,376,376,376,376,376,,,,,,,,',
945
- ',88,88,88,88,88,280,,,,,,,,,,,376,376,376,376,376,92,,,,276,92,92,92',
946
- '92,92,92,92,92,,,,,280,280,280,,,,280,,,,379,280,280,280,280,280,280',
947
- '280,280,,,92,92,92,92,92,276,,,,270,276,276,276,276,276,276,276,276',
948
- ',,,,,280,280,280,280,280,379,,,,,379,379,379,379,379,379,379,379,,,276',
949
- '276,276,276,276,270,,,,,270,270,270,270,270,270,270,270,,,,,,379,379',
950
- '379,379,379,,,264,,,,,,,,,,,,,270,270,270,270,270,264,264,264,264,264',
951
- '264,264,264,264,264,264,264,264,264,264,264,264,264,,,,264,,264,,102',
952
- '264,264,264,264,264,264,264,264,,,,,262,,,,,,,,,,,,,,,,,,,,,264,264',
953
- '264,264,264,102,,,,,102,102,102,102,102,102,102,102,262,,,,250,262,262',
954
- '262,262,262,262,262,262,,,,,382,382,,,,,,,102,102,102,102,102,,,,,,',
955
- ',,262,262,262,262,262,250,,,,,250,250,250,250,250,250,250,250,382,,',
956
- ',,382,382,382,382,382,382,382,382,384,384,,,,,,,,,,,250,250,250,250',
957
- '250,243,243,,,,,,,382,382,382,382,382,,,,,,,,,,384,,,,,384,384,384,384',
958
- '384,384,384,384,,,,,243,,,,239,243,243,243,243,243,243,243,243,,,,,',
959
- ',,,384,384,384,384,384,,,,,,,,,,,,,243,243,243,243,243,239,,,,,239,239',
960
- '239,239,239,239,239,239,,,,,,,,,,,,,238,,,,,,,,,,,,,239,239,239,239',
961
- '239,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238',
962
- '238,238,,,,238,,238,,121,238,238,238,238,238,238,238,238,,,,,232,,,',
963
- ',,,,,,,,,,,,,,,,,238,238,238,238,238,121,,,,,121,121,121,121,121,121',
964
- '121,121,232,,,,,232,232,232,232,232,232,232,232,409,409,,,,,,,,,,,121',
965
- '121,121,121,121,230,,,,,,,,232,232,232,232,232,,,,,,,,,,409,,,,,409',
966
- '409,409,409,409,409,409,409,,,,,230,,,,,230,230,230,230,230,230,230',
967
- '230,412,412,,,,,,,409,409,409,409,409,228,,,,,,,,,,,,230,230,230,230',
968
- '230,,,,,,,,,,412,,,,,412,412,412,412,412,412,412,412,228,,,,227,228',
969
- '228,228,228,228,228,228,228,,,,,223,,,,,,,,412,412,412,412,412,,,,,',
970
- ',,,228,228,228,228,228,227,,,,,227,227,227,227,227,227,227,227,223,',
971
- ',,222,223,223,223,223,223,223,223,223,,,,,,,,,,,,,227,227,227,227,227',
972
- ',,,,,,,,223,223,223,223,223,222,,,,,222,222,222,222,222,222,222,222',
973
- ',,,,,,,,,,,,137,,,,,,,,,,,,,222,222,222,222,222,137,137,137,137,137',
974
- '137,137,137,137,137,137,137,137,137,137,137,137,137,,,,137,,137,,221',
975
- '137,137,137,137,137,137,137,137,,,,,220,,,,,,,,,,,,,,,,,,,,,137,137',
976
- '137,137,137,221,,,,,221,221,221,221,221,221,221,221,220,,,,219,220,220',
977
- '220,220,220,220,220,220,,,,,,363,,,,,,,221,221,221,221,221,,,,,,,,,220',
978
- '220,220,220,220,219,,,,,219,219,219,219,219,219,219,219,363,363,,,,217',
979
- '363,363,363,363,363,363,363,363,,,,,416,416,,,,,,219,219,219,219,219',
980
- ',,,,,,,,,363,363,363,363,363,217,,,,,217,217,217,217,217,217,217,217',
981
- '416,,,,,416,416,416,416,416,416,416,416,433,433,,,,,,,,,,,217,217,217',
982
- '217,217,156,,,,,,,,416,416,416,416,416,,,,,,,,,,433,,,,,433,433,433',
983
- '433,433,433,433,433,,,,,156,,,,215,156,156,156,156,156,156,156,156,',
984
- ',,,160,,,,433,433,433,433,433,,,,,,,,,,,,,156,156,156,156,156,215,,',
985
- ',,215,215,215,215,215,215,215,215,160,,,,214,160,160,160,160,160,160',
986
- '160,160,,,,,213,,,,,,,,215,215,215,215,215,,,,,,,,,160,160,160,160,160',
987
- '214,,,,,214,214,214,214,214,214,214,214,213,,,,212,213,213,213,213,213',
988
- '213,213,213,,,,,164,,,,,,,,214,214,214,214,214,,,,,,,,,213,213,213,213',
989
- '213,212,,,,,212,212,212,212,212,212,212,212,164,,,,210,164,164,164,164',
990
- '164,164,164,164,,,,,167,,,,,,,,212,212,212,212,212,,,,,,,,,164,164,164',
991
- '164,164,210,,,,,210,210,210,210,210,210,210,210,167,,,,209,167,167,167',
992
- '167,167,167,167,167,,,,,,,,,,,,,210,210,210,210,210,,,,,,,,,167,167',
993
- '167,167,167,209,,,,,209,209,209,209,209,209,209,209,175,,,,,,,,,,,,',
994
- '208,,175,,,,,,,,,,209,209,209,209,209,,,,175,175,175,,,175,175,,,,,175',
995
- '175,175,175,175,175,175,175,208,,,,,208,208,208,208,208,208,208,208',
996
- '177,,,,,,,,,,,,175,175,175,175,175,207,,,,,,,,208,208,208,208,208,,',
997
- ',177,177,177,,,,177,,,,,177,177,177,177,177,177,177,177,,,,,207,,,,206',
998
- '207,207,207,207,207,207,207,207,,,,,205,,,,177,177,177,177,177,,,,,',
999
- ',,,,,,,207,207,207,207,207,206,,,,,206,206,206,206,206,206,206,206,205',
1000
- ',,,204,205,205,205,205,205,205,205,205,,,,,192,,,,,,,,206,206,206,206',
1001
- '206,,,,,,,,,205,205,205,205,205,204,,,,,204,204,204,204,204,204,204',
1002
- '204,192,,,,,192,192,192,192,192,192,192,192,287,,,,,,,,,,,,204,204,204',
1003
- '204,204,,,,,,,,,192,192,192,192,192,,,,,,,,,287,287,,,,,287,287,287',
1004
- '287,287,287,287,287,,,,,,,,,,,,,,,,,,291,291,,,,,,,287,287,287,287,287',
1005
- '291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291',
1006
- '291,291,291,291,291,291,291,291,89,291,,291,,,,,,,,,89,89,89,89,89,89',
1007
- '89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,,,,291,89,,,,',
1008
- ',,,,,,,,,,16,,,,,,,,,,,,,,,,,,,,,89,16,16,16,16,16,16,16,16,16,16,16',
1009
- '16,16,16,16,16,16,16,16,16,16,16,16,16,59,,,,16,,,,,,,,,,,,59,59,59',
1010
- '59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,87',
1011
- ',,,59,,,,,,,,,,,,,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87',
1012
- '87,87,87,87,87,87,87,61,,,,87,,,,,,,,,,,,,,,,,61,61,61,61,61,61,61,61',
1013
- '61,61,61,61,61,61,61,61,61,61,98,,,,,61,,,,,,,,,,,,,,,,98,98,98,98,98',
1014
- '98,98,98,98,98,98,98,98,98,98,98,98,98,99,,,,,98,,,,,,,,,,,,,,,,99,99',
1015
- '99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,320,320,,,,99,,,,,,',
1016
- ',320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320',
1017
- '320,320,320,320,320,320,320,320,364,320,,320,,,,,,,,,364,364,364,364',
1018
- '364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364',
1019
- '364,364,364,,,,,364,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19',
1020
- '19,19,19,19,19,19,19,19,,,,,19,24,24,24,24,24,24,24,24,24,24,24,24,24',
1021
- '24,24,24,24,24,24,24,24,24,24,24,,,,,24,15,15,15,15,15,15,15,15,15,15',
1022
- '15,15,15,15,15,15,15,15,15,15,15,15,15,15,,,,,15,12,12,12,12,12,12,12',
1023
- '12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,,,,,12,286,286,286',
1024
- '286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286',
1025
- '286,286,286,286,,,,286,286,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0',
1026
- '0,0,0,,,,,0,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,,',
1027
- ',,,65,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,,,,64',
1028
- '39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,,,,,,39,66,66',
1029
- '66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,,,,,,66,67,67,67,67',
1030
- '67,67,67,67,67,67,67,67,67,67,67,67,67,67,,,,,,67' ]
1031
- racc_action_check = arr = ::Array.new(4320, nil)
1032
- str = a = i = nil
1033
- idx = 0
1034
- clist.each do |str|
1035
- str.split(',', -1).each do |i|
1036
- arr[idx] = i.to_i unless i.empty?
1037
- idx += 1
1038
- end
1039
- end
1040
-
1041
- racc_action_pointer = [
1042
- 4149, nil, 161, nil, nil, nil, nil, nil, nil, nil,
1043
- nil, nil, 4091, nil, nil, 4062, 3702, nil, nil, 4004,
1044
- nil, nil, nil, nil, 4033, nil, nil, nil, nil, 126,
1045
- nil, 10, nil, nil, nil, nil, nil, nil, nil, 4221,
1046
- 474, nil, 472, nil, nil, 476, nil, nil, nil, 387,
1047
- 467, 466, 29, 316, nil, nil, nil, 295, 9, 3743,
1048
- 17, 3824, nil, 19, 4197, 4173, 4245, 4269, nil, 164,
1049
- nil, 284, nil, 214, 212, nil, 237, 180, nil, nil,
1050
- 29, 15, nil, 85, nil, 179, 1490, 3784, 1878, 3637,
1051
- nil, nil, 1937, 273, nil, 466, nil, nil, 3863, 3902,
1052
- nil, 68, 2130, 59, 28, nil, 480, nil, nil, nil,
1053
- nil, nil, nil, 1673, nil, 119, nil, 361, nil, 298,
1054
- nil, 2418, 343, 455, nil, 347, nil, 383, nil, nil,
1055
- 355, nil, nil, 352, 346, nil, 266, 2728, nil, 228,
1056
- nil, nil, nil, nil, 35, nil, nil, 212, nil, 243,
1057
- nil, 261, nil, 927, nil, 491, 2966, 24, 418, nil,
1058
- 3022, -20, 274, 158, 3134, 452, nil, 3190, 459, nil,
1059
- 1404, nil, nil, nil, nil, 3285, 435, 3350, nil, 438,
1060
- 487, 332, 491, nil, nil, -6, nil, nil, nil, nil,
1061
- nil, 20, 3479, nil, nil, nil, nil, nil, nil, 67,
1062
- nil, 63, 52, nil, 3466, 3423, 3410, 3367, 3298, 3233,
1063
- 3177, 442, 3121, 3078, 3065, 3009, 433, 2884, 824, 2827,
1064
- 2784, 2771, 2664, 2621, 330, -2, 412, 2608, 2565, 1043,
1065
- 2500, 1333, 2431, nil, nil, 462, 476, nil, 2375, 2311,
1066
- 426, 416, nil, 2268, nil, 1757, nil, 477, 473, nil,
1067
- 2186, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1068
- nil, nil, 2143, nil, 2087, nil, nil, nil, 143, nil,
1069
- 2023, 384, nil, 172, 1419, 422, 1980, nil, 420, nil,
1070
- 1960, 413, nil, nil, 372, nil, 4120, 3531, nil, 16,
1071
- nil, 3600, 198, nil, nil, nil, nil, nil, nil, nil,
1072
- nil, 221, 121, 357, 355, 1217, 322, 305, 73, 189,
1073
- nil, 334, 330, 156, 365, 442, 61, 285, nil, nil,
1074
- 3938, 14, 1348, 61, 18, nil, 331, nil, 318, 34,
1075
- 445, -12, nil, nil, nil, 21, nil, 1686, 1630, 290,
1076
- nil, nil, nil, nil, 72, nil, nil, 85, nil, nil,
1077
- 1475, nil, nil, 118, nil, 121, nil, nil, nil, nil,
1078
- 140, nil, 143, 2841, 3975, 238, 240, nil, 18, nil,
1079
- 781, 1617, nil, 1824, 1275, 1159, 1894, 415, nil, 2003,
1080
- nil, 272, 2199, 288, 2251, 1811, 438, nil, nil, nil,
1081
- 1561, nil, nil, nil, nil, 406, nil, 407, 22, nil,
1082
- nil, nil, 445, 157, nil, nil, nil, 175, nil, 2483,
1083
- 317, 1101, 2552, 346, 985, 279, 2897, nil, nil, nil,
1084
- nil, 839, nil, 1546, 467, 286, 723, 665, nil, 291,
1085
- 607, 549, nil, 2949, 334, 375, nil, nil, nil, 317,
1086
- nil, nil, 259, nil, nil, 343, 201, 143, nil, nil,
1087
- nil, -3, nil, nil, nil ]
1088
-
1089
- racc_action_default = [
1090
- -261, -117, -261, -75, -64, -118, -76, -65, -77, -66,
1091
- -78, -67, -53, -79, -68, -55, -261, -80, -69, -57,
1092
- -1, -166, -89, -70, -59, -3, -90, -71, -4, -261,
1093
- -72, -261, -115, -83, -81, -73, -116, -82, -74, -261,
1094
- -86, -255, -88, -52, -54, -261, -2, -56, -58, -261,
1095
- -107, -110, -261, -136, -121, -60, -51, -261, -261, -62,
1096
- -120, -261, -91, -261, -95, -97, -261, -261, 455, -261,
1097
- -111, -113, -259, -261, -261, -50, -261, -135, -139, -138,
1098
- -261, -119, -6, -261, -7, -261, -261, -261, -261, -261,
1099
- -92, -85, -261, -261, -98, -100, -94, -96, -261, -261,
1100
- -104, -261, -261, -261, -261, -61, -62, -140, -137, -122,
1101
- -252, -209, -203, -261, -23, -213, -204, -216, -205, -219,
1102
- -206, -261, -224, -261, -10, -227, -24, -229, -20, -9,
1103
- -231, -26, -11, -233, -261, -12, -235, -261, -13, -237,
1104
- -202, -14, -256, -239, -179, -257, -183, -261, -258, -83,
1105
- -180, -261, -260, -261, -181, -261, -261, -195, -261, -21,
1106
- -261, -261, -261, -207, -261, -261, -201, -261, -261, -167,
1107
- -261, -179, -63, -5, -8, -261, -261, -261, -126, -202,
1108
- -261, -261, -141, -143, -148, -147, -134, -207, -102, -254,
1109
- -93, -261, -261, -84, -87, -106, -112, -114, -103, -261,
1110
- -108, -261, -261, -48, -261, -261, -261, -261, -261, -261,
1111
- -261, -261, -261, -261, -261, -261, -261, -261, -261, -261,
1112
- -261, -261, -261, -261, -261, -151, -261, -261, -261, -261,
1113
- -261, -261, -261, -19, -22, -261, -261, -196, -261, -261,
1114
- -261, -261, -189, -261, -190, -261, -197, -261, -261, -25,
1115
- -261, -243, -244, -245, -246, -247, -248, -249, -250, -251,
1116
- -242, -241, -261, -199, -261, -45, -198, -46, -261, -175,
1117
- -261, -261, -171, -261, -261, -261, -261, -124, -202, -125,
1118
- -261, -261, -131, -132, -261, -133, -261, -261, -146, -154,
1119
- -145, -261, -152, -99, -101, -105, -109, -47, -210, -211,
1120
- -212, -214, -215, -217, -218, -261, -221, -222, -223, -220,
1121
- -17, -225, -226, -228, -230, -232, -261, -234, -182, -150,
1122
- -261, -152, -261, -236, -261, -15, -261, -18, -261, -261,
1123
- -261, -261, -187, -188, -193, -261, -186, -261, -261, -261,
1124
- -44, -49, -253, -240, -261, -176, -174, -261, -178, -168,
1125
- -261, -170, -123, -261, -130, -261, -128, -149, -144, -142,
1126
- -261, -159, -202, -261, -261, -261, -261, -165, -153, -16,
1127
- -261, -261, -208, -261, -261, -261, -261, -261, -184, -261,
1128
- -185, -261, -261, -261, -261, -261, -200, -177, -169, -173,
1129
- -261, -129, -127, -158, -161, -261, -157, -202, -261, -163,
1130
- -164, -155, -27, -261, -238, -29, -30, -261, -194, -261,
1131
- -261, -261, -261, -261, -261, -261, -261, -172, -156, -160,
1132
- -162, -261, -191, -261, -261, -261, -261, -261, -43, -261,
1133
- -261, -261, -39, -261, -261, -261, -28, -192, -31, -261,
1134
- -41, -42, -261, -37, -38, -261, -261, -261, -35, -40,
1135
- -36, -261, -33, -34, -32 ]
1136
-
1137
- racc_goto_table = [
1138
- 42, 31, 172, 169, 189, 176, 202, 180, 81, 273,
1139
- 77, 188, 79, 43, 189, 94, 44, 31, 96, 97,
1140
- 47, 197, 40, 226, 90, 48, 84, 51, 196, 159,
1141
- 224, 266, 288, 189, 390, 16, 108, 20, 64, 82,
1142
- 211, 335, 368, 301, 302, 175, 61, 358, 59, 50,
1143
- 114, 54, 181, 46, 174, 306, 307, 308, 309, 345,
1144
- 64, 90, 90, 64, 64, 64, 64, 173, 298, 299,
1145
- 300, 368, 319, 98, 99, 93, 69, 54, 54, 105,
1146
- 95, 149, 153, 54, 303, 304, 313, 169, 311, 312,
1147
- 185, 225, 275, 106, 281, 235, 54, 64, 64, 234,
1148
- 103, 104, 106, 144, 189, 54, 314, 390, 315, 184,
1149
- 317, 294, 323, 87, 262, 316, nil, nil, nil, nil,
1150
- 114, 324, nil, 326, 330, 328, 196, nil, 196, nil,
1151
- nil, 224, 331, nil, 280, nil, 64, nil, 339, nil,
1152
- nil, nil, nil, 293, 292, nil, nil, nil, nil, nil,
1153
- 344, 149, nil, 236, nil, nil, 310, 224, nil, 248,
1154
- 334, nil, nil, nil, nil, nil, nil, 342, nil, 325,
1155
- nil, 327, nil, 144, nil, 144, nil, nil, nil, 343,
1156
- nil, 247, 189, nil, 321, nil, 372, nil, nil, 347,
1157
- 351, 169, 225, 353, nil, nil, nil, 355, nil, nil,
1158
- nil, nil, 290, nil, 360, 54, nil, nil, 95, nil,
1159
- 403, 54, 337, nil, 236, nil, nil, nil, 225, nil,
1160
- nil, nil, nil, nil, nil, nil, nil, 236, nil, 236,
1161
- 381, 383, nil, nil, nil, nil, 144, 64, nil, nil,
1162
- nil, nil, 81, nil, nil, 369, nil, nil, nil, 144,
1163
- 292, 144, nil, nil, nil, nil, nil, nil, nil, nil,
1164
- 332, 333, nil, 64, nil, nil, 389, 169, nil, 407,
1165
- nil, nil, nil, nil, nil, 410, nil, 413, 415, 321,
1166
- 395, nil, 398, nil, nil, 404, nil, 185, 169, nil,
1167
- nil, 348, 185, nil, nil, nil, 408, nil, nil, nil,
1168
- nil, nil, 425, 236, 357, 429, 417, 169, nil, 434,
1169
- 402, 54, 54, nil, 405, 406, nil, nil, nil, nil,
1170
- nil, 185, nil, nil, nil, 144, 445, nil, nil, nil,
1171
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 389,
1172
- 169, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1173
- nil, 428, nil, nil, 432, nil, nil, nil, nil, nil,
1174
- nil, 436, nil, nil, nil, 185, 440, 441, 236, nil,
1175
- 443, 444, 236, 236, nil, 448, nil, nil, nil, 449,
1176
- nil, nil, 450, nil, nil, nil, 452, 453, 187, nil,
1177
- 144, 454, nil, nil, 144, 144, nil, nil, 187, nil,
1178
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 236,
1179
- nil, nil, 236, nil, nil, nil, nil, 187, nil, 236,
1180
- nil, nil, nil, nil, 236, 236, nil, nil, 236, 236,
1181
- nil, 144, nil, 236, 144, nil, nil, 236, nil, nil,
1182
- 236, 144, nil, nil, 236, 236, 144, 144, nil, 236,
1183
- 144, 144, 237, nil, nil, 144, 246, nil, nil, 144,
1184
- 263, nil, 144, 187, nil, nil, 144, 144, nil, 65,
1185
- nil, 144, nil, nil, nil, nil, nil, nil, nil, nil,
1186
- nil, nil, nil, 78, nil, nil, nil, nil, 187, nil,
1187
- nil, 65, nil, nil, 65, 65, 65, 65, nil, nil,
1188
- 187, 187, 187, 187, 187, 187, 187, 107, 187, 187,
1189
- 187, 187, nil, 187, 187, 187, 187, 187, 78, 187,
1190
- nil, nil, nil, 187, nil, nil, nil, nil, 65, 65,
1191
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1192
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1193
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1194
- nil, nil, nil, nil, nil, nil, 187, 65, nil, nil,
1195
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1196
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1197
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1198
- nil, nil, nil, nil, nil, 107, nil, 78, nil, nil,
1199
- nil, nil, nil, nil, nil, nil, nil, nil, 187, nil,
1200
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1201
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1202
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1203
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1204
- nil, nil, nil, nil, nil, nil, nil, nil, 65, 187,
1205
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1206
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1207
- nil, nil, nil, nil, 65, nil, nil, nil, nil, nil,
1208
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1209
- 107 ]
1210
-
1211
- racc_goto_check = [
1212
- 17, 5, 27, 42, 72, 42, 20, 43, 40, 50,
1213
- 41, 16, 39, 5, 72, 35, 5, 5, 33, 33,
1214
- 5, 16, 15, 48, 32, 5, 4, 17, 37, 19,
1215
- 20, 61, 47, 72, 51, 1, 39, 2, 23, 8,
1216
- 16, 58, 49, 62, 62, 41, 31, 46, 6, 15,
1217
- 4, 15, 44, 2, 4, 64, 64, 64, 64, 53,
1218
- 23, 32, 32, 23, 23, 23, 23, 8, 61, 61,
1219
- 61, 49, 47, 31, 31, 34, 36, 15, 15, 26,
1220
- 6, 17, 18, 15, 63, 63, 66, 42, 65, 65,
1221
- 5, 33, 42, 6, 42, 9, 15, 23, 23, 19,
1222
- 36, 36, 6, 15, 72, 15, 67, 51, 68, 15,
1223
- 69, 16, 70, 7, 73, 20, nil, nil, nil, nil,
1224
- 4, 20, nil, 20, 48, 20, 37, nil, 37, nil,
1225
- nil, 20, 20, nil, 41, nil, 23, nil, 20, nil,
1226
- nil, nil, nil, 35, 39, nil, nil, nil, nil, nil,
1227
- 48, 17, nil, 17, nil, nil, 9, 20, nil, 17,
1228
- 42, nil, nil, nil, nil, nil, nil, 42, nil, 9,
1229
- nil, 9, nil, 15, nil, 15, nil, nil, nil, 42,
1230
- nil, 15, 72, nil, 39, nil, 61, nil, nil, 16,
1231
- 27, 42, 33, 42, nil, nil, nil, 42, nil, nil,
1232
- nil, nil, 6, nil, 42, 15, nil, nil, 6, nil,
1233
- 50, 15, 4, nil, 17, nil, nil, nil, 33, nil,
1234
- nil, nil, nil, nil, nil, nil, nil, 17, nil, 17,
1235
- 20, 20, nil, nil, nil, nil, 15, 23, nil, nil,
1236
- nil, nil, 40, nil, nil, 9, nil, nil, nil, 15,
1237
- 39, 15, nil, nil, nil, nil, nil, nil, nil, nil,
1238
- 15, 15, nil, 23, nil, nil, 27, 42, nil, 20,
1239
- nil, nil, nil, nil, nil, 20, nil, 20, 20, 39,
1240
- 42, nil, 43, nil, nil, 72, nil, 5, 42, nil,
1241
- nil, 15, 5, nil, nil, nil, 42, nil, nil, nil,
1242
- nil, nil, 20, 17, 15, 20, 27, 42, nil, 20,
1243
- 9, 15, 15, nil, 9, 9, nil, nil, nil, nil,
1244
- nil, 5, nil, nil, nil, 15, 20, nil, nil, nil,
1245
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 27,
1246
- 42, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1247
- nil, 9, nil, nil, 9, nil, nil, nil, nil, nil,
1248
- nil, 9, nil, nil, nil, 5, 9, 9, 17, nil,
1249
- 9, 9, 17, 17, nil, 9, nil, nil, nil, 9,
1250
- nil, nil, 9, nil, nil, nil, 9, 9, 59, nil,
1251
- 15, 9, nil, nil, 15, 15, nil, nil, 59, nil,
1252
- nil, nil, nil, nil, nil, nil, nil, nil, nil, 17,
1253
- nil, nil, 17, nil, nil, nil, nil, 59, nil, 17,
1254
- nil, nil, nil, nil, 17, 17, nil, nil, 17, 17,
1255
- nil, 15, nil, 17, 15, nil, nil, 17, nil, nil,
1256
- 17, 15, nil, nil, 17, 17, 15, 15, nil, 17,
1257
- 15, 15, 59, nil, nil, 15, 59, nil, nil, 15,
1258
- 59, nil, 15, 59, nil, nil, 15, 15, nil, 24,
1259
- nil, 15, nil, nil, nil, nil, nil, nil, nil, nil,
1260
- nil, nil, nil, 24, nil, nil, nil, nil, 59, nil,
1261
- nil, 24, nil, nil, 24, 24, 24, 24, nil, nil,
1262
- 59, 59, 59, 59, 59, 59, 59, 24, 59, 59,
1263
- 59, 59, nil, 59, 59, 59, 59, 59, 24, 59,
1264
- nil, nil, nil, 59, nil, nil, nil, nil, 24, 24,
1265
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1266
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1267
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1268
- nil, nil, nil, nil, nil, nil, 59, 24, nil, nil,
1269
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1270
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1271
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1272
- nil, nil, nil, nil, nil, 24, nil, 24, nil, nil,
1273
- nil, nil, nil, nil, nil, nil, nil, nil, 59, nil,
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, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1278
- nil, nil, nil, nil, nil, nil, nil, nil, 24, 59,
1279
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1280
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1281
- nil, nil, nil, nil, 24, nil, nil, nil, nil, nil,
1282
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
1283
- 24 ]
1284
-
1285
- racc_goto_pointer = [
1286
- nil, 35, 37, nil, -33, 1, 17, 54, -20, -60,
1287
- nil, nil, nil, nil, nil, 20, -81, -2, -1, -54,
1288
- -107, nil, nil, -1, 430, nil, 3, -84, nil, nil,
1289
- nil, 7, -37, -46, 12, -48, 27, -73, nil, -41,
1290
- -50, -43, -83, -82, -37, nil, -239, -153, -114, -250,
1291
- -161, -316, nil, -209, nil, nil, nil, nil, -202, 296,
1292
- nil, -136, -164, -125, -157, -129, -133, -114, -113, -113,
1293
- -115, nil, -88, -49 ]
1294
-
1295
- racc_goto_default = [
1296
- nil, nil, nil, 25, 28, 85, 80, nil, 124, 126,
1297
- 129, 132, 135, 138, 141, 171, nil, 33, nil, nil,
1298
- 162, 52, 12, 15, 19, 24, 55, 272, 34, 37,
1299
- 2, nil, 62, 63, nil, nil, nil, 70, 71, 58,
1300
- 60, nil, 110, 365, nil, 182, 183, 366, nil, 289,
1301
- nil, 274, 268, 269, 146, 150, 154, 157, nil, 163,
1302
- 167, 111, 115, 117, 119, 122, 125, 127, 130, 133,
1303
- 136, 139, 143, nil ]
1304
-
1305
- racc_token_table = {
1306
- false => 0,
1307
- Object.new => 1,
1308
- ":" => 2,
1309
- "case" => 3,
1310
- "default" => 4,
1311
- "{" => 5,
1312
- "}" => 6,
1313
- ";" => 7,
1314
- "if" => 8,
1315
- "(" => 9,
1316
- ")" => 10,
1317
- "else" => 11,
1318
- "switch" => 12,
1319
- "while" => 13,
1320
- "do" => 14,
1321
- "for" => 15,
1322
- "goto" => 16,
1323
- "continue" => 17,
1324
- "break" => 18,
1325
- "return" => 19,
1326
- "," => 20,
1327
- "=" => 21,
1328
- "typedef" => 22,
1329
- "extern" => 23,
1330
- "static" => 24,
1331
- "auto" => 25,
1332
- "register" => 26,
1333
- "void" => 27,
1334
- "char" => 28,
1335
- "short" => 29,
1336
- "int" => 30,
1337
- "long" => 31,
1338
- "float" => 32,
1339
- "double" => 33,
1340
- "signed" => 34,
1341
- "unsigned" => 35,
1342
- "_Bool" => 36,
1343
- "_Complex" => 37,
1344
- "_Imaginary" => 38,
1345
- "struct" => 39,
1346
- "union" => 40,
1347
- "enum" => 41,
1348
- "const" => 42,
1349
- "restrict" => 43,
1350
- "volatile" => 44,
1351
- "inline" => 45,
1352
- "[" => 46,
1353
- "]" => 47,
1354
- "*" => 48,
1355
- "..." => 49,
1356
- :TYPE_ID => 50,
1357
- "." => 51,
1358
- "->" => 52,
1359
- "++" => 53,
1360
- "--" => 54,
1361
- "sizeof" => 55,
1362
- "&" => 56,
1363
- "+" => 57,
1364
- "-" => 58,
1365
- "~" => 59,
1366
- "!" => 60,
1367
- "/" => 61,
1368
- "%" => 62,
1369
- "<<" => 63,
1370
- ">>" => 64,
1371
- "<" => 65,
1372
- ">" => 66,
1373
- "<=" => 67,
1374
- ">=" => 68,
1375
- "==" => 69,
1376
- "!=" => 70,
1377
- "^" => 71,
1378
- "|" => 72,
1379
- "&&" => 73,
1380
- "||" => 74,
1381
- "?" => 75,
1382
- "*=" => 76,
1383
- "/=" => 77,
1384
- "%=" => 78,
1385
- "+=" => 79,
1386
- "-=" => 80,
1387
- "<<=" => 81,
1388
- ">>=" => 82,
1389
- "&=" => 83,
1390
- "^=" => 84,
1391
- "|=" => 85,
1392
- :ID => 86,
1393
- :INT => 87,
1394
- :FLOAT => 88,
1395
- :CHAR => 89,
1396
- :STRING => 90 }
1397
-
1398
- racc_use_result_var = true
1399
-
1400
- racc_nt_base = 91
1401
-
1402
- Racc_arg = [
1403
- racc_action_table,
1404
- racc_action_check,
1405
- racc_action_default,
1406
- racc_action_pointer,
1407
- racc_goto_table,
1408
- racc_goto_check,
1409
- racc_goto_default,
1410
- racc_goto_pointer,
1411
- racc_nt_base,
1412
- racc_reduce_table,
1413
- racc_token_table,
1414
- racc_shift_n,
1415
- racc_reduce_n,
1416
- racc_use_result_var ]
1417
-
1418
- Racc_token_to_s_table = [
1419
- '$end',
1420
- 'error',
1421
- '":"',
1422
- '"case"',
1423
- '"default"',
1424
- '"{"',
1425
- '"}"',
1426
- '";"',
1427
- '"if"',
1428
- '"("',
1429
- '")"',
1430
- '"else"',
1431
- '"switch"',
1432
- '"while"',
1433
- '"do"',
1434
- '"for"',
1435
- '"goto"',
1436
- '"continue"',
1437
- '"break"',
1438
- '"return"',
1439
- '","',
1440
- '"="',
1441
- '"typedef"',
1442
- '"extern"',
1443
- '"static"',
1444
- '"auto"',
1445
- '"register"',
1446
- '"void"',
1447
- '"char"',
1448
- '"short"',
1449
- '"int"',
1450
- '"long"',
1451
- '"float"',
1452
- '"double"',
1453
- '"signed"',
1454
- '"unsigned"',
1455
- '"_Bool"',
1456
- '"_Complex"',
1457
- '"_Imaginary"',
1458
- '"struct"',
1459
- '"union"',
1460
- '"enum"',
1461
- '"const"',
1462
- '"restrict"',
1463
- '"volatile"',
1464
- '"inline"',
1465
- '"["',
1466
- '"]"',
1467
- '"*"',
1468
- '"..."',
1469
- 'TYPE_ID',
1470
- '"."',
1471
- '"->"',
1472
- '"++"',
1473
- '"--"',
1474
- '"sizeof"',
1475
- '"&"',
1476
- '"+"',
1477
- '"-"',
1478
- '"~"',
1479
- '"!"',
1480
- '"/"',
1481
- '"%"',
1482
- '"<<"',
1483
- '">>"',
1484
- '"<"',
1485
- '">"',
1486
- '"<="',
1487
- '">="',
1488
- '"=="',
1489
- '"!="',
1490
- '"^"',
1491
- '"|"',
1492
- '"&&"',
1493
- '"||"',
1494
- '"?"',
1495
- '"*="',
1496
- '"/="',
1497
- '"%="',
1498
- '"+="',
1499
- '"-="',
1500
- '"<<="',
1501
- '">>="',
1502
- '"&="',
1503
- '"^="',
1504
- '"|="',
1505
- 'ID',
1506
- 'INT',
1507
- 'FLOAT',
1508
- 'CHAR',
1509
- 'STRING',
1510
- '$start',
1511
- 'translation_unit',
1512
- 'external_declaration',
1513
- 'function_definition',
1514
- 'declaration',
1515
- 'declaration_specifiers',
1516
- 'declarator',
1517
- 'declaration_list',
1518
- 'compound_statement',
1519
- 'statement',
1520
- 'labeled_statement',
1521
- 'expression_statement',
1522
- 'selection_statement',
1523
- 'iteration_statement',
1524
- 'jump_statement',
1525
- 'identifier',
1526
- 'constant_expression',
1527
- 'typedef_name',
1528
- 'block_item_list',
1529
- 'block_item',
1530
- 'expression',
1531
- 'init_declarator_list',
1532
- 'storage_class_specifier',
1533
- 'type_specifier',
1534
- 'type_qualifier',
1535
- 'function_specifier',
1536
- 'init_declarator',
1537
- 'initializer',
1538
- 'struct_or_union_specifier',
1539
- 'enum_specifier',
1540
- 'struct_or_union',
1541
- 'struct_declaration_list',
1542
- 'struct_declaration',
1543
- 'specifier_qualifier_list',
1544
- 'struct_declarator_list',
1545
- 'struct_declarator',
1546
- 'enumerator_list',
1547
- 'enumerator',
1548
- 'enumeration_constant',
1549
- 'pointer',
1550
- 'direct_declarator',
1551
- 'type_qualifier_list',
1552
- 'assignment_expression',
1553
- 'parameter_type_list',
1554
- 'identifier_list',
1555
- 'parameter_list',
1556
- 'parameter_declaration',
1557
- 'abstract_declarator',
1558
- 'type_name',
1559
- 'direct_abstract_declarator',
1560
- 'initializer_list',
1561
- 'designation',
1562
- 'designator_list',
1563
- 'designator',
1564
- 'primary_expression',
1565
- 'constant',
1566
- 'string_literal',
1567
- 'postfix_expression',
1568
- 'argument_expression_list',
1569
- 'unary_expression',
1570
- 'unary_operator',
1571
- 'cast_expression',
1572
- 'multiplicative_expression',
1573
- 'additive_expression',
1574
- 'shift_expression',
1575
- 'relational_expression',
1576
- 'equality_expression',
1577
- 'and_expression',
1578
- 'exclusive_or_expression',
1579
- 'inclusive_or_expression',
1580
- 'logical_and_expression',
1581
- 'logical_or_expression',
1582
- 'conditional_expression',
1583
- 'assignment_operator']
1584
-
1585
- Racc_debug_parser = false
1586
-
1587
- ##### racc system variables end #####
1588
-
1589
- # reduce 0 omitted
1590
-
1591
- module_eval <<'.,.,', 'c.y', 9
1592
- def _reduce_1( val, _values, result )
1593
- result = TranslationUnit.new_at(val[0].pos, NodeChain[val[0]])
1594
- result
1595
- end
1596
- .,.,
1597
-
1598
- module_eval <<'.,.,', 'c.y', 10
1599
- def _reduce_2( val, _values, result )
1600
- result = val[0]; result.entities << val[1]
1601
- result
1602
- end
1603
- .,.,
1604
-
1605
- module_eval <<'.,.,', 'c.y', 14
1606
- def _reduce_3( val, _values, result )
1607
- result = val[0]
1608
- result
1609
- end
1610
- .,.,
1611
-
1612
- module_eval <<'.,.,', 'c.y', 15
1613
- def _reduce_4( val, _values, result )
1614
- result = val[0]
1615
- result
1616
- end
1617
- .,.,
1618
-
1619
- module_eval <<'.,.,', 'c.y', 19
1620
- def _reduce_5( val, _values, result )
1621
- result = make_function_def(val[0][0], val[0][1], val[1], val[2], val[3])
1622
- result
1623
- end
1624
- .,.,
1625
-
1626
- module_eval <<'.,.,', 'c.y', 20
1627
- def _reduce_6( val, _values, result )
1628
- result = make_function_def(val[0][0], val[0][1], val[1], nil , val[2])
1629
- result
1630
- end
1631
- .,.,
1632
-
1633
- module_eval <<'.,.,', 'c.y', 24
1634
- def _reduce_7( val, _values, result )
1635
- result = [val[0]]
1636
- result
1637
- end
1638
- .,.,
1639
-
1640
- module_eval <<'.,.,', 'c.y', 25
1641
- def _reduce_8( val, _values, result )
1642
- result = val[0] << val[1]
1643
- result
1644
- end
1645
- .,.,
1646
-
1647
- module_eval <<'.,.,', 'c.y', 31
1648
- def _reduce_9( val, _values, result )
1649
- result = val[0]
1650
- result
1651
- end
1652
- .,.,
1653
-
1654
- module_eval <<'.,.,', 'c.y', 32
1655
- def _reduce_10( val, _values, result )
1656
- result = val[0]
1657
- result
1658
- end
1659
- .,.,
1660
-
1661
- module_eval <<'.,.,', 'c.y', 33
1662
- def _reduce_11( val, _values, result )
1663
- result = val[0]
1664
- result
1665
- end
1666
- .,.,
1667
-
1668
- module_eval <<'.,.,', 'c.y', 34
1669
- def _reduce_12( val, _values, result )
1670
- result = val[0]
1671
- result
1672
- end
1673
- .,.,
1674
-
1675
- module_eval <<'.,.,', 'c.y', 35
1676
- def _reduce_13( val, _values, result )
1677
- result = val[0]
1678
- result
1679
- end
1680
- .,.,
1681
-
1682
- module_eval <<'.,.,', 'c.y', 36
1683
- def _reduce_14( val, _values, result )
1684
- result = val[0]
1685
- result
1686
- end
1687
- .,.,
1688
-
1689
- module_eval <<'.,.,', 'c.y', 40
1690
- def _reduce_15( val, _values, result )
1691
- val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].val)); result = val[2]
1692
- result
1693
- end
1694
- .,.,
1695
-
1696
- module_eval <<'.,.,', 'c.y', 41
1697
- def _reduce_16( val, _values, result )
1698
- val[3].labels.unshift(Case .new_at(val[0].pos, val[1] )); result = val[3]
1699
- result
1700
- end
1701
- .,.,
1702
-
1703
- module_eval <<'.,.,', 'c.y', 42
1704
- def _reduce_17( val, _values, result )
1705
- val[2].labels.unshift(Default .new_at(val[0].pos )); result = val[2]
1706
- result
1707
- end
1708
- .,.,
1709
-
1710
- module_eval <<'.,.,', 'c.y', 44
1711
- def _reduce_18( val, _values, result )
1712
- val[2].labels.unshift(PlainLabel.new_at(val[0].pos, val[0].name)); result = val[2]
1713
- result
1714
- end
1715
- .,.,
1716
-
1717
- module_eval <<'.,.,', 'c.y', 48
1718
- def _reduce_19( val, _values, result )
1719
- result = Block.new_at(val[0].pos, val[1])
1720
- result
1721
- end
1722
- .,.,
1723
-
1724
- module_eval <<'.,.,', 'c.y', 49
1725
- def _reduce_20( val, _values, result )
1726
- result = Block.new_at(val[0].pos )
1727
- result
1728
- end
1729
- .,.,
1730
-
1731
- module_eval <<'.,.,', 'c.y', 53
1732
- def _reduce_21( val, _values, result )
1733
- result = NodeChain[val[0]]
1734
- result
1735
- end
1736
- .,.,
1737
-
1738
- module_eval <<'.,.,', 'c.y', 54
1739
- def _reduce_22( val, _values, result )
1740
- result = val[0] << val[1]
1741
- result
1742
- end
1743
- .,.,
1744
-
1745
- module_eval <<'.,.,', 'c.y', 58
1746
- def _reduce_23( val, _values, result )
1747
- result = val[0]
1748
- result
1749
- end
1750
- .,.,
1751
-
1752
- module_eval <<'.,.,', 'c.y', 59
1753
- def _reduce_24( val, _values, result )
1754
- result = val[0]
1755
- result
1756
- end
1757
- .,.,
1758
-
1759
- module_eval <<'.,.,', 'c.y', 63
1760
- def _reduce_25( val, _values, result )
1761
- result = ExpressionStatement.new_at(val[0].pos, val[0])
1762
- result
1763
- end
1764
- .,.,
1765
-
1766
- module_eval <<'.,.,', 'c.y', 64
1767
- def _reduce_26( val, _values, result )
1768
- result = ExpressionStatement.new_at(val[0].pos )
1769
- result
1770
- end
1771
- .,.,
1772
-
1773
- module_eval <<'.,.,', 'c.y', 68
1774
- def _reduce_27( val, _values, result )
1775
- result = If .new_at(val[0].pos, val[2], val[4] )
1776
- result
1777
- end
1778
- .,.,
1779
-
1780
- module_eval <<'.,.,', 'c.y', 69
1781
- def _reduce_28( val, _values, result )
1782
- result = If .new_at(val[0].pos, val[2], val[4], val[6])
1783
- result
1784
- end
1785
- .,.,
1786
-
1787
- module_eval <<'.,.,', 'c.y', 70
1788
- def _reduce_29( val, _values, result )
1789
- result = Switch.new_at(val[0].pos, val[2], val[4] )
1790
- result
1791
- end
1792
- .,.,
1793
-
1794
- module_eval <<'.,.,', 'c.y', 74
1795
- def _reduce_30( val, _values, result )
1796
- result = While.new_at(val[0].pos, val[2], val[4] )
1797
- result
1798
- end
1799
- .,.,
1800
-
1801
- module_eval <<'.,.,', 'c.y', 75
1802
- def _reduce_31( val, _values, result )
1803
- result = While.new_at(val[0].pos, val[4], val[1], :do => true )
1804
- result
1805
- end
1806
- .,.,
1807
-
1808
- module_eval <<'.,.,', 'c.y', 76
1809
- def _reduce_32( val, _values, result )
1810
- result = For.new_at(val[0].pos, val[2], val[4], val[6], val[8])
1811
- result
1812
- end
1813
- .,.,
1814
-
1815
- module_eval <<'.,.,', 'c.y', 77
1816
- def _reduce_33( val, _values, result )
1817
- result = For.new_at(val[0].pos, val[2], val[4], nil , val[7])
1818
- result
1819
- end
1820
- .,.,
1821
-
1822
- module_eval <<'.,.,', 'c.y', 78
1823
- def _reduce_34( val, _values, result )
1824
- result = For.new_at(val[0].pos, val[2], nil , val[5], val[7])
1825
- result
1826
- end
1827
- .,.,
1828
-
1829
- module_eval <<'.,.,', 'c.y', 79
1830
- def _reduce_35( val, _values, result )
1831
- result = For.new_at(val[0].pos, val[2], nil , nil , val[6])
1832
- result
1833
- end
1834
- .,.,
1835
-
1836
- module_eval <<'.,.,', 'c.y', 80
1837
- def _reduce_36( val, _values, result )
1838
- result = For.new_at(val[0].pos, nil , val[3], val[5], val[7])
1839
- result
1840
- end
1841
- .,.,
1842
-
1843
- module_eval <<'.,.,', 'c.y', 81
1844
- def _reduce_37( val, _values, result )
1845
- result = For.new_at(val[0].pos, nil , val[3], nil , val[6])
1846
- result
1847
- end
1848
- .,.,
1849
-
1850
- module_eval <<'.,.,', 'c.y', 82
1851
- def _reduce_38( val, _values, result )
1852
- result = For.new_at(val[0].pos, nil , nil , val[4], val[6])
1853
- result
1854
- end
1855
- .,.,
1856
-
1857
- module_eval <<'.,.,', 'c.y', 83
1858
- def _reduce_39( val, _values, result )
1859
- result = For.new_at(val[0].pos, nil , nil , nil , val[5])
1860
- result
1861
- end
1862
- .,.,
1863
-
1864
- module_eval <<'.,.,', 'c.y', 84
1865
- def _reduce_40( val, _values, result )
1866
- result = For.new_at(val[0].pos, val[2], val[3], val[5], val[7])
1867
- result
1868
- end
1869
- .,.,
1870
-
1871
- module_eval <<'.,.,', 'c.y', 85
1872
- def _reduce_41( val, _values, result )
1873
- result = For.new_at(val[0].pos, val[2], val[3], nil , val[6])
1874
- result
1875
- end
1876
- .,.,
1877
-
1878
- module_eval <<'.,.,', 'c.y', 86
1879
- def _reduce_42( val, _values, result )
1880
- result = For.new_at(val[0].pos, val[2], nil , val[4], val[6])
1881
- result
1882
- end
1883
- .,.,
1884
-
1885
- module_eval <<'.,.,', 'c.y', 87
1886
- def _reduce_43( val, _values, result )
1887
- result = For.new_at(val[0].pos, val[2], nil , nil , val[5])
1888
- result
1889
- end
1890
- .,.,
1891
-
1892
- module_eval <<'.,.,', 'c.y', 91
1893
- def _reduce_44( val, _values, result )
1894
- result = Goto .new_at(val[0].pos, val[1].val)
1895
- result
1896
- end
1897
- .,.,
1898
-
1899
- module_eval <<'.,.,', 'c.y', 92
1900
- def _reduce_45( val, _values, result )
1901
- result = Continue.new_at(val[0].pos )
1902
- result
1903
- end
1904
- .,.,
1905
-
1906
- module_eval <<'.,.,', 'c.y', 93
1907
- def _reduce_46( val, _values, result )
1908
- result = Break .new_at(val[0].pos )
1909
- result
1910
- end
1911
- .,.,
1912
-
1913
- module_eval <<'.,.,', 'c.y', 94
1914
- def _reduce_47( val, _values, result )
1915
- result = Return .new_at(val[0].pos, val[1] )
1916
- result
1917
- end
1918
- .,.,
1919
-
1920
- module_eval <<'.,.,', 'c.y', 95
1921
- def _reduce_48( val, _values, result )
1922
- result = Return .new_at(val[0].pos )
1923
- result
1924
- end
1925
- .,.,
1926
-
1927
- module_eval <<'.,.,', 'c.y', 97
1928
- def _reduce_49( val, _values, result )
1929
- result = Goto .new_at(val[0].pos, val[1].name)
1930
- result
1931
- end
1932
- .,.,
1933
-
1934
- module_eval <<'.,.,', 'c.y', 103
1935
- def _reduce_50( val, _values, result )
1936
- result = make_declaration(val[0][0], val[0][1], val[1])
1937
- result
1938
- end
1939
- .,.,
1940
-
1941
- module_eval <<'.,.,', 'c.y', 104
1942
- def _reduce_51( val, _values, result )
1943
- result = make_declaration(val[0][0], val[0][1], NodeArray[])
1944
- result
1945
- end
1946
- .,.,
1947
-
1948
- module_eval <<'.,.,', 'c.y', 108
1949
- def _reduce_52( val, _values, result )
1950
- val[1][1] << val[0][1]; result = val[1]
1951
- result
1952
- end
1953
- .,.,
1954
-
1955
- module_eval <<'.,.,', 'c.y', 109
1956
- def _reduce_53( val, _values, result )
1957
- result = [val[0][0], [val[0][1]]]
1958
- result
1959
- end
1960
- .,.,
1961
-
1962
- module_eval <<'.,.,', 'c.y', 110
1963
- def _reduce_54( val, _values, result )
1964
- val[1][1] << val[0][1]; result = val[1]
1965
- result
1966
- end
1967
- .,.,
1968
-
1969
- module_eval <<'.,.,', 'c.y', 111
1970
- def _reduce_55( val, _values, result )
1971
- result = [val[0][0], [val[0][1]]]
1972
- result
1973
- end
1974
- .,.,
1975
-
1976
- module_eval <<'.,.,', 'c.y', 112
1977
- def _reduce_56( val, _values, result )
1978
- val[1][1] << val[0][1]; result = val[1]
1979
- result
1980
- end
1981
- .,.,
1982
-
1983
- module_eval <<'.,.,', 'c.y', 113
1984
- def _reduce_57( val, _values, result )
1985
- result = [val[0][0], [val[0][1]]]
1986
- result
1987
- end
1988
- .,.,
1989
-
1990
- module_eval <<'.,.,', 'c.y', 114
1991
- def _reduce_58( val, _values, result )
1992
- val[1][1] << val[0][1]; result = val[1]
1993
- result
1994
- end
1995
- .,.,
1996
-
1997
- module_eval <<'.,.,', 'c.y', 115
1998
- def _reduce_59( val, _values, result )
1999
- result = [val[0][0], [val[0][1]]]
2000
- result
2001
- end
2002
- .,.,
2003
-
2004
- module_eval <<'.,.,', 'c.y', 119
2005
- def _reduce_60( val, _values, result )
2006
- result = NodeArray[val[0]]
2007
- result
2008
- end
2009
- .,.,
2010
-
2011
- module_eval <<'.,.,', 'c.y', 120
2012
- def _reduce_61( val, _values, result )
2013
- result = val[0] << val[2]
2014
- result
2015
- end
2016
- .,.,
2017
-
2018
- module_eval <<'.,.,', 'c.y', 124
2019
- def _reduce_62( val, _values, result )
2020
- result = val[0]
2021
- result
2022
- end
2023
- .,.,
2024
-
2025
- module_eval <<'.,.,', 'c.y', 125
2026
- def _reduce_63( val, _values, result )
2027
- val[0].init = val[2]; result = val[0]
2028
- result
2029
- end
2030
- .,.,
2031
-
2032
- module_eval <<'.,.,', 'c.y', 129
2033
- def _reduce_64( val, _values, result )
2034
- result = [val[0].pos, val[0].val]
2035
- result
2036
- end
2037
- .,.,
2038
-
2039
- module_eval <<'.,.,', 'c.y', 130
2040
- def _reduce_65( val, _values, result )
2041
- result = [val[0].pos, val[0].val]
2042
- result
2043
- end
2044
- .,.,
2045
-
2046
- module_eval <<'.,.,', 'c.y', 131
2047
- def _reduce_66( val, _values, result )
2048
- result = [val[0].pos, val[0].val]
2049
- result
2050
- end
2051
- .,.,
2052
-
2053
- module_eval <<'.,.,', 'c.y', 132
2054
- def _reduce_67( val, _values, result )
2055
- result = [val[0].pos, val[0].val]
2056
- result
2057
- end
2058
- .,.,
2059
-
2060
- module_eval <<'.,.,', 'c.y', 133
2061
- def _reduce_68( val, _values, result )
2062
- result = [val[0].pos, val[0].val]
2063
- result
2064
- end
2065
- .,.,
2066
-
2067
- module_eval <<'.,.,', 'c.y', 137
2068
- def _reduce_69( val, _values, result )
2069
- result = [val[0].pos, val[0].val]
2070
- result
2071
- end
2072
- .,.,
2073
-
2074
- module_eval <<'.,.,', 'c.y', 138
2075
- def _reduce_70( val, _values, result )
2076
- result = [val[0].pos, val[0].val]
2077
- result
2078
- end
2079
- .,.,
2080
-
2081
- module_eval <<'.,.,', 'c.y', 139
2082
- def _reduce_71( val, _values, result )
2083
- result = [val[0].pos, val[0].val]
2084
- result
2085
- end
2086
- .,.,
2087
-
2088
- module_eval <<'.,.,', 'c.y', 140
2089
- def _reduce_72( val, _values, result )
2090
- result = [val[0].pos, val[0].val]
2091
- result
2092
- end
2093
- .,.,
2094
-
2095
- module_eval <<'.,.,', 'c.y', 141
2096
- def _reduce_73( val, _values, result )
2097
- result = [val[0].pos, val[0].val]
2098
- result
2099
- end
2100
- .,.,
2101
-
2102
- module_eval <<'.,.,', 'c.y', 142
2103
- def _reduce_74( val, _values, result )
2104
- result = [val[0].pos, val[0].val]
2105
- result
2106
- end
2107
- .,.,
2108
-
2109
- module_eval <<'.,.,', 'c.y', 143
2110
- def _reduce_75( val, _values, result )
2111
- result = [val[0].pos, val[0].val]
2112
- result
2113
- end
2114
- .,.,
2115
-
2116
- module_eval <<'.,.,', 'c.y', 144
2117
- def _reduce_76( val, _values, result )
2118
- result = [val[0].pos, val[0].val]
2119
- result
2120
- end
2121
- .,.,
2122
-
2123
- module_eval <<'.,.,', 'c.y', 145
2124
- def _reduce_77( val, _values, result )
2125
- result = [val[0].pos, val[0].val]
2126
- result
2127
- end
2128
- .,.,
2129
-
2130
- module_eval <<'.,.,', 'c.y', 146
2131
- def _reduce_78( val, _values, result )
2132
- result = [val[0].pos, val[0].val]
2133
- result
2134
- end
2135
- .,.,
2136
-
2137
- module_eval <<'.,.,', 'c.y', 147
2138
- def _reduce_79( val, _values, result )
2139
- result = [val[0].pos, val[0].val]
2140
- result
2141
- end
2142
- .,.,
2143
-
2144
- module_eval <<'.,.,', 'c.y', 148
2145
- def _reduce_80( val, _values, result )
2146
- result = [val[0].pos, val[0].val]
2147
- result
2148
- end
2149
- .,.,
2150
-
2151
- module_eval <<'.,.,', 'c.y', 149
2152
- def _reduce_81( val, _values, result )
2153
- result = [val[0].pos, val[0] ]
2154
- result
2155
- end
2156
- .,.,
2157
-
2158
- module_eval <<'.,.,', 'c.y', 150
2159
- def _reduce_82( val, _values, result )
2160
- result = [val[0].pos, val[0] ]
2161
- result
2162
- end
2163
- .,.,
2164
-
2165
- module_eval <<'.,.,', 'c.y', 151
2166
- def _reduce_83( val, _values, result )
2167
- result = [val[0].pos, val[0] ]
2168
- result
2169
- end
2170
- .,.,
2171
-
2172
- module_eval <<'.,.,', 'c.y', 155
2173
- def _reduce_84( val, _values, result )
2174
- result = val[0][1].new_at(val[0][0], val[1].val, val[3])
2175
- result
2176
- end
2177
- .,.,
2178
-
2179
- module_eval <<'.,.,', 'c.y', 156
2180
- def _reduce_85( val, _values, result )
2181
- result = val[0][1].new_at(val[0][0], nil , val[2])
2182
- result
2183
- end
2184
- .,.,
2185
-
2186
- module_eval <<'.,.,', 'c.y', 157
2187
- def _reduce_86( val, _values, result )
2188
- result = val[0][1].new_at(val[0][0], val[1].val, nil )
2189
- result
2190
- end
2191
- .,.,
2192
-
2193
- module_eval <<'.,.,', 'c.y', 159
2194
- def _reduce_87( val, _values, result )
2195
- result = val[0][1].new_at(val[0][0], val[1].name, val[3])
2196
- result
2197
- end
2198
- .,.,
2199
-
2200
- module_eval <<'.,.,', 'c.y', 160
2201
- def _reduce_88( val, _values, result )
2202
- result = val[0][1].new_at(val[0][0], val[1].name, nil )
2203
- result
2204
- end
2205
- .,.,
2206
-
2207
- module_eval <<'.,.,', 'c.y', 164
2208
- def _reduce_89( val, _values, result )
2209
- result = [val[0].pos, Struct]
2210
- result
2211
- end
2212
- .,.,
2213
-
2214
- module_eval <<'.,.,', 'c.y', 165
2215
- def _reduce_90( val, _values, result )
2216
- result = [val[0].pos, Union ]
2217
- result
2218
- end
2219
- .,.,
2220
-
2221
- module_eval <<'.,.,', 'c.y', 169
2222
- def _reduce_91( val, _values, result )
2223
- result = NodeArray[val[0]]
2224
- result
2225
- end
2226
- .,.,
2227
-
2228
- module_eval <<'.,.,', 'c.y', 170
2229
- def _reduce_92( val, _values, result )
2230
- val[0] << val[1]; result = val[0]
2231
- result
2232
- end
2233
- .,.,
2234
-
2235
- module_eval <<'.,.,', 'c.y', 174
2236
- def _reduce_93( val, _values, result )
2237
- result = make_declaration(val[0][0], val[0][1], val[1])
2238
- result
2239
- end
2240
- .,.,
2241
-
2242
- module_eval <<'.,.,', 'c.y', 178
2243
- def _reduce_94( val, _values, result )
2244
- val[1][1] << val[0][1]; result = val[1]
2245
- result
2246
- end
2247
- .,.,
2248
-
2249
- module_eval <<'.,.,', 'c.y', 179
2250
- def _reduce_95( val, _values, result )
2251
- result = [val[0][0], [val[0][1]]]
2252
- result
2253
- end
2254
- .,.,
2255
-
2256
- module_eval <<'.,.,', 'c.y', 180
2257
- def _reduce_96( val, _values, result )
2258
- val[1][1] << val[0][1]; result = val[1]
2259
- result
2260
- end
2261
- .,.,
2262
-
2263
- module_eval <<'.,.,', 'c.y', 181
2264
- def _reduce_97( val, _values, result )
2265
- result = [val[0][0], [val[0][1]]]
2266
- result
2267
- end
2268
- .,.,
2269
-
2270
- module_eval <<'.,.,', 'c.y', 185
2271
- def _reduce_98( val, _values, result )
2272
- result = NodeArray[val[0]]
2273
- result
2274
- end
2275
- .,.,
2276
-
2277
- module_eval <<'.,.,', 'c.y', 186
2278
- def _reduce_99( val, _values, result )
2279
- result = val[0] << val[2]
2280
- result
2281
- end
2282
- .,.,
2283
-
2284
- module_eval <<'.,.,', 'c.y', 190
2285
- def _reduce_100( val, _values, result )
2286
- result = val[0]
2287
- result
2288
- end
2289
- .,.,
2290
-
2291
- module_eval <<'.,.,', 'c.y', 191
2292
- def _reduce_101( val, _values, result )
2293
- result = val[0]; val[0].num_bits = val[2]
2294
- result
2295
- end
2296
- .,.,
2297
-
2298
- module_eval <<'.,.,', 'c.y', 192
2299
- def _reduce_102( val, _values, result )
2300
- result = Declarator.new_at(val[0].pos, :num_bits => val[1])
2301
- result
2302
- end
2303
- .,.,
2304
-
2305
- module_eval <<'.,.,', 'c.y', 196
2306
- def _reduce_103( val, _values, result )
2307
- result = Enum.new_at(val[0].pos, val[1].val, val[3])
2308
- result
2309
- end
2310
- .,.,
2311
-
2312
- module_eval <<'.,.,', 'c.y', 197
2313
- def _reduce_104( val, _values, result )
2314
- result = Enum.new_at(val[0].pos, nil , val[2])
2315
- result
2316
- end
2317
- .,.,
2318
-
2319
- module_eval <<'.,.,', 'c.y', 198
2320
- def _reduce_105( val, _values, result )
2321
- result = Enum.new_at(val[0].pos, val[1].val, val[3])
2322
- result
2323
- end
2324
- .,.,
2325
-
2326
- module_eval <<'.,.,', 'c.y', 199
2327
- def _reduce_106( val, _values, result )
2328
- result = Enum.new_at(val[0].pos, nil , val[2])
2329
- result
2330
- end
2331
- .,.,
2332
-
2333
- module_eval <<'.,.,', 'c.y', 200
2334
- def _reduce_107( val, _values, result )
2335
- result = Enum.new_at(val[0].pos, val[1].val, nil )
2336
- result
2337
- end
2338
- .,.,
2339
-
2340
- module_eval <<'.,.,', 'c.y', 202
2341
- def _reduce_108( val, _values, result )
2342
- result = Enum.new_at(val[0].pos, val[1].name, val[3])
2343
- result
2344
- end
2345
- .,.,
2346
-
2347
- module_eval <<'.,.,', 'c.y', 203
2348
- def _reduce_109( val, _values, result )
2349
- result = Enum.new_at(val[0].pos, val[1].name, val[3])
2350
- result
2351
- end
2352
- .,.,
2353
-
2354
- module_eval <<'.,.,', 'c.y', 204
2355
- def _reduce_110( val, _values, result )
2356
- result = Enum.new_at(val[0].pos, val[1].name, nil )
2357
- result
2358
- end
2359
- .,.,
2360
-
2361
- module_eval <<'.,.,', 'c.y', 208
2362
- def _reduce_111( val, _values, result )
2363
- result = NodeArray[val[0]]
2364
- result
2365
- end
2366
- .,.,
2367
-
2368
- module_eval <<'.,.,', 'c.y', 209
2369
- def _reduce_112( val, _values, result )
2370
- result = val[0] << val[2]
2371
- result
2372
- end
2373
- .,.,
2374
-
2375
- module_eval <<'.,.,', 'c.y', 213
2376
- def _reduce_113( val, _values, result )
2377
- result = Enumerator.new_at(val[0].pos, val[0].val, nil )
2378
- result
2379
- end
2380
- .,.,
2381
-
2382
- module_eval <<'.,.,', 'c.y', 214
2383
- def _reduce_114( val, _values, result )
2384
- result = Enumerator.new_at(val[0].pos, val[0].val, val[2])
2385
- result
2386
- end
2387
- .,.,
2388
-
2389
- module_eval <<'.,.,', 'c.y', 218
2390
- def _reduce_115( val, _values, result )
2391
- result = [val[0].pos, val[0].val]
2392
- result
2393
- end
2394
- .,.,
2395
-
2396
- module_eval <<'.,.,', 'c.y', 219
2397
- def _reduce_116( val, _values, result )
2398
- result = [val[0].pos, val[0].val]
2399
- result
2400
- end
2401
- .,.,
2402
-
2403
- module_eval <<'.,.,', 'c.y', 220
2404
- def _reduce_117( val, _values, result )
2405
- result = [val[0].pos, val[0].val]
2406
- result
2407
- end
2408
- .,.,
2409
-
2410
- module_eval <<'.,.,', 'c.y', 224
2411
- def _reduce_118( val, _values, result )
2412
- result = [val[0].pos, val[0].val]
2413
- result
2414
- end
2415
- .,.,
2416
-
2417
- module_eval <<'.,.,', 'c.y', 228
2418
- def _reduce_119( val, _values, result )
2419
- result = add_decl_type(val[1], val[0])
2420
- result
2421
- end
2422
- .,.,
2423
-
2424
- module_eval <<'.,.,', 'c.y', 229
2425
- def _reduce_120( val, _values, result )
2426
- result = val[0]
2427
- result
2428
- end
2429
- .,.,
2430
-
2431
- module_eval <<'.,.,', 'c.y', 233
2432
- def _reduce_121( val, _values, result )
2433
- result = Declarator.new_at(val[0].pos, nil, val[0].val)
2434
- result
2435
- end
2436
- .,.,
2437
-
2438
- module_eval <<'.,.,', 'c.y', 234
2439
- def _reduce_122( val, _values, result )
2440
- result = val[1]
2441
- result
2442
- end
2443
- .,.,
2444
-
2445
- module_eval <<'.,.,', 'c.y', 235
2446
- def _reduce_123( val, _values, result )
2447
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2448
- result
2449
- end
2450
- .,.,
2451
-
2452
- module_eval <<'.,.,', 'c.y', 236
2453
- def _reduce_124( val, _values, result )
2454
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2455
- result
2456
- end
2457
- .,.,
2458
-
2459
- module_eval <<'.,.,', 'c.y', 237
2460
- def _reduce_125( val, _values, result )
2461
- result = add_decl_type(val[0], Array.new_at(val[0].pos, nil, val[2]))
2462
- result
2463
- end
2464
- .,.,
2465
-
2466
- module_eval <<'.,.,', 'c.y', 238
2467
- def _reduce_126( val, _values, result )
2468
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2469
- result
2470
- end
2471
- .,.,
2472
-
2473
- module_eval <<'.,.,', 'c.y', 239
2474
- def _reduce_127( val, _values, result )
2475
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2476
- result
2477
- end
2478
- .,.,
2479
-
2480
- module_eval <<'.,.,', 'c.y', 240
2481
- def _reduce_128( val, _values, result )
2482
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2483
- result
2484
- end
2485
- .,.,
2486
-
2487
- module_eval <<'.,.,', 'c.y', 241
2488
- def _reduce_129( val, _values, result )
2489
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2490
- result
2491
- end
2492
- .,.,
2493
-
2494
- module_eval <<'.,.,', 'c.y', 242
2495
- def _reduce_130( val, _values, result )
2496
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2497
- result
2498
- end
2499
- .,.,
2500
-
2501
- module_eval <<'.,.,', 'c.y', 243
2502
- def _reduce_131( val, _values, result )
2503
- result = add_decl_type(val[0], Array.new_at(val[0].pos ))
2504
- result
2505
- end
2506
- .,.,
2507
-
2508
- module_eval <<'.,.,', 'c.y', 244
2509
- def _reduce_132( val, _values, result )
2510
- result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, param_list(*val[2]), :var_args => val[2][1]))
2511
- result
2512
- end
2513
- .,.,
2514
-
2515
- module_eval <<'.,.,', 'c.y', 245
2516
- def _reduce_133( val, _values, result )
2517
- result = add_decl_type(val[0], Function.new_at(val[0].pos, nil, val[2]))
2518
- result
2519
- end
2520
- .,.,
2521
-
2522
- module_eval <<'.,.,', 'c.y', 246
2523
- def _reduce_134( val, _values, result )
2524
- result = add_decl_type(val[0], Function.new_at(val[0].pos ))
2525
- result
2526
- end
2527
- .,.,
2528
-
2529
- module_eval <<'.,.,', 'c.y', 250
2530
- def _reduce_135( val, _values, result )
2531
- result = add_type_quals(Pointer.new_at(val[0].pos), val[1][1])
2532
- result
2533
- end
2534
- .,.,
2535
-
2536
- module_eval <<'.,.,', 'c.y', 251
2537
- def _reduce_136( val, _values, result )
2538
- result = Pointer.new_at(val[0].pos)
2539
- result
2540
- end
2541
- .,.,
2542
-
2543
- module_eval <<'.,.,', 'c.y', 252
2544
- def _reduce_137( val, _values, result )
2545
- p = add_type_quals(Pointer.new_at(val[0].pos), val[1][1]); val[2].direct_type = p; result = val[2]
2546
- result
2547
- end
2548
- .,.,
2549
-
2550
- module_eval <<'.,.,', 'c.y', 253
2551
- def _reduce_138( val, _values, result )
2552
- p = Pointer.new_at(val[0].pos) ; val[1].direct_type = p; result = val[1]
2553
- result
2554
- end
2555
- .,.,
2556
-
2557
- module_eval <<'.,.,', 'c.y', 257
2558
- def _reduce_139( val, _values, result )
2559
- result = [val[0][0], [val[0][1]]]
2560
- result
2561
- end
2562
- .,.,
2563
-
2564
- module_eval <<'.,.,', 'c.y', 258
2565
- def _reduce_140( val, _values, result )
2566
- val[0][1] << val[1][1]; result = val[0]
2567
- result
2568
- end
2569
- .,.,
2570
-
2571
- module_eval <<'.,.,', 'c.y', 262
2572
- def _reduce_141( val, _values, result )
2573
- result = [val[0], false]
2574
- result
2575
- end
2576
- .,.,
2577
-
2578
- module_eval <<'.,.,', 'c.y', 263
2579
- def _reduce_142( val, _values, result )
2580
- result = [val[0], true ]
2581
- result
2582
- end
2583
- .,.,
2584
-
2585
- module_eval <<'.,.,', 'c.y', 267
2586
- def _reduce_143( val, _values, result )
2587
- result = NodeArray[val[0]]
2588
- result
2589
- end
2590
- .,.,
2591
-
2592
- module_eval <<'.,.,', 'c.y', 268
2593
- def _reduce_144( val, _values, result )
2594
- result = val[0] << val[2]
2595
- result
2596
- end
2597
- .,.,
2598
-
2599
- module_eval <<'.,.,', 'c.y', 273
2600
- def _reduce_145( val, _values, result )
2601
- ind_type = val[1].indirect_type and ind_type.detach
2602
- result = make_parameter(val[0][0], val[0][1], ind_type, val[1].name)
2603
- result
2604
- end
2605
- .,.,
2606
-
2607
- module_eval <<'.,.,', 'c.y', 274
2608
- def _reduce_146( val, _values, result )
2609
- result = make_parameter(val[0][0], val[0][1], val[1] , nil )
2610
- result
2611
- end
2612
- .,.,
2613
-
2614
- module_eval <<'.,.,', 'c.y', 275
2615
- def _reduce_147( val, _values, result )
2616
- result = make_parameter(val[0][0], val[0][1], nil , nil )
2617
- result
2618
- end
2619
- .,.,
2620
-
2621
- module_eval <<'.,.,', 'c.y', 279
2622
- def _reduce_148( val, _values, result )
2623
- result = NodeArray[Parameter.new_at(val[0].pos, nil, val[0].val)]
2624
- result
2625
- end
2626
- .,.,
2627
-
2628
- module_eval <<'.,.,', 'c.y', 280
2629
- def _reduce_149( val, _values, result )
2630
- result = val[0] << Parameter.new_at(val[2].pos, nil, val[2].val)
2631
- result
2632
- end
2633
- .,.,
2634
-
2635
- module_eval <<'.,.,', 'c.y', 284
2636
- def _reduce_150( val, _values, result )
2637
- val[1].direct_type = make_direct_type(val[0][0], val[0][1]); result = val[1]
2638
- result
2639
- end
2640
- .,.,
2641
-
2642
- module_eval <<'.,.,', 'c.y', 285
2643
- def _reduce_151( val, _values, result )
2644
- result = make_direct_type(val[0][0], val[0][1])
2645
- result
2646
- end
2647
- .,.,
2648
-
2649
- module_eval <<'.,.,', 'c.y', 289
2650
- def _reduce_152( val, _values, result )
2651
- result = val[0]
2652
- result
2653
- end
2654
- .,.,
2655
-
2656
- module_eval <<'.,.,', 'c.y', 290
2657
- def _reduce_153( val, _values, result )
2658
- val[1].direct_type = val[0]; result = val[1]
2659
- result
2660
- end
2661
- .,.,
2662
-
2663
- module_eval <<'.,.,', 'c.y', 291
2664
- def _reduce_154( val, _values, result )
2665
- result = val[0]
2666
- result
2667
- end
2668
- .,.,
2669
-
2670
- module_eval <<'.,.,', 'c.y', 295
2671
- def _reduce_155( val, _values, result )
2672
- result = val[1]
2673
- result
2674
- end
2675
- .,.,
2676
-
2677
- module_eval <<'.,.,', 'c.y', 296
2678
- def _reduce_156( val, _values, result )
2679
- val[0].direct_type = Array.new_at(val[0].pos, nil, val[2]); result = val[0]
2680
- result
2681
- end
2682
- .,.,
2683
-
2684
- module_eval <<'.,.,', 'c.y', 297
2685
- def _reduce_157( val, _values, result )
2686
- val[0].direct_type = Array.new_at(val[0].pos, nil, nil ); result = val[0]
2687
- result
2688
- end
2689
- .,.,
2690
-
2691
- module_eval <<'.,.,', 'c.y', 298
2692
- def _reduce_158( val, _values, result )
2693
- result = Array.new_at(val[0].pos, nil, val[1])
2694
- result
2695
- end
2696
- .,.,
2697
-
2698
- module_eval <<'.,.,', 'c.y', 299
2699
- def _reduce_159( val, _values, result )
2700
- result = Array.new_at(val[0].pos )
2701
- result
2702
- end
2703
- .,.,
2704
-
2705
- module_eval <<'.,.,', 'c.y', 300
2706
- def _reduce_160( val, _values, result )
2707
- val[0].direct_type = Array.new_at(val[0].pos); result = val[0]
2708
- result
2709
- end
2710
- .,.,
2711
-
2712
- module_eval <<'.,.,', 'c.y', 301
2713
- def _reduce_161( val, _values, result )
2714
- result = Array.new_at(val[0].pos)
2715
- result
2716
- end
2717
- .,.,
2718
-
2719
- module_eval <<'.,.,', 'c.y', 302
2720
- def _reduce_162( val, _values, result )
2721
- val[0].direct_type = Function.new_at(val[0].pos, nil, param_list(*val[2]), val[2][1]); result = val[0]
2722
- result
2723
- end
2724
- .,.,
2725
-
2726
- module_eval <<'.,.,', 'c.y', 303
2727
- def _reduce_163( val, _values, result )
2728
- val[0].direct_type = Function.new_at(val[0].pos ); result = val[0]
2729
- result
2730
- end
2731
- .,.,
2732
-
2733
- module_eval <<'.,.,', 'c.y', 304
2734
- def _reduce_164( val, _values, result )
2735
- result = Function.new_at(val[0].pos, nil, param_list(*val[1]), val[1][1])
2736
- result
2737
- end
2738
- .,.,
2739
-
2740
- module_eval <<'.,.,', 'c.y', 305
2741
- def _reduce_165( val, _values, result )
2742
- result = Function.new_at(val[0].pos )
2743
- result
2744
- end
2745
- .,.,
2746
-
2747
- module_eval <<'.,.,', 'c.y', 311
2748
- def _reduce_166( val, _values, result )
2749
- result = CustomType.new_at(val[0].pos, val[0].val)
2750
- result
2751
- end
2752
- .,.,
2753
-
2754
- module_eval <<'.,.,', 'c.y', 315
2755
- def _reduce_167( val, _values, result )
2756
- result = val[0]
2757
- result
2758
- end
2759
- .,.,
2760
-
2761
- module_eval <<'.,.,', 'c.y', 316
2762
- def _reduce_168( val, _values, result )
2763
- result = CompoundLiteral.new_at(val[0].pos, nil, val[1])
2764
- result
2765
- end
2766
- .,.,
2767
-
2768
- module_eval <<'.,.,', 'c.y', 317
2769
- def _reduce_169( val, _values, result )
2770
- result = CompoundLiteral.new_at(val[0].pos, nil, val[1])
2771
- result
2772
- end
2773
- .,.,
2774
-
2775
- module_eval <<'.,.,', 'c.y', 321
2776
- def _reduce_170( val, _values, result )
2777
- result = NodeArray[MemberInit.new_at(val[0][0] , val[0][1], val[1])]
2778
- result
2779
- end
2780
- .,.,
2781
-
2782
- module_eval <<'.,.,', 'c.y', 322
2783
- def _reduce_171( val, _values, result )
2784
- result = NodeArray[MemberInit.new_at(val[0].pos, nil , val[0])]
2785
- result
2786
- end
2787
- .,.,
2788
-
2789
- module_eval <<'.,.,', 'c.y', 323
2790
- def _reduce_172( val, _values, result )
2791
- result = val[0] << MemberInit.new_at(val[2][0] , val[2][1], val[3])
2792
- result
2793
- end
2794
- .,.,
2795
-
2796
- module_eval <<'.,.,', 'c.y', 324
2797
- def _reduce_173( val, _values, result )
2798
- result = val[0] << MemberInit.new_at(val[2].pos, nil , val[2])
2799
- result
2800
- end
2801
- .,.,
2802
-
2803
- module_eval <<'.,.,', 'c.y', 328
2804
- def _reduce_174( val, _values, result )
2805
- result = val[0]
2806
- result
2807
- end
2808
- .,.,
2809
-
2810
- module_eval <<'.,.,', 'c.y', 332
2811
- def _reduce_175( val, _values, result )
2812
- result = val[0]; val[0][1] = NodeArray[val[0][1]]
2813
- result
2814
- end
2815
- .,.,
2816
-
2817
- module_eval <<'.,.,', 'c.y', 333
2818
- def _reduce_176( val, _values, result )
2819
- result = val[0]; val[0][1] << val[1][1]
2820
- result
2821
- end
2822
- .,.,
2823
-
2824
- module_eval <<'.,.,', 'c.y', 337
2825
- def _reduce_177( val, _values, result )
2826
- result = [val[1].pos, val[1] ]
2827
- result
2828
- end
2829
- .,.,
2830
-
2831
- module_eval <<'.,.,', 'c.y', 338
2832
- def _reduce_178( val, _values, result )
2833
- result = [val[1].pos, Member.new_at(val[1].pos, val[1].val)]
2834
- result
2835
- end
2836
- .,.,
2837
-
2838
- module_eval <<'.,.,', 'c.y', 344
2839
- def _reduce_179( val, _values, result )
2840
- result = Variable.new_at(val[0].pos, val[0].val)
2841
- result
2842
- end
2843
- .,.,
2844
-
2845
- module_eval <<'.,.,', 'c.y', 345
2846
- def _reduce_180( val, _values, result )
2847
- result = val[0]
2848
- result
2849
- end
2850
- .,.,
2851
-
2852
- module_eval <<'.,.,', 'c.y', 346
2853
- def _reduce_181( val, _values, result )
2854
- result = val[0]
2855
- result
2856
- end
2857
- .,.,
2858
-
2859
- module_eval <<'.,.,', 'c.y', 347
2860
- def _reduce_182( val, _values, result )
2861
- result = val[1]
2862
- result
2863
- end
2864
- .,.,
2865
-
2866
- module_eval <<'.,.,', 'c.y', 351
2867
- def _reduce_183( val, _values, result )
2868
- result = val[0]
2869
- result
2870
- end
2871
- .,.,
2872
-
2873
- module_eval <<'.,.,', 'c.y', 352
2874
- def _reduce_184( val, _values, result )
2875
- result = Index .new_at(val[0].pos, val[0], val[2])
2876
- result
2877
- end
2878
- .,.,
2879
-
2880
- module_eval <<'.,.,', 'c.y', 353
2881
- def _reduce_185( val, _values, result )
2882
- result = Call .new_at(val[0].pos, val[0], val[2] )
2883
- result
2884
- end
2885
- .,.,
2886
-
2887
- module_eval <<'.,.,', 'c.y', 354
2888
- def _reduce_186( val, _values, result )
2889
- result = Call .new_at(val[0].pos, val[0], NodeArray[])
2890
- result
2891
- end
2892
- .,.,
2893
-
2894
- module_eval <<'.,.,', 'c.y', 355
2895
- def _reduce_187( val, _values, result )
2896
- result = Dot .new_at(val[0].pos, val[0], Member.new(val[2].val))
2897
- result
2898
- end
2899
- .,.,
2900
-
2901
- module_eval <<'.,.,', 'c.y', 356
2902
- def _reduce_188( val, _values, result )
2903
- result = Arrow .new_at(val[0].pos, val[0], Member.new(val[2].val))
2904
- result
2905
- end
2906
- .,.,
2907
-
2908
- module_eval <<'.,.,', 'c.y', 357
2909
- def _reduce_189( val, _values, result )
2910
- result = PostInc .new_at(val[0].pos, val[0] )
2911
- result
2912
- end
2913
- .,.,
2914
-
2915
- module_eval <<'.,.,', 'c.y', 358
2916
- def _reduce_190( val, _values, result )
2917
- result = PostDec .new_at(val[0].pos, val[0] )
2918
- result
2919
- end
2920
- .,.,
2921
-
2922
- module_eval <<'.,.,', 'c.y', 359
2923
- def _reduce_191( val, _values, result )
2924
- result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])
2925
- result
2926
- end
2927
- .,.,
2928
-
2929
- module_eval <<'.,.,', 'c.y', 360
2930
- def _reduce_192( val, _values, result )
2931
- result = CompoundLiteral.new_at(val[0].pos, val[1], val[4])
2932
- result
2933
- end
2934
- .,.,
2935
-
2936
- module_eval <<'.,.,', 'c.y', 364
2937
- def _reduce_193( val, _values, result )
2938
- result = NodeArray[val[0]]
2939
- result
2940
- end
2941
- .,.,
2942
-
2943
- module_eval <<'.,.,', 'c.y', 365
2944
- def _reduce_194( val, _values, result )
2945
- result = val[0] << val[2]
2946
- result
2947
- end
2948
- .,.,
2949
-
2950
- module_eval <<'.,.,', 'c.y', 369
2951
- def _reduce_195( val, _values, result )
2952
- result = val[0]
2953
- result
2954
- end
2955
- .,.,
2956
-
2957
- module_eval <<'.,.,', 'c.y', 370
2958
- def _reduce_196( val, _values, result )
2959
- result = PreInc.new_at(val[0].pos, val[1])
2960
- result
2961
- end
2962
- .,.,
2963
-
2964
- module_eval <<'.,.,', 'c.y', 371
2965
- def _reduce_197( val, _values, result )
2966
- result = PreDec.new_at(val[0].pos, val[1])
2967
- result
2968
- end
2969
- .,.,
2970
-
2971
- module_eval <<'.,.,', 'c.y', 372
2972
- def _reduce_198( val, _values, result )
2973
- result = val[0][0].new_at(val[0][1], val[1])
2974
- result
2975
- end
2976
- .,.,
2977
-
2978
- module_eval <<'.,.,', 'c.y', 373
2979
- def _reduce_199( val, _values, result )
2980
- result = Sizeof.new_at(val[0].pos, val[1])
2981
- result
2982
- end
2983
- .,.,
2984
-
2985
- module_eval <<'.,.,', 'c.y', 374
2986
- def _reduce_200( val, _values, result )
2987
- result = Sizeof.new_at(val[0].pos, val[2])
2988
- result
2989
- end
2990
- .,.,
2991
-
2992
- module_eval <<'.,.,', 'c.y', 378
2993
- def _reduce_201( val, _values, result )
2994
- result = [Address , val[0].pos]
2995
- result
2996
- end
2997
- .,.,
2998
-
2999
- module_eval <<'.,.,', 'c.y', 379
3000
- def _reduce_202( val, _values, result )
3001
- result = [Dereference, val[0].pos]
3002
- result
3003
- end
3004
- .,.,
3005
-
3006
- module_eval <<'.,.,', 'c.y', 380
3007
- def _reduce_203( val, _values, result )
3008
- result = [Positive , val[0].pos]
3009
- result
3010
- end
3011
- .,.,
3012
-
3013
- module_eval <<'.,.,', 'c.y', 381
3014
- def _reduce_204( val, _values, result )
3015
- result = [Negative , val[0].pos]
3016
- result
3017
- end
3018
- .,.,
3019
-
3020
- module_eval <<'.,.,', 'c.y', 382
3021
- def _reduce_205( val, _values, result )
3022
- result = [BitNot , val[0].pos]
3023
- result
3024
- end
3025
- .,.,
3026
-
3027
- module_eval <<'.,.,', 'c.y', 383
3028
- def _reduce_206( val, _values, result )
3029
- result = [Not , val[0].pos]
3030
- result
3031
- end
3032
- .,.,
3033
-
3034
- module_eval <<'.,.,', 'c.y', 387
3035
- def _reduce_207( val, _values, result )
3036
- result = val[0]
3037
- result
3038
- end
3039
- .,.,
3040
-
3041
- module_eval <<'.,.,', 'c.y', 388
3042
- def _reduce_208( val, _values, result )
3043
- result = Cast.new_at(val[0].pos, val[1], val[3])
3044
- result
3045
- end
3046
- .,.,
3047
-
3048
- module_eval <<'.,.,', 'c.y', 392
3049
- def _reduce_209( val, _values, result )
3050
- result = val[0]
3051
- result
3052
- end
3053
- .,.,
3054
-
3055
- module_eval <<'.,.,', 'c.y', 393
3056
- def _reduce_210( val, _values, result )
3057
- result = Multiply.new_at(val[0].pos, val[0], val[2])
3058
- result
3059
- end
3060
- .,.,
3061
-
3062
- module_eval <<'.,.,', 'c.y', 394
3063
- def _reduce_211( val, _values, result )
3064
- result = Divide .new_at(val[0].pos, val[0], val[2])
3065
- result
3066
- end
3067
- .,.,
3068
-
3069
- module_eval <<'.,.,', 'c.y', 395
3070
- def _reduce_212( val, _values, result )
3071
- result = Mod .new_at(val[0].pos, val[0], val[2])
3072
- result
3073
- end
3074
- .,.,
3075
-
3076
- module_eval <<'.,.,', 'c.y', 399
3077
- def _reduce_213( val, _values, result )
3078
- result = val[0]
3079
- result
3080
- end
3081
- .,.,
3082
-
3083
- module_eval <<'.,.,', 'c.y', 400
3084
- def _reduce_214( val, _values, result )
3085
- result = Add .new_at(val[0].pos, val[0], val[2])
3086
- result
3087
- end
3088
- .,.,
3089
-
3090
- module_eval <<'.,.,', 'c.y', 401
3091
- def _reduce_215( val, _values, result )
3092
- result = Subtract.new_at(val[0].pos, val[0], val[2])
3093
- result
3094
- end
3095
- .,.,
3096
-
3097
- module_eval <<'.,.,', 'c.y', 405
3098
- def _reduce_216( val, _values, result )
3099
- result = val[0]
3100
- result
3101
- end
3102
- .,.,
3103
-
3104
- module_eval <<'.,.,', 'c.y', 406
3105
- def _reduce_217( val, _values, result )
3106
- result = ShiftLeft .new_at(val[0].pos, val[0], val[2])
3107
- result
3108
- end
3109
- .,.,
3110
-
3111
- module_eval <<'.,.,', 'c.y', 407
3112
- def _reduce_218( val, _values, result )
3113
- result = ShiftRight.new_at(val[0].pos, val[0], val[2])
3114
- result
3115
- end
3116
- .,.,
3117
-
3118
- module_eval <<'.,.,', 'c.y', 411
3119
- def _reduce_219( val, _values, result )
3120
- result = val[0]
3121
- result
3122
- end
3123
- .,.,
3124
-
3125
- module_eval <<'.,.,', 'c.y', 412
3126
- def _reduce_220( val, _values, result )
3127
- result = Less.new_at(val[0].pos, val[0], val[2])
3128
- result
3129
- end
3130
- .,.,
3131
-
3132
- module_eval <<'.,.,', 'c.y', 413
3133
- def _reduce_221( val, _values, result )
3134
- result = More.new_at(val[0].pos, val[0], val[2])
3135
- result
3136
- end
3137
- .,.,
3138
-
3139
- module_eval <<'.,.,', 'c.y', 414
3140
- def _reduce_222( val, _values, result )
3141
- result = LessOrEqual.new_at(val[0].pos, val[0], val[2])
3142
- result
3143
- end
3144
- .,.,
3145
-
3146
- module_eval <<'.,.,', 'c.y', 415
3147
- def _reduce_223( val, _values, result )
3148
- result = MoreOrEqual.new_at(val[0].pos, val[0], val[2])
3149
- result
3150
- end
3151
- .,.,
3152
-
3153
- module_eval <<'.,.,', 'c.y', 419
3154
- def _reduce_224( val, _values, result )
3155
- result = val[0]
3156
- result
3157
- end
3158
- .,.,
3159
-
3160
- module_eval <<'.,.,', 'c.y', 420
3161
- def _reduce_225( val, _values, result )
3162
- result = Equal .new_at(val[0].pos, val[0], val[2])
3163
- result
3164
- end
3165
- .,.,
3166
-
3167
- module_eval <<'.,.,', 'c.y', 421
3168
- def _reduce_226( val, _values, result )
3169
- result = NotEqual.new_at(val[0].pos, val[0], val[2])
3170
- result
3171
- end
3172
- .,.,
3173
-
3174
- module_eval <<'.,.,', 'c.y', 425
3175
- def _reduce_227( val, _values, result )
3176
- result = val[0]
3177
- result
3178
- end
3179
- .,.,
3180
-
3181
- module_eval <<'.,.,', 'c.y', 426
3182
- def _reduce_228( val, _values, result )
3183
- result = BitAnd.new_at(val[0].pos, val[0], val[2])
3184
- result
3185
- end
3186
- .,.,
3187
-
3188
- module_eval <<'.,.,', 'c.y', 430
3189
- def _reduce_229( val, _values, result )
3190
- result = val[0]
3191
- result
3192
- end
3193
- .,.,
3194
-
3195
- module_eval <<'.,.,', 'c.y', 431
3196
- def _reduce_230( val, _values, result )
3197
- result = BitXor.new_at(val[0].pos, val[0], val[2])
3198
- result
3199
- end
3200
- .,.,
3201
-
3202
- module_eval <<'.,.,', 'c.y', 435
3203
- def _reduce_231( val, _values, result )
3204
- result = val[0]
3205
- result
3206
- end
3207
- .,.,
3208
-
3209
- module_eval <<'.,.,', 'c.y', 436
3210
- def _reduce_232( val, _values, result )
3211
- result = BitOr.new_at(val[0].pos, val[0], val[2])
3212
- result
3213
- end
3214
- .,.,
3215
-
3216
- module_eval <<'.,.,', 'c.y', 440
3217
- def _reduce_233( val, _values, result )
3218
- result = val[0]
3219
- result
3220
- end
3221
- .,.,
3222
-
3223
- module_eval <<'.,.,', 'c.y', 441
3224
- def _reduce_234( val, _values, result )
3225
- result = And.new_at(val[0].pos, val[0], val[2])
3226
- result
3227
- end
3228
- .,.,
3229
-
3230
- module_eval <<'.,.,', 'c.y', 445
3231
- def _reduce_235( val, _values, result )
3232
- result = val[0]
3233
- result
3234
- end
3235
- .,.,
3236
-
3237
- module_eval <<'.,.,', 'c.y', 446
3238
- def _reduce_236( val, _values, result )
3239
- result = Or.new_at(val[0].pos, val[0], val[2])
3240
- result
3241
- end
3242
- .,.,
3243
-
3244
- module_eval <<'.,.,', 'c.y', 450
3245
- def _reduce_237( val, _values, result )
3246
- result = val[0]
3247
- result
3248
- end
3249
- .,.,
3250
-
3251
- module_eval <<'.,.,', 'c.y', 451
3252
- def _reduce_238( val, _values, result )
3253
- result = Conditional.new_at(val[0].pos, val[0], val[2], val[4])
3254
- result
3255
- end
3256
- .,.,
3257
-
3258
- module_eval <<'.,.,', 'c.y', 455
3259
- def _reduce_239( val, _values, result )
3260
- result = val[0]
3261
- result
3262
- end
3263
- .,.,
3264
-
3265
- module_eval <<'.,.,', 'c.y', 456
3266
- def _reduce_240( val, _values, result )
3267
- result = val[1].new_at(val[0].pos, val[0], val[2])
3268
- result
3269
- end
3270
- .,.,
3271
-
3272
- module_eval <<'.,.,', 'c.y', 460
3273
- def _reduce_241( val, _values, result )
3274
- result = Assign
3275
- result
3276
- end
3277
- .,.,
3278
-
3279
- module_eval <<'.,.,', 'c.y', 461
3280
- def _reduce_242( val, _values, result )
3281
- result = MultiplyAssign
3282
- result
3283
- end
3284
- .,.,
3285
-
3286
- module_eval <<'.,.,', 'c.y', 462
3287
- def _reduce_243( val, _values, result )
3288
- result = DivideAssign
3289
- result
3290
- end
3291
- .,.,
3292
-
3293
- module_eval <<'.,.,', 'c.y', 463
3294
- def _reduce_244( val, _values, result )
3295
- result = ModAssign
3296
- result
3297
- end
3298
- .,.,
3299
-
3300
- module_eval <<'.,.,', 'c.y', 464
3301
- def _reduce_245( val, _values, result )
3302
- result = AddAssign
3303
- result
3304
- end
3305
- .,.,
3306
-
3307
- module_eval <<'.,.,', 'c.y', 465
3308
- def _reduce_246( val, _values, result )
3309
- result = SubtractAssign
3310
- result
3311
- end
3312
- .,.,
3313
-
3314
- module_eval <<'.,.,', 'c.y', 466
3315
- def _reduce_247( val, _values, result )
3316
- result = ShiftLeftAssign
3317
- result
3318
- end
3319
- .,.,
3320
-
3321
- module_eval <<'.,.,', 'c.y', 467
3322
- def _reduce_248( val, _values, result )
3323
- result = ShiftRightAssign
3324
- result
3325
- end
3326
- .,.,
3327
-
3328
- module_eval <<'.,.,', 'c.y', 468
3329
- def _reduce_249( val, _values, result )
3330
- result = BitAndAssign
3331
- result
3332
- end
3333
- .,.,
3334
-
3335
- module_eval <<'.,.,', 'c.y', 469
3336
- def _reduce_250( val, _values, result )
3337
- result = BitXorAssign
3338
- result
3339
- end
3340
- .,.,
3341
-
3342
- module_eval <<'.,.,', 'c.y', 470
3343
- def _reduce_251( val, _values, result )
3344
- result = BitOrAssign
3345
- result
3346
- end
3347
- .,.,
3348
-
3349
- module_eval <<'.,.,', 'c.y', 474
3350
- def _reduce_252( val, _values, result )
3351
- result = val[0]
3352
- result
3353
- end
3354
- .,.,
3355
-
3356
- module_eval <<'.,.,', 'c.y', 493
3357
- def _reduce_253( val, _values, result )
3358
- if val[0].is_a? Comma
3359
- if val[2].is_a? Comma
3360
- val[0].exprs.push(*val[2].exprs)
3361
- else
3362
- val[0].exprs << val[2]
3363
- end
3364
- result = val[0]
3365
- else
3366
- if val[2].is_a? Comma
3367
- val[2].exprs.unshift(val[0])
3368
- val[2].pos = val[0].pos
3369
- result = val[2]
3370
- else
3371
- result = Comma.new_at(val[0].pos, NodeArray[val[0], val[2]])
3372
- end
3373
- end
3374
- result
3375
- end
3376
- .,.,
3377
-
3378
- module_eval <<'.,.,', 'c.y', 496
3379
- def _reduce_254( val, _values, result )
3380
- result = val[0]
3381
- result
3382
- end
3383
- .,.,
3384
-
3385
- module_eval <<'.,.,', 'c.y', 511
3386
- def _reduce_255( val, _values, result )
3387
- result = val[0]
3388
- result
3389
- end
3390
- .,.,
3391
-
3392
- module_eval <<'.,.,', 'c.y', 515
3393
- def _reduce_256( val, _values, result )
3394
- result = IntLiteral.new_at(val[0].pos, val[0].val)
3395
- result
3396
- end
3397
- .,.,
3398
-
3399
- module_eval <<'.,.,', 'c.y', 516
3400
- def _reduce_257( val, _values, result )
3401
- result = FloatLiteral.new_at(val[0].pos, val[0].val)
3402
- result
3403
- end
3404
- .,.,
3405
-
3406
- module_eval <<'.,.,', 'c.y', 519
3407
- def _reduce_258( val, _values, result )
3408
- result = CharLiteral.new_at(val[0].pos, val[0].val)
3409
- result
3410
- end
3411
- .,.,
3412
-
3413
- module_eval <<'.,.,', 'c.y', 523
3414
- def _reduce_259( val, _values, result )
3415
- result = val[0]
3416
- result
3417
- end
3418
- .,.,
3419
-
3420
- module_eval <<'.,.,', 'c.y', 527
3421
- def _reduce_260( val, _values, result )
3422
- result = StringLiteral.new_at(val[0].pos, val[0].val)
3423
- result
3424
- end
3425
- .,.,
3426
-
3427
- def _reduce_none( val, _values, result )
3428
- result
3429
- end
3430
-
3431
- end # class Parser
3432
-
3433
- end # module C