cast 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,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