cast 0.0.1 → 0.1.0

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