1 /* A Bison parser, made by GNU Bison 1.875. */
2
3 /* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21 /* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
25
26 /* Written by Richard Stallman by simplifying the original so called
27 ``semantic'' parser. */
28
29 /* All symbols defined below should begin with yy or YY, to avoid
30 infringing on user name space. This should be done even for local
31 variables, as they might otherwise be expanded by user macros.
32 There are some unavoidable exceptions within include files to
33 define necessary library symbols; they are noted "INFRINGES ON
34 USER NAME SPACE" below. */
35
36 /* Identify Bison output. */
37 #define YYBISON 1
38
39 /* Skeleton name. */
40 #define YYSKELETON_NAME "yacc.c"
41
42 /* Pure parsers. */
43 #define YYPURE 0
44
45 /* Using locations. */
46 #define YYLSP_NEEDED 1
47
48
49
50 /* Tokens. */
51 #ifndef YYTOKENTYPE
52 # define YYTOKENTYPE
53 /* Put the tokens into the symbol table, so that GDB and other debuggers
54 know about them. */
55 enum yytokentype {
56 STRING = 258,
57 VALUE = 259,
58 IDENTIFIER = 260,
59 OBJECT = 261,
60 UNIT_ANGLE = 262,
61 UNIT_COLOR = 263,
62 UNIT_RATIO = 264,
63 UNIT_SIZE = 265,
64 UNIT_SPEED = 266,
65 UNIT_TIME = 267,
66 FOR = 268,
67 IF = 269,
68 ACTION_SCRIPT = 270,
69 ELSE = 271,
70 RANGE = 272,
71 LOGICAL_OR = 273,
72 LOGICAL_XOR = 274,
73 LOGICAL_AND = 275,
74 GREATER_EQUAL = 276,
75 LESS_EQUAL = 277,
76 NOT_EQUAL = 278,
77 EQUAL = 279,
78 ROTATE_RIGHT = 280,
79 ROTATE_LEFT = 281,
80 SHIFT_RIGHT_UNSIGNED = 282,
81 SHIFT_RIGHT = 283,
82 SHIFT_LEFT = 284,
83 MAX_OP = 285,
84 MIN_OP = 286,
85 POWER = 287,
86 NEG = 288,
87 POS = 289
88 };
89 #endif
90 #define STRING 258
91 #define VALUE 259
92 #define IDENTIFIER 260
93 #define OBJECT 261
94 #define UNIT_ANGLE 262
95 #define UNIT_COLOR 263
96 #define UNIT_RATIO 264
97 #define UNIT_SIZE 265
98 #define UNIT_SPEED 266
99 #define UNIT_TIME 267
100 #define FOR 268
101 #define IF 269
102 #define ACTION_SCRIPT 270
103 #define ELSE 271
104 #define RANGE 272
105 #define LOGICAL_OR 273
106 #define LOGICAL_XOR 274
107 #define LOGICAL_AND 275
108 #define GREATER_EQUAL 276
109 #define LESS_EQUAL 277
110 #define NOT_EQUAL 278
111 #define EQUAL 279
112 #define ROTATE_RIGHT 280
113 #define ROTATE_LEFT 281
114 #define SHIFT_RIGHT_UNSIGNED 282
115 #define SHIFT_RIGHT 283
116 #define SHIFT_LEFT 284
117 #define MAX_OP 285
118 #define MIN_OP 286
119 #define POWER 287
120 #define NEG 288
121 #define POS 289
122
123
124
125
126 /* Copy the first part of user declarations. */
127 #line 1 "src\\sswf\\sswf_grammar.y"
128 /* sswf_grammar.y -- written by Alexis WILKE for Made to Order Software Corp. (c) 2002-2009 */
129 /* grammar parser for the SWF scripting tool */
130
131 /*
132
133 Copyright (c) 2002-2009 Made to Order Software Corp.
134
135 Permission is hereby granted, free of charge, to any
136 person obtaining a copy of this software and
137 associated documentation files (the "Software"), to
138 deal in the Software without restriction, including
139 without limitation the rights to use, copy, modify,
140 merge, publish, distribute, sublicense, and/or sell
141 copies of the Software, and to permit persons to whom
142 the Software is furnished to do so, subject to the
143 following conditions:
144
145 The above copyright notice and this permission notice
146 shall be included in all copies or substantial
147 portions of the Software.
148
149 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
150 ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
151 LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
152 FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
153 EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
154 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
155 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
156 ARISING FROM, OUT OF OR IN CONNECTION WITH THE
157 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
158 SOFTWARE.
159
160 */
161
162
163 #include "sswf.h"
164
165 #define YYPARSE_PARAM result
166 static void yyerror(const char *msg);
167
168
169
170
171
172 /* Enabling traces. */
173 #ifndef YYDEBUG
174 # define YYDEBUG 1
175 #endif
176
177 /* Enabling verbose error messages. */
178 #ifdef YYERROR_VERBOSE
179 # undef YYERROR_VERBOSE
180 # define YYERROR_VERBOSE 1
181 #else
182 # define YYERROR_VERBOSE 0
183 #endif
184
185 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
186 #line 48 "src\\sswf\\sswf_grammar.y"
187 typedef union YYSTYPE {
188 struct node_t *node;
189 enum node_type_t type; /* for UNIT */
190 int unused;
191 } YYSTYPE;
192 /* Line 191 of yacc.c. */
193 #line 193 "tmp\\object\\src\\sswf\\sswf_grammar.c"
194 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
195 # define YYSTYPE_IS_DECLARED 1
196 # define YYSTYPE_IS_TRIVIAL 1
197 #endif
198
199 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
200 typedef struct YYLTYPE
201 {
202 int first_line;
203 int first_column;
204 int last_line;
205 int last_column;
206 } YYLTYPE;
207 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
208 # define YYLTYPE_IS_DECLARED 1
209 # define YYLTYPE_IS_TRIVIAL 1
210 #endif
211
212
213 /* Copy the second part of user declarations. */
214
215
216 /* Line 214 of yacc.c. */
217 #line 217 "tmp\\object\\src\\sswf\\sswf_grammar.c"
218
219 #if ! defined (yyoverflow) || YYERROR_VERBOSE
220
221 /* The parser invokes alloca or malloc; define the necessary symbols. */
222
223 # if YYSTACK_USE_ALLOCA
224 # define YYSTACK_ALLOC alloca
225 # else
226 # ifndef YYSTACK_USE_ALLOCA
227 # if defined (alloca) || defined (_ALLOCA_H)
228 # define YYSTACK_ALLOC alloca
229 # else
230 # ifdef __GNUC__
231 # define YYSTACK_ALLOC __builtin_alloca
232 # endif
233 # endif
234 # endif
235 # endif
236
237 # ifdef YYSTACK_ALLOC
238 /* Pacify GCC's `empty if-body' warning. */
239 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
240 # else
241 # if defined (__STDC__) || defined (__cplusplus)
242 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
243 # define YYSIZE_T size_t
244 # endif
245 # define YYSTACK_ALLOC malloc
246 # define YYSTACK_FREE free
247 # endif
248 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
249
250
251 #if (! defined (yyoverflow) \
252 && (! defined (__cplusplus) \
253 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
254
255 /* A type that is properly aligned for any stack member. */
256 union yyalloc
257 {
258 short yyss;
259 YYSTYPE yyvs;
260 YYLTYPE yyls;
261 };
262
263 /* The size of the maximum gap between one aligned stack and the next. */
264 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
265
266 /* The size of an array large to enough to hold all stacks, each with
267 N elements. */
268 # define YYSTACK_BYTES(N) \
269 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
270 + 2 * YYSTACK_GAP_MAXIMUM)
271
272 /* Copy COUNT objects from FROM to TO. The source and destination do
273 not overlap. */
274 # ifndef YYCOPY
275 # if 1 < __GNUC__
276 # define YYCOPY(To, From, Count) \
277 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
278 # else
279 # define YYCOPY(To, From, Count) \
280 do \
281 { \
282 register YYSIZE_T yyi; \
283 for (yyi = 0; yyi < (Count); yyi++) \
284 (To)[yyi] = (From)[yyi]; \
285 } \
286 while (0)
287 # endif
288 # endif
289
290 /* Relocate STACK from its old location to the new one. The
291 local variables YYSIZE and YYSTACKSIZE give the old and new number of
292 elements in the stack, and YYPTR gives the new location of the
293 stack. Advance YYPTR to a properly aligned location for the next
294 stack. */
295 # define YYSTACK_RELOCATE(Stack) \
296 do \
297 { \
298 YYSIZE_T yynewbytes; \
299 YYCOPY (&yyptr->Stack, Stack, yysize); \
300 Stack = &yyptr->Stack; \
301 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
302 yyptr += yynewbytes / sizeof (*yyptr); \
303 } \
304 while (0)
305
306 #endif
307
308 #if defined (__STDC__) || defined (__cplusplus)
309 typedef signed char yysigned_char;
310 #else
311 typedef short yysigned_char;
312 #endif
313
314 /* YYFINAL -- State number of the termination state. */
315 #define YYFINAL 34
316 /* YYLAST -- Last index in YYTABLE. */
317 #define YYLAST 946
318
319 /* YYNTOKENS -- Number of terminals. */
320 #define YYNTOKENS 60
321 /* YYNNTS -- Number of nonterminals. */
322 #define YYNNTS 15
323 /* YYNRULES -- Number of rules. */
324 #define YYNRULES 78
325 /* YYNRULES -- Number of states. */
326 #define YYNSTATES 172
327
328 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
329 #define YYUNDEFTOK 2
330 #define YYMAXUTOK 289
331
332 #define YYTRANSLATE(YYX) \
333 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
334
335 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
336 static const unsigned char yytranslate[] =
337 {
338 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 46, 2, 2, 57, 44, 26, 2,
342 58, 59, 42, 40, 55, 41, 51, 43, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 19, 52,
344 27, 17, 28, 18, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 50, 2, 56, 25, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 53, 24, 54, 47, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
363 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
364 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
365 15, 16, 20, 21, 22, 23, 29, 30, 31, 32,
366 33, 34, 35, 36, 37, 38, 39, 45, 48, 49
367 };
368
369 #if YYDEBUG
370 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
371 YYRHS. */
372 static const unsigned short yyprhs[] =
373 {
374 0, 0, 3, 6, 7, 9, 11, 14, 16, 20,
375 22, 26, 28, 32, 35, 38, 41, 44, 47, 50,
376 54, 59, 64, 68, 71, 74, 77, 80, 84, 89,
377 93, 97, 101, 105, 109, 113, 117, 121, 125, 129,
378 133, 137, 141, 145, 149, 153, 157, 161, 165, 169,
379 173, 177, 181, 185, 189, 193, 199, 209, 213, 215,
380 217, 219, 221, 222, 228, 239, 246, 252, 255, 256,
381 257, 265, 266, 268, 270, 272, 276, 280, 282
382 };
383
384 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
385 static const yysigned_char yyrhs[] =
386 {
387 61, 0, -1, 64, 62, -1, -1, 63, -1, 52,
388 -1, 63, 52, -1, 65, -1, 64, 63, 65, -1,
389 67, -1, 53, 64, 54, -1, 67, -1, 66, 55,
390 67, -1, 67, 7, -1, 67, 8, -1, 67, 9,
391 -1, 67, 10, -1, 67, 11, -1, 67, 12, -1,
392 67, 51, 67, -1, 67, 50, 66, 56, -1, 57,
393 58, 66, 59, -1, 58, 66, 59, -1, 40, 67,
394 -1, 41, 67, -1, 46, 67, -1, 47, 67, -1,
395 5, 58, 59, -1, 5, 58, 66, 59, -1, 67,
396 45, 67, -1, 67, 42, 67, -1, 67, 43, 67,
397 -1, 67, 44, 67, -1, 67, 40, 67, -1, 67,
398 41, 67, -1, 67, 39, 67, -1, 67, 38, 67,
399 -1, 67, 37, 67, -1, 67, 36, 67, -1, 67,
400 35, 67, -1, 67, 34, 67, -1, 67, 33, 67,
401 -1, 67, 32, 67, -1, 67, 31, 67, -1, 67,
402 27, 67, -1, 67, 30, 67, -1, 67, 28, 67,
403 -1, 67, 29, 67, -1, 67, 26, 67, -1, 67,
404 25, 67, -1, 67, 24, 67, -1, 67, 23, 67,
405 -1, 67, 22, 67, -1, 67, 21, 67, -1, 67,
406 20, 67, -1, 67, 18, 66, 19, 67, -1, 14,
407 58, 66, 59, 53, 64, 62, 54, 68, -1, 5,
408 17, 67, -1, 69, -1, 5, -1, 4, -1, 3,
409 -1, -1, 16, 53, 64, 62, 54, -1, 16, 14,
410 58, 66, 59, 53, 64, 62, 54, 68, -1, 6,
411 72, 53, 73, 62, 54, -1, 6, 72, 53, 62,
412 54, -1, 6, 72, -1, -1, -1, 15, 72, 53,
413 70, 3, 71, 54, -1, -1, 5, -1, 3, -1,
414 74, -1, 73, 63, 74, -1, 5, 19, 66, -1,
415 66, -1, 13, 58, 5, 17, 67, 52, 67, 52,
416 67, 59, 53, 73, 62, 54, -1
417 };
418
419 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
420 static const unsigned short yyrline[] =
421 {
422 0, 100, 100, 107, 109, 113, 114, 119, 123, 131,
423 135, 146, 150, 158, 163, 168, 173, 178, 183, 188,
424 194, 200, 205, 221, 226, 231, 236, 241, 247, 253,
425 259, 265, 271, 277, 283, 289, 295, 301, 307, 313,
426 319, 325, 331, 337, 343, 349, 355, 361, 367, 373,
427 379, 385, 391, 397, 403, 417, 424, 431, 438, 442,
428 446, 450, 459, 462, 466, 477, 487, 496, 506, 508,
429 505, 532, 535, 539, 551, 555, 564, 570, 576
430 };
431 #endif
432
433 #if YYDEBUG || YYERROR_VERBOSE
434 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
435 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
436 static const char *const yytname[] =
437 {
438 "$end", "error", "$undefined", "STRING", "VALUE", "IDENTIFIER", "OBJECT",
439 "UNIT_ANGLE", "UNIT_COLOR", "UNIT_RATIO", "UNIT_SIZE", "UNIT_SPEED",
440 "UNIT_TIME", "FOR", "IF", "ACTION_SCRIPT", "ELSE", "'='", "'?'", "':'",
441 "RANGE", "LOGICAL_OR", "LOGICAL_XOR", "LOGICAL_AND", "'|'", "'^'",
442 "'&'", "'<'", "'>'", "GREATER_EQUAL", "LESS_EQUAL", "NOT_EQUAL",
443 "EQUAL", "ROTATE_RIGHT", "ROTATE_LEFT", "SHIFT_RIGHT_UNSIGNED",
444 "SHIFT_RIGHT", "SHIFT_LEFT", "MAX_OP", "MIN_OP", "'+'", "'-'", "'*'",
445 "'/'", "'%'", "POWER", "'!'", "'~'", "NEG", "POS", "'['", "'.'", "';'",
446 "'{'", "'}'", "','", "']'", "'$'", "'('", "')'", "$accept", "start",
447 "opt_end", "colons", "expr_list", "block_expr", "group_expr", "expr",
448 "opt_else", "object", "@1", "@2", "opt_name", "object_definition",
449 "definition", 0
450 };
451 #endif
452
453 # ifdef YYPRINT
454 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
455 token YYLEX-NUM. */
456 static const unsigned short yytoknum[] =
457 {
458 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
459 265, 266, 267, 268, 269, 270, 271, 61, 63, 58,
460 272, 273, 274, 275, 124, 94, 38, 60, 62, 276,
461 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
462 43, 45, 42, 47, 37, 287, 33, 126, 288, 289,
463 91, 46, 59, 123, 125, 44, 93, 36, 40, 41
464 };
465 # endif
466
467 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
468 static const unsigned char yyr1[] =
469 {
470 0, 60, 61, 62, 62, 63, 63, 64, 64, 65,
471 65, 66, 66, 67, 67, 67, 67, 67, 67, 67,
472 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
473 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
474 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
475 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
476 67, 67, 68, 68, 68, 69, 69, 69, 70, 71,
477 69, 72, 72, 72, 73, 73, 74, 74, 74
478 };
479
480 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
481 static const unsigned char yyr2[] =
482 {
483 0, 2, 2, 0, 1, 1, 2, 1, 3, 1,
484 3, 1, 3, 2, 2, 2, 2, 2, 2, 3,
485 4, 4, 3, 2, 2, 2, 2, 3, 4, 3,
486 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
487 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
488 3, 3, 3, 3, 3, 5, 9, 3, 1, 1,
489 1, 1, 0, 5, 10, 6, 5, 2, 0, 0,
490 7, 0, 1, 1, 1, 3, 3, 1, 14
491 };
492
493 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
494 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
495 means the default is an error. */
496 static const unsigned char yydefact[] =
497 {
498 0, 61, 60, 59, 71, 0, 71, 0, 0, 0,
499 0, 0, 0, 0, 0, 3, 7, 9, 58, 0,
500 0, 73, 72, 67, 0, 0, 23, 24, 25, 26,
501 0, 0, 0, 11, 1, 5, 2, 4, 13, 14,
502 15, 16, 17, 18, 0, 0, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505 0, 0, 0, 57, 27, 0, 3, 0, 68, 10,
506 0, 0, 0, 22, 6, 8, 0, 54, 53, 52,
507 51, 50, 49, 48, 44, 46, 47, 45, 43, 42,
508 41, 40, 39, 38, 37, 36, 35, 33, 34, 30,
509 31, 32, 29, 0, 19, 28, 59, 0, 0, 4,
510 77, 3, 74, 0, 0, 21, 12, 0, 20, 0,
511 0, 66, 0, 4, 0, 69, 55, 76, 0, 65,
512 75, 3, 0, 0, 0, 70, 0, 62, 0, 0,
513 56, 0, 0, 0, 0, 0, 3, 0, 0, 0,
514 0, 0, 63, 0, 0, 3, 3, 0, 0, 78,
515 62, 64
516 };
517
518 /* YYDEFGOTO[NTERM-NUM]. */
519 static const short yydefgoto[] =
520 {
521 -1, 14, 36, 37, 15, 16, 120, 33, 150, 18,
522 124, 142, 23, 121, 122
523 };
524
525 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
526 STATE-NUM. */
527 #define YYPACT_NINF -60
528 static const short yypact[] =
529 {
530 227, -60, -60, 25, 18, -28, 18, 255, 255, 255,
531 255, 227, -17, 255, 15, 26, -60, 433, -60, 255,
532 83, -60, -60, 23, 255, 31, 531, 531, 531, 531,
533 -25, 255, -43, 433, -60, -60, -60, 153, -60, -60,
534 -60, -60, -60, -60, 255, 255, 255, 255, 255, 255,
535 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
536 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
537 255, 255, 255, 433, -60, -42, 167, -41, -60, -60,
538 153, -35, 255, -60, -60, -60, -16, 523, 568, 613,
539 658, 703, 748, 793, 838, 838, 838, 838, 838, 838,
540 838, 838, 838, 838, 838, 850, 850, 895, 895, 761,
541 761, 761, 761, -50, 24, -60, 21, 19, 36, 39,
542 40, 26, -60, 41, 93, -60, 433, 255, -60, 255,
543 94, -60, 46, 182, 227, -60, 478, 40, 84, -60,
544 -60, 26, 48, 255, 49, -60, 341, 88, 255, -10,
545 -60, 387, 51, 227, 255, 255, 26, 296, -33, 52,
546 54, 57, -60, 241, 227, 26, 26, 58, 59, -60,
547 88, -60
548 };
549
550 /* YYPGOTO[NTERM-NUM]. */
551 static const yysigned_char yypgoto[] =
552 {
553 -60, -60, -48, -5, -9, -36, 61, 0, -59, -60,
554 -60, -60, 108, -44, -18
555 };
556
557 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
558 positive, shift that token. If negative, reduce the rule which
559 number is the opposite. If zero, do what YYDEFACT says.
560 If YYTABLE_NINF, syntax error. */
561 #define YYTABLE_NINF -1
562 static const unsigned char yytable[] =
563 {
564 17, 85, 30, 127, 152, 82, 128, 26, 27, 28,
565 29, 17, 82, 82, 82, 34, 83, 115, 123, 73,
566 82, 21, 82, 22, 125, 80, 161, 35, 118, 79,
567 24, 38, 39, 40, 41, 42, 43, 17, 19, 82,
568 129, 31, 19, 153, 85, 87, 88, 89, 90, 91,
569 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
570 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
571 112, 119, 114, 132, 32, 72, 76, 130, 35, 20,
572 17, 75, 126, 20, 78, 77, 1, 2, 3, 4,
573 131, 84, 81, 144, 134, 82, 135, 5, 6, 138,
574 139, 143, 145, 147, 149, 86, 162, 163, 159, 155,
575 164, 171, 169, 170, 25, 140, 133, 167, 168, 165,
576 0, 0, 0, 7, 8, 141, 0, 136, 0, 9,
577 10, 0, 113, 0, 17, 0, 0, 0, 0, 0,
578 12, 13, 74, 146, 156, 0, 0, 0, 151, 0,
579 0, 0, 0, 17, 157, 166, 1, 2, 3, 4,
580 133, 0, 0, 0, 17, 0, 0, 5, 6, 0,
581 1, 2, 116, 4, 0, 0, 0, 0, 0, 0,
582 117, 5, 6, 0, 0, 1, 2, 116, 4, 0,
583 137, 0, 0, 7, 8, 117, 5, 6, 0, 9,
584 10, 0, 0, 0, 0, 84, 11, 7, 8, 0,
585 12, 13, 0, 9, 10, 0, 158, 0, 0, 35,
586 0, 0, 7, 8, 12, 13, 0, 0, 9, 10,
587 1, 2, 3, 4, 84, 0, 0, 0, 0, 12,
588 13, 5, 6, 0, 1, 2, 116, 4, 0, 0,
589 0, 0, 0, 0, 117, 5, 6, 0, 1, 2,
590 3, 4, 0, 0, 0, 0, 0, 7, 8, 5,
591 6, 0, 0, 9, 10, 0, 0, 0, 0, 0,
592 11, 7, 8, 0, 12, 13, 0, 9, 10, 0,
593 0, 0, 0, 0, 0, 7, 8, 0, 12, 13,
594 0, 9, 10, 38, 39, 40, 41, 42, 43, 0,
595 0, 0, 12, 13, 44, 0, 45, 46, 47, 48,
596 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
597 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
598 69, 70, 0, 0, 0, 0, 71, 72, 38, 39,
599 40, 41, 42, 43, 0, 160, 0, 0, 0, 44,
600 0, 45, 46, 47, 48, 49, 50, 51, 52, 53,
601 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
602 64, 65, 66, 67, 68, 69, 70, 0, 0, 0,
603 0, 71, 72, 148, 38, 39, 40, 41, 42, 43,
604 0, 0, 0, 0, 0, 44, 0, 45, 46, 47,
605 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
606 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
607 68, 69, 70, 0, 0, 0, 0, 71, 72, 154,
608 38, 39, 40, 41, 42, 43, 0, 0, 0, 0,
609 0, 44, 0, 45, 46, 47, 48, 49, 50, 51,
610 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
611 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
612 0, 0, 0, 71, 72, 38, 39, 40, 41, 42,
613 43, 0, 0, 0, 0, 0, 0, 0, 45, 46,
614 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
615 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
616 67, 68, 69, 70, 0, 0, 0, 0, 71, 72,
617 38, 39, 40, 41, 42, 43, 0, 0, 38, 39,
618 40, 41, 42, 43, 46, 47, 48, 49, 50, 51,
619 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
620 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
621 0, 0, 0, 71, 72, 38, 39, 40, 41, 42,
622 43, 71, 72, 0, 0, 0, 0, 0, 0, 0,
623 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
624 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
625 67, 68, 69, 70, 0, 0, 0, 0, 71, 72,
626 38, 39, 40, 41, 42, 43, 0, 0, 0, 0,
627 0, 0, 0, 0, 0, 0, 48, 49, 50, 51,
628 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
629 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
630 0, 0, 0, 71, 72, 38, 39, 40, 41, 42,
631 43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
632 0, 0, 49, 50, 51, 52, 53, 54, 55, 56,
633 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
634 67, 68, 69, 70, 0, 0, 0, 0, 71, 72,
635 38, 39, 40, 41, 42, 43, 0, 0, 0, 0,
636 0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
637 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
638 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
639 0, 0, 0, 71, 72, 38, 39, 40, 41, 42,
640 43, 0, 0, 0, 0, 0, 0, 0, 38, 39,
641 40, 41, 42, 43, 51, 52, 53, 54, 55, 56,
642 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
643 67, 68, 69, 70, 0, 0, 0, 0, 71, 72,
644 38, 39, 40, 41, 42, 43, 70, 0, 0, 0,
645 0, 71, 72, 0, 0, 0, 0, 0, 0, 0,
646 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
647 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
648 0, 0, 0, 71, 72, 38, 39, 40, 41, 42,
649 43, 0, 0, 0, 0, 0, 0, 38, 39, 40,
650 41, 42, 43, 0, 0, 0, 0, 0, 0, 0,
651 0, 58, 59, 60, 61, 62, 63, 64, 65, 66,
652 67, 68, 69, 70, 0, 0, 0, 0, 71, 72,
653 65, 66, 67, 68, 69, 70, 0, 0, 0, 0,
654 71, 72, 38, 39, 40, 41, 42, 43, 0, 0,
655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
657 0, 0, 0, 0, 0, 0, 0, 67, 68, 69,
658 70, 0, 0, 0, 0, 71, 72
659 };
660
661 static const short yycheck[] =
662 {
663 0, 37, 11, 19, 14, 55, 56, 7, 8, 9,
664 10, 11, 55, 55, 55, 0, 59, 59, 59, 19,
665 55, 3, 55, 5, 59, 30, 59, 52, 76, 54,
666 58, 7, 8, 9, 10, 11, 12, 37, 17, 55,
667 19, 58, 17, 53, 80, 45, 46, 47, 48, 49,
668 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
669 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
670 70, 76, 72, 121, 13, 51, 53, 58, 52, 58,
671 80, 20, 82, 58, 53, 24, 3, 4, 5, 6,
672 54, 52, 31, 141, 53, 55, 3, 14, 15, 5,
673 54, 17, 54, 54, 16, 44, 54, 53, 156, 58,
674 53, 170, 54, 54, 6, 133, 121, 165, 166, 163,
675 -1, -1, -1, 40, 41, 134, -1, 127, -1, 46,
676 47, -1, 71, -1, 134, -1, -1, -1, -1, -1,
677 57, 58, 59, 143, 153, -1, -1, -1, 148, -1,
678 -1, -1, -1, 153, 154, 164, 3, 4, 5, 6,
679 165, -1, -1, -1, 164, -1, -1, 14, 15, -1,
680 3, 4, 5, 6, -1, -1, -1, -1, -1, -1,
681 13, 14, 15, -1, -1, 3, 4, 5, 6, -1,
682 129, -1, -1, 40, 41, 13, 14, 15, -1, 46,
683 47, -1, -1, -1, -1, 52, 53, 40, 41, -1,
684 57, 58, -1, 46, 47, -1, 155, -1, -1, 52,
685 -1, -1, 40, 41, 57, 58, -1, -1, 46, 47,
686 3, 4, 5, 6, 52, -1, -1, -1, -1, 57,
687 58, 14, 15, -1, 3, 4, 5, 6, -1, -1,
688 -1, -1, -1, -1, 13, 14, 15, -1, 3, 4,
689 5, 6, -1, -1, -1, -1, -1, 40, 41, 14,
690 15, -1, -1, 46, 47, -1, -1, -1, -1, -1,
691 53, 40, 41, -1, 57, 58, -1, 46, 47, -1,
692 -1, -1, -1, -1, -1, 40, 41, -1, 57, 58,
693 -1, 46, 47, 7, 8, 9, 10, 11, 12, -1,
694 -1, -1, 57, 58, 18, -1, 20, 21, 22, 23,
695 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
696 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
697 44, 45, -1, -1, -1, -1, 50, 51, 7, 8,
698 9, 10, 11, 12, -1, 59, -1, -1, -1, 18,
699 -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
700 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
701 39, 40, 41, 42, 43, 44, 45, -1, -1, -1,
702 -1, 50, 51, 52, 7, 8, 9, 10, 11, 12,
703 -1, -1, -1, -1, -1, 18, -1, 20, 21, 22,
704 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
705 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
706 43, 44, 45, -1, -1, -1, -1, 50, 51, 52,
707 7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
708 -1, 18, -1, 20, 21, 22, 23, 24, 25, 26,
709 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
710 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
711 -1, -1, -1, 50, 51, 7, 8, 9, 10, 11,
712 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
713 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
714 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
715 42, 43, 44, 45, -1, -1, -1, -1, 50, 51,
716 7, 8, 9, 10, 11, 12, -1, -1, 7, 8,
717 9, 10, 11, 12, 21, 22, 23, 24, 25, 26,
718 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
719 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
720 -1, -1, -1, 50, 51, 7, 8, 9, 10, 11,
721 12, 50, 51, -1, -1, -1, -1, -1, -1, -1,
722 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
723 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
724 42, 43, 44, 45, -1, -1, -1, -1, 50, 51,
725 7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
726 -1, -1, -1, -1, -1, -1, 23, 24, 25, 26,
727 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
728 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
729 -1, -1, -1, 50, 51, 7, 8, 9, 10, 11,
730 12, -1, -1, -1, -1, -1, -1, -1, -1, -1,
731 -1, -1, 24, 25, 26, 27, 28, 29, 30, 31,
732 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
733 42, 43, 44, 45, -1, -1, -1, -1, 50, 51,
734 7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
735 -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
736 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
737 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
738 -1, -1, -1, 50, 51, 7, 8, 9, 10, 11,
739 12, -1, -1, -1, -1, -1, -1, -1, 7, 8,
740 9, 10, 11, 12, 26, 27, 28, 29, 30, 31,
741 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
742 42, 43, 44, 45, -1, -1, -1, -1, 50, 51,
743 7, 8, 9, 10, 11, 12, 45, -1, -1, -1,
744 -1, 50, 51, -1, -1, -1, -1, -1, -1, -1,
745 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
746 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
747 -1, -1, -1, 50, 51, 7, 8, 9, 10, 11,
748 12, -1, -1, -1, -1, -1, -1, 7, 8, 9,
749 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
750 -1, 33, 34, 35, 36, 37, 38, 39, 40, 41,
751 42, 43, 44, 45, -1, -1, -1, -1, 50, 51,
752 40, 41, 42, 43, 44, 45, -1, -1, -1, -1,
753 50, 51, 7, 8, 9, 10, 11, 12, -1, -1,
754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
755 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
756 -1, -1, -1, -1, -1, -1, -1, 42, 43, 44,
757 45, -1, -1, -1, -1, 50, 51
758 };
759
760 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
761 symbol of state STATE-NUM. */
762 static const unsigned char yystos[] =
763 {
764 0, 3, 4, 5, 6, 14, 15, 40, 41, 46,
765 47, 53, 57, 58, 61, 64, 65, 67, 69, 17,
766 58, 3, 5, 72, 58, 72, 67, 67, 67, 67,
767 64, 58, 66, 67, 0, 52, 62, 63, 7, 8,
768 9, 10, 11, 12, 18, 20, 21, 22, 23, 24,
769 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
770 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
771 45, 50, 51, 67, 59, 66, 53, 66, 53, 54,
772 63, 66, 55, 59, 52, 65, 66, 67, 67, 67,
773 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
774 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
775 67, 67, 67, 66, 67, 59, 5, 13, 62, 63,
776 66, 73, 74, 59, 70, 59, 67, 19, 56, 19,
777 58, 54, 62, 63, 53, 3, 67, 66, 5, 54,
778 74, 64, 71, 17, 62, 54, 67, 54, 52, 16,
779 68, 67, 14, 53, 52, 58, 64, 67, 66, 62,
780 59, 59, 54, 53, 53, 73, 64, 62, 62, 54,
781 54, 68
782 };
783
784 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
785 # define YYSIZE_T __SIZE_TYPE__
786 #endif
787 #if ! defined (YYSIZE_T) && defined (size_t)
788 # define YYSIZE_T size_t
789 #endif
790 #if ! defined (YYSIZE_T)
791 # if defined (__STDC__) || defined (__cplusplus)
792 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
793 # define YYSIZE_T size_t
794 # endif
795 #endif
796 #if ! defined (YYSIZE_T)
797 # define YYSIZE_T unsigned int
798 #endif
799
800 #define yyerrok (yyerrstatus = 0)
801 #define yyclearin (yychar = YYEMPTY)
802 #define YYEMPTY (-2)
803 #define YYEOF 0
804
805 #define YYACCEPT goto yyacceptlab
806 #define YYABORT goto yyabortlab
807 #define YYERROR goto yyerrlab1
808
809 /* Like YYERROR except do call yyerror. This remains here temporarily
810 to ease the transition to the new meaning of YYERROR, for GCC.
811 Once GCC version 2 has supplanted version 1, this can go. */
812
813 #define YYFAIL goto yyerrlab
814
815 #define YYRECOVERING() (!!yyerrstatus)
816
817 #define YYBACKUP(Token, Value) \
818 do \
819 if (yychar == YYEMPTY && yylen == 1) \
820 { \
821 yychar = (Token); \
822 yylval = (Value); \
823 yytoken = YYTRANSLATE (yychar); \
824 YYPOPSTACK; \
825 goto yybackup; \
826 } \
827 else \
828 { \
829 yyerror ("syntax error: cannot back up");\
830 YYERROR; \
831 } \
832 while (0)
833
834 #define YYTERROR 1
835 #define YYERRCODE 256
836
837 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
838 are run). */
839
840 #ifndef YYLLOC_DEFAULT
841 # define YYLLOC_DEFAULT(Current, Rhs, N) \
842 Current.first_line = Rhs[1].first_line; \
843 Current.first_column = Rhs[1].first_column; \
844 Current.last_line = Rhs[N].last_line; \
845 Current.last_column = Rhs[N].last_column;
846 #endif
847
848 /* YYLEX -- calling `yylex' with the right arguments. */
849
850 #ifdef YYLEX_PARAM
851 # define YYLEX yylex (YYLEX_PARAM)
852 #else
853 # define YYLEX yylex ()
854 #endif
855
856 /* Enable debugging if requested. */
857 #if YYDEBUG
858
859 # ifndef YYFPRINTF
860 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
861 # define YYFPRINTF fprintf
862 # endif
863
864 # define YYDPRINTF(Args) \
865 do { \
866 if (yydebug) \
867 YYFPRINTF Args; \
868 } while (0)
869
870 # define YYDSYMPRINT(Args) \
871 do { \
872 if (yydebug) \
873 yysymprint Args; \
874 } while (0)
875
876 # define YYDSYMPRINTF(Title, Token, Value, Location) \
877 do { \
878 if (yydebug) \
879 { \
880 YYFPRINTF (stderr, "%s ", Title); \
881 yysymprint (stderr, \
882 Token, Value, Location); \
883 YYFPRINTF (stderr, "\n"); \
884 } \
885 } while (0)
886
887 /*------------------------------------------------------------------.
888 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
889 | TOP (cinluded). |
890 `------------------------------------------------------------------*/
891
892 #if defined (__STDC__) || defined (__cplusplus)
893 static void
yy_stack_print(short * bottom,short * top)894 yy_stack_print (short *bottom, short *top)
895 #else
896 static void
897 yy_stack_print (bottom, top)
898 short *bottom;
899 short *top;
900 #endif
901 {
902 YYFPRINTF (stderr, "Stack now");
903 for (/* Nothing. */; bottom <= top; ++bottom)
904 YYFPRINTF (stderr, " %d", *bottom);
905 YYFPRINTF (stderr, "\n");
906 }
907
908 # define YY_STACK_PRINT(Bottom, Top) \
909 do { \
910 if (yydebug) \
911 yy_stack_print ((Bottom), (Top)); \
912 } while (0)
913
914
915 /*------------------------------------------------.
916 | Report that the YYRULE is going to be reduced. |
917 `------------------------------------------------*/
918
919 #if defined (__STDC__) || defined (__cplusplus)
920 static void
yy_reduce_print(int yyrule)921 yy_reduce_print (int yyrule)
922 #else
923 static void
924 yy_reduce_print (yyrule)
925 int yyrule;
926 #endif
927 {
928 int yyi;
929 unsigned int yylineno = yyrline[yyrule];
930 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
931 yyrule - 1, yylineno);
932 /* Print the symbols being reduced, and their result. */
933 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
934 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
935 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
936 }
937
938 # define YY_REDUCE_PRINT(Rule) \
939 do { \
940 if (yydebug) \
941 yy_reduce_print (Rule); \
942 } while (0)
943
944 /* Nonzero means print parse trace. It is left uninitialized so that
945 multiple parsers can coexist. */
946 int yydebug;
947 #else /* !YYDEBUG */
948 # define YYDPRINTF(Args)
949 # define YYDSYMPRINT(Args)
950 # define YYDSYMPRINTF(Title, Token, Value, Location)
951 # define YY_STACK_PRINT(Bottom, Top)
952 # define YY_REDUCE_PRINT(Rule)
953 #endif /* !YYDEBUG */
954
955
956 /* YYINITDEPTH -- initial size of the parser's stacks. */
957 #ifndef YYINITDEPTH
958 # define YYINITDEPTH 200
959 #endif
960
961 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
962 if the built-in stack extension method is used).
963
964 Do not make this value too large; the results are undefined if
965 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
966 evaluated with infinite-precision integer arithmetic. */
967
968 #if YYMAXDEPTH == 0
969 # undef YYMAXDEPTH
970 #endif
971
972 #ifndef YYMAXDEPTH
973 # define YYMAXDEPTH 10000
974 #endif
975
976
977
978 #if YYERROR_VERBOSE
979
980 # ifndef yystrlen
981 # if defined (__GLIBC__) && defined (_STRING_H)
982 # define yystrlen strlen
983 # else
984 /* Return the length of YYSTR. */
985 static YYSIZE_T
986 # if defined (__STDC__) || defined (__cplusplus)
yystrlen(const char * yystr)987 yystrlen (const char *yystr)
988 # else
989 yystrlen (yystr)
990 const char *yystr;
991 # endif
992 {
993 register const char *yys = yystr;
994
995 while (*yys++ != '\0')
996 continue;
997
998 return yys - yystr - 1;
999 }
1000 # endif
1001 # endif
1002
1003 # ifndef yystpcpy
1004 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1005 # define yystpcpy stpcpy
1006 # else
1007 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1008 YYDEST. */
1009 static char *
1010 # if defined (__STDC__) || defined (__cplusplus)
yystpcpy(char * yydest,const char * yysrc)1011 yystpcpy (char *yydest, const char *yysrc)
1012 # else
1013 yystpcpy (yydest, yysrc)
1014 char *yydest;
1015 const char *yysrc;
1016 # endif
1017 {
1018 register char *yyd = yydest;
1019 register const char *yys = yysrc;
1020
1021 while ((*yyd++ = *yys++) != '\0')
1022 continue;
1023
1024 return yyd - 1;
1025 }
1026 # endif
1027 # endif
1028
1029 #endif /* !YYERROR_VERBOSE */
1030
1031
1032
1033 #if YYDEBUG
1034 /*--------------------------------.
1035 | Print this symbol on YYOUTPUT. |
1036 `--------------------------------*/
1037
1038 #if defined (__STDC__) || defined (__cplusplus)
1039 static void
yysymprint(FILE * yyoutput,int yytype,YYSTYPE * yyvaluep,YYLTYPE * yylocationp)1040 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
1041 #else
1042 static void
1043 yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
1044 FILE *yyoutput;
1045 int yytype;
1046 YYSTYPE *yyvaluep;
1047 YYLTYPE *yylocationp;
1048 #endif
1049 {
1050 /* Pacify ``unused variable'' warnings. */
1051 (void) yyvaluep;
1052 (void) yylocationp;
1053
1054 if (yytype < YYNTOKENS)
1055 {
1056 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1057 # ifdef YYPRINT
1058 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1059 # endif
1060 }
1061 else
1062 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1063
1064 switch (yytype)
1065 {
1066 default:
1067 break;
1068 }
1069 YYFPRINTF (yyoutput, ")");
1070 }
1071
1072 #endif /* ! YYDEBUG */
1073 /*-----------------------------------------------.
1074 | Release the memory associated to this symbol. |
1075 `-----------------------------------------------*/
1076
1077 #if defined (__STDC__) || defined (__cplusplus)
1078 static void
yydestruct(int yytype,YYSTYPE * yyvaluep,YYLTYPE * yylocationp)1079 yydestruct (int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
1080 #else
1081 static void
1082 yydestruct (yytype, yyvaluep, yylocationp)
1083 int yytype;
1084 YYSTYPE *yyvaluep;
1085 YYLTYPE *yylocationp;
1086 #endif
1087 {
1088 /* Pacify ``unused variable'' warnings. */
1089 (void) yyvaluep;
1090 (void) yylocationp;
1091
1092 switch (yytype)
1093 {
1094
1095 default:
1096 break;
1097 }
1098 }
1099
1100
1101 /* Prevent warnings from -Wmissing-prototypes. */
1102
1103 #ifdef YYPARSE_PARAM
1104 # if defined (__STDC__) || defined (__cplusplus)
1105 int yyparse (void *YYPARSE_PARAM);
1106 # else
1107 int yyparse ();
1108 # endif
1109 #else /* ! YYPARSE_PARAM */
1110 #if defined (__STDC__) || defined (__cplusplus)
1111 int yyparse (void);
1112 #else
1113 int yyparse ();
1114 #endif
1115 #endif /* ! YYPARSE_PARAM */
1116
1117
1118
1119 /* The lookahead symbol. */
1120 int yychar;
1121
1122 /* The semantic value of the lookahead symbol. */
1123 YYSTYPE yylval;
1124
1125 /* Number of syntax errors so far. */
1126 int yynerrs;
1127 /* Location data for the lookahead symbol. */
1128 YYLTYPE yylloc;
1129
1130
1131
1132 /*----------.
1133 | yyparse. |
1134 `----------*/
1135
1136 #ifdef YYPARSE_PARAM
1137 # if defined (__STDC__) || defined (__cplusplus)
yyparse(void * YYPARSE_PARAM)1138 int yyparse (void *YYPARSE_PARAM)
1139 # else
1140 int yyparse (YYPARSE_PARAM)
1141 void *YYPARSE_PARAM;
1142 # endif
1143 #else /* ! YYPARSE_PARAM */
1144 #if defined (__STDC__) || defined (__cplusplus)
1145 int
1146 yyparse (void)
1147 #else
1148 int
1149 yyparse ()
1150
1151 #endif
1152 #endif
1153 {
1154
1155 register int yystate;
1156 register int yyn;
1157 int yyresult;
1158 /* Number of tokens to shift before error messages enabled. */
1159 int yyerrstatus;
1160 /* Lookahead token as an internal (translated) token number. */
1161 int yytoken = 0;
1162
1163 /* Three stacks and their tools:
1164 `yyss': related to states,
1165 `yyvs': related to semantic values,
1166 `yyls': related to locations.
1167
1168 Refer to the stacks thru separate pointers, to allow yyoverflow
1169 to reallocate them elsewhere. */
1170
1171 /* The state stack. */
1172 short yyssa[YYINITDEPTH];
1173 short *yyss = yyssa;
1174 register short *yyssp;
1175
1176 /* The semantic value stack. */
1177 YYSTYPE yyvsa[YYINITDEPTH];
1178 YYSTYPE *yyvs = yyvsa;
1179 register YYSTYPE *yyvsp;
1180
1181 /* The location stack. */
1182 YYLTYPE yylsa[YYINITDEPTH];
1183 YYLTYPE *yyls = yylsa;
1184 YYLTYPE *yylsp;
1185 YYLTYPE *yylerrsp;
1186
1187 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1188
1189 YYSIZE_T yystacksize = YYINITDEPTH;
1190
1191 /* The variables used to return semantic value and location from the
1192 action routines. */
1193 YYSTYPE yyval;
1194 YYLTYPE yyloc;
1195
1196 /* When reducing, the number of symbols on the RHS of the reduced
1197 rule. */
1198 int yylen;
1199
1200 YYDPRINTF ((stderr, "Starting parse\n"));
1201
1202 yystate = 0;
1203 yyerrstatus = 0;
1204 yynerrs = 0;
1205 yychar = YYEMPTY; /* Cause a token to be read. */
1206
1207 /* Initialize stack pointers.
1208 Waste one element of value and location stack
1209 so that they stay on the same level as the state stack.
1210 The wasted elements are never initialized. */
1211
1212 yyssp = yyss;
1213 yyvsp = yyvs;
1214 yylsp = yyls;
1215 goto yysetstate;
1216
1217 /*------------------------------------------------------------.
1218 | yynewstate -- Push a new state, which is found in yystate. |
1219 `------------------------------------------------------------*/
1220 yynewstate:
1221 /* In all cases, when you get here, the value and location stacks
1222 have just been pushed. so pushing a state here evens the stacks.
1223 */
1224 yyssp++;
1225
1226 yysetstate:
1227 *yyssp = yystate;
1228
1229 if (yyss + yystacksize - 1 <= yyssp)
1230 {
1231 /* Get the current used size of the three stacks, in elements. */
1232 YYSIZE_T yysize = yyssp - yyss + 1;
1233
1234 #ifdef yyoverflow
1235 {
1236 /* Give user a chance to reallocate the stack. Use copies of
1237 these so that the &'s don't force the real ones into
1238 memory. */
1239 YYSTYPE *yyvs1 = yyvs;
1240 short *yyss1 = yyss;
1241 YYLTYPE *yyls1 = yyls;
1242
1243 /* Each stack pointer address is followed by the size of the
1244 data in use in that stack, in bytes. This used to be a
1245 conditional around just the two extra args, but that might
1246 be undefined if yyoverflow is a macro. */
1247 yyoverflow ("parser stack overflow",
1248 &yyss1, yysize * sizeof (*yyssp),
1249 &yyvs1, yysize * sizeof (*yyvsp),
1250 &yyls1, yysize * sizeof (*yylsp),
1251 &yystacksize);
1252 yyls = yyls1;
1253 yyss = yyss1;
1254 yyvs = yyvs1;
1255 }
1256 #else /* no yyoverflow */
1257 # ifndef YYSTACK_RELOCATE
1258 goto yyoverflowlab;
1259 # else
1260 /* Extend the stack our own way. */
1261 if (YYMAXDEPTH <= yystacksize)
1262 goto yyoverflowlab;
1263 yystacksize *= 2;
1264 if (YYMAXDEPTH < yystacksize)
1265 yystacksize = YYMAXDEPTH;
1266
1267 {
1268 short *yyss1 = yyss;
1269 union yyalloc *yyptr =
1270 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1271 if (! yyptr)
1272 goto yyoverflowlab;
1273 YYSTACK_RELOCATE (yyss);
1274 YYSTACK_RELOCATE (yyvs);
1275 YYSTACK_RELOCATE (yyls);
1276 # undef YYSTACK_RELOCATE
1277 if (yyss1 != yyssa)
1278 YYSTACK_FREE (yyss1);
1279 }
1280 # endif
1281 #endif /* no yyoverflow */
1282
1283 yyssp = yyss + yysize - 1;
1284 yyvsp = yyvs + yysize - 1;
1285 yylsp = yyls + yysize - 1;
1286
1287 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1288 (unsigned long int) yystacksize));
1289
1290 if (yyss + yystacksize - 1 <= yyssp)
1291 YYABORT;
1292 }
1293
1294 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1295
1296 goto yybackup;
1297
1298 /*-----------.
1299 | yybackup. |
1300 `-----------*/
1301 yybackup:
1302
1303 /* Do appropriate processing given the current state. */
1304 /* Read a lookahead token if we need one and don't already have one. */
1305 /* yyresume: */
1306
1307 /* First try to decide what to do without reference to lookahead token. */
1308
1309 yyn = yypact[yystate];
1310 if (yyn == YYPACT_NINF)
1311 goto yydefault;
1312
1313 /* Not known => get a lookahead token if don't already have one. */
1314
1315 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1316 if (yychar == YYEMPTY)
1317 {
1318 YYDPRINTF ((stderr, "Reading a token: "));
1319 yychar = YYLEX;
1320 }
1321
1322 if (yychar <= YYEOF)
1323 {
1324 yychar = yytoken = YYEOF;
1325 YYDPRINTF ((stderr, "Now at end of input.\n"));
1326 }
1327 else
1328 {
1329 yytoken = YYTRANSLATE (yychar);
1330 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1331 }
1332
1333 /* If the proper action on seeing token YYTOKEN is to reduce or to
1334 detect an error, take that action. */
1335 yyn += yytoken;
1336 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1337 goto yydefault;
1338 yyn = yytable[yyn];
1339 if (yyn <= 0)
1340 {
1341 if (yyn == 0 || yyn == YYTABLE_NINF)
1342 goto yyerrlab;
1343 yyn = -yyn;
1344 goto yyreduce;
1345 }
1346
1347 if (yyn == YYFINAL)
1348 YYACCEPT;
1349
1350 /* Shift the lookahead token. */
1351 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1352
1353 /* Discard the token being shifted unless it is eof. */
1354 if (yychar != YYEOF)
1355 yychar = YYEMPTY;
1356
1357 *++yyvsp = yylval;
1358 *++yylsp = yylloc;
1359
1360 /* Count tokens shifted since error; after three, turn off error
1361 status. */
1362 if (yyerrstatus)
1363 yyerrstatus--;
1364
1365 yystate = yyn;
1366 goto yynewstate;
1367
1368
1369 /*-----------------------------------------------------------.
1370 | yydefault -- do the default action for the current state. |
1371 `-----------------------------------------------------------*/
1372 yydefault:
1373 yyn = yydefact[yystate];
1374 if (yyn == 0)
1375 goto yyerrlab;
1376 goto yyreduce;
1377
1378
1379 /*-----------------------------.
1380 | yyreduce -- Do a reduction. |
1381 `-----------------------------*/
1382 yyreduce:
1383 /* yyn is the number of a rule to reduce with. */
1384 yylen = yyr2[yyn];
1385
1386 /* If YYLEN is nonzero, implement the default value of the action:
1387 `$$ = $1'.
1388
1389 Otherwise, the following line sets YYVAL to garbage.
1390 This behavior is undocumented and Bison
1391 users should not rely upon it. Assigning to YYVAL
1392 unconditionally makes the parser a bit smaller, and it avoids a
1393 GCC warning that YYVAL may be used uninitialized. */
1394 yyval = yyvsp[1-yylen];
1395
1396 /* Default location. */
1397 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1398 YY_REDUCE_PRINT (yyn);
1399 switch (yyn)
1400 {
1401 case 2:
1402 #line 101 "src\\sswf\\sswf_grammar.y"
1403 {
1404 /* the returned value is the result */
1405 * (struct node_t **) result = yyvsp[-1].node;
1406 ;}
1407 break;
1408
1409 case 7:
1410 #line 120 "src\\sswf\\sswf_grammar.y"
1411 {
1412 yyval.node = yyvsp[0].node;
1413 ;}
1414 break;
1415
1416 case 8:
1417 #line 124 "src\\sswf\\sswf_grammar.y"
1418 {
1419 yyval.node = yyvsp[-2].node;
1420 node_link_tail(yyval.node, yyvsp[0].node);
1421 ;}
1422 break;
1423
1424 case 9:
1425 #line 132 "src\\sswf\\sswf_grammar.y"
1426 {
1427 yyval.node = yyvsp[0].node;
1428 ;}
1429 break;
1430
1431 case 10:
1432 #line 136 "src\\sswf\\sswf_grammar.y"
1433 {
1434 /* this is equivalent to a LIST without a name */
1435 yyval.node = node_alloc(NODE_TYPE_OBJECT, NODE_SUBTYPE_BLOCK, yylsp[-2].first_line);
1436 /* left = NULL -- always unamed object */
1437 node_link_right(yyval.node, yyvsp[-1].node);
1438 node_link_object(yyval.node);
1439 ;}
1440 break;
1441
1442 case 11:
1443 #line 147 "src\\sswf\\sswf_grammar.y"
1444 {
1445 yyval.node = yyvsp[0].node;
1446 ;}
1447 break;
1448
1449 case 12:
1450 #line 151 "src\\sswf\\sswf_grammar.y"
1451 {
1452 yyval.node = yyvsp[-2].node;
1453 node_link_tail(yyval.node, yyvsp[0].node);
1454 ;}
1455 break;
1456
1457 case 13:
1458 #line 159 "src\\sswf\\sswf_grammar.y"
1459 {
1460 yyval.node = yyvsp[-1].node;
1461 yyval.node->unit[NODE_UNIT_ANGLE] = yyvsp[0].type;
1462 ;}
1463 break;
1464
1465 case 14:
1466 #line 164 "src\\sswf\\sswf_grammar.y"
1467 {
1468 yyval.node = yyvsp[-1].node;
1469 yyval.node->unit[NODE_UNIT_COLOR] = yyvsp[0].type;
1470 ;}
1471 break;
1472
1473 case 15:
1474 #line 169 "src\\sswf\\sswf_grammar.y"
1475 {
1476 yyval.node = yyvsp[-1].node;
1477 yyval.node->unit[NODE_UNIT_RATIO] = yyvsp[0].type;
1478 ;}
1479 break;
1480
1481 case 16:
1482 #line 174 "src\\sswf\\sswf_grammar.y"
1483 {
1484 yyval.node = yyvsp[-1].node;
1485 yyval.node->unit[NODE_UNIT_SIZE] = yyvsp[0].type;
1486 ;}
1487 break;
1488
1489 case 17:
1490 #line 179 "src\\sswf\\sswf_grammar.y"
1491 {
1492 yyval.node = yyvsp[-1].node;
1493 yyval.node->unit[NODE_UNIT_SPEED] = yyvsp[0].type;
1494 ;}
1495 break;
1496
1497 case 18:
1498 #line 184 "src\\sswf\\sswf_grammar.y"
1499 {
1500 yyval.node = yyvsp[-1].node;
1501 yyval.node->unit[NODE_UNIT_TIME] = yyvsp[0].type;
1502 ;}
1503 break;
1504
1505 case 19:
1506 #line 189 "src\\sswf\\sswf_grammar.y"
1507 {
1508 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_FIELD, yylsp[-2].first_line);
1509 node_link_left(yyval.node, yyvsp[-2].node);
1510 node_link_right(yyval.node, yyvsp[0].node);
1511 ;}
1512 break;
1513
1514 case 20:
1515 #line 195 "src\\sswf\\sswf_grammar.y"
1516 {
1517 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_SUBSCRIPT, yylsp[-3].first_line);
1518 node_link_left(yyval.node, yyvsp[-3].node);
1519 node_link_right(yyval.node, yyvsp[-1].node);
1520 ;}
1521 break;
1522
1523 case 21:
1524 #line 201 "src\\sswf\\sswf_grammar.y"
1525 {
1526 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_EXPAND, yylsp[-3].first_line);
1527 node_link_left(yyval.node, yyvsp[-1].node);
1528 ;}
1529 break;
1530
1531 case 22:
1532 #line 206 "src\\sswf\\sswf_grammar.y"
1533 {
1534 if(yyvsp[-1].node->next != NULL) {
1535 /* Check whether the expr returns a list of nodes...
1536 * This happens when a comma is used between multiple expressions.
1537 * We need to have a 'GROUP' node because all the children are affected
1538 * by the following token(s) such as a UNIT.
1539 */
1540 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_GROUP, yylsp[-2].first_line);
1541 node_link_left(yyval.node, yyvsp[-1].node);
1542 }
1543 else {
1544 /* no worry, we don't need to add another node */
1545 yyval.node = yyvsp[-1].node;
1546 }
1547 ;}
1548 break;
1549
1550 case 23:
1551 #line 222 "src\\sswf\\sswf_grammar.y"
1552 {
1553 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_IDENTITY, yylsp[-1].first_line);
1554 node_link_left(yyval.node, yyvsp[0].node);
1555 ;}
1556 break;
1557
1558 case 24:
1559 #line 227 "src\\sswf\\sswf_grammar.y"
1560 {
1561 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_NEGATE, yylsp[-1].first_line);
1562 node_link_left(yyval.node, yyvsp[0].node);
1563 ;}
1564 break;
1565
1566 case 25:
1567 #line 232 "src\\sswf\\sswf_grammar.y"
1568 {
1569 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_LOGICAL_NOT, yylsp[-1].first_line);
1570 node_link_left(yyval.node, yyvsp[0].node);
1571 ;}
1572 break;
1573
1574 case 26:
1575 #line 237 "src\\sswf\\sswf_grammar.y"
1576 {
1577 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_NOT, yylsp[-1].first_line);
1578 node_link_left(yyval.node, yyvsp[0].node);
1579 ;}
1580 break;
1581
1582 case 27:
1583 #line 242 "src\\sswf\\sswf_grammar.y"
1584 {
1585 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_FUNCTION, yylsp[-2].first_line);
1586 node_link_left(yyval.node, yyvsp[-2].node);
1587 /* right = NULL -- no parameters */
1588 ;}
1589 break;
1590
1591 case 28:
1592 #line 248 "src\\sswf\\sswf_grammar.y"
1593 {
1594 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_FUNCTION, yylsp[-3].first_line);
1595 node_link_left(yyval.node, yyvsp[-3].node);
1596 node_link_right(yyval.node, yyvsp[-1].node);
1597 ;}
1598 break;
1599
1600 case 29:
1601 #line 254 "src\\sswf\\sswf_grammar.y"
1602 {
1603 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_POWER, yylsp[-2].first_line);
1604 node_link_left(yyval.node, yyvsp[-2].node);
1605 node_link_right(yyval.node, yyvsp[0].node);
1606 ;}
1607 break;
1608
1609 case 30:
1610 #line 260 "src\\sswf\\sswf_grammar.y"
1611 {
1612 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_MULTIPLY, yylsp[-2].first_line);
1613 node_link_left(yyval.node, yyvsp[-2].node);
1614 node_link_right(yyval.node, yyvsp[0].node);
1615 ;}
1616 break;
1617
1618 case 31:
1619 #line 266 "src\\sswf\\sswf_grammar.y"
1620 {
1621 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_DIVIDE, yylsp[-2].first_line);
1622 node_link_left(yyval.node, yyvsp[-2].node);
1623 node_link_right(yyval.node, yyvsp[0].node);
1624 ;}
1625 break;
1626
1627 case 32:
1628 #line 272 "src\\sswf\\sswf_grammar.y"
1629 {
1630 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_MODULO, yylsp[-2].first_line);
1631 node_link_left(yyval.node, yyvsp[-2].node);
1632 node_link_right(yyval.node, yyvsp[0].node);
1633 ;}
1634 break;
1635
1636 case 33:
1637 #line 278 "src\\sswf\\sswf_grammar.y"
1638 {
1639 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_ADD, yylsp[-2].first_line);
1640 node_link_left(yyval.node, yyvsp[-2].node);
1641 node_link_right(yyval.node, yyvsp[0].node);
1642 ;}
1643 break;
1644
1645 case 34:
1646 #line 284 "src\\sswf\\sswf_grammar.y"
1647 {
1648 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_SUBTRACT, yylsp[-2].first_line);
1649 node_link_left(yyval.node, yyvsp[-2].node);
1650 node_link_right(yyval.node, yyvsp[0].node);
1651 ;}
1652 break;
1653
1654 case 35:
1655 #line 290 "src\\sswf\\sswf_grammar.y"
1656 {
1657 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_MINIMUM, yylsp[-2].first_line);
1658 node_link_left(yyval.node, yyvsp[-2].node);
1659 node_link_right(yyval.node, yyvsp[0].node);
1660 ;}
1661 break;
1662
1663 case 36:
1664 #line 296 "src\\sswf\\sswf_grammar.y"
1665 {
1666 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_MAXIMUM, yylsp[-2].first_line);
1667 node_link_left(yyval.node, yyvsp[-2].node);
1668 node_link_right(yyval.node, yyvsp[0].node);
1669 ;}
1670 break;
1671
1672 case 37:
1673 #line 302 "src\\sswf\\sswf_grammar.y"
1674 {
1675 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_SHIFT_LEFT, yylsp[-2].first_line);
1676 node_link_left(yyval.node, yyvsp[-2].node);
1677 node_link_right(yyval.node, yyvsp[0].node);
1678 ;}
1679 break;
1680
1681 case 38:
1682 #line 308 "src\\sswf\\sswf_grammar.y"
1683 {
1684 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_SHIFT_RIGHT, yylsp[-2].first_line);
1685 node_link_left(yyval.node, yyvsp[-2].node);
1686 node_link_right(yyval.node, yyvsp[0].node);
1687 ;}
1688 break;
1689
1690 case 39:
1691 #line 314 "src\\sswf\\sswf_grammar.y"
1692 {
1693 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_SHIFT_RIGHT_UNSIGNED, yylsp[-2].first_line);
1694 node_link_left(yyval.node, yyvsp[-2].node);
1695 node_link_right(yyval.node, yyvsp[0].node);
1696 ;}
1697 break;
1698
1699 case 40:
1700 #line 320 "src\\sswf\\sswf_grammar.y"
1701 {
1702 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_ROTATE_LEFT, yylsp[-2].first_line);
1703 node_link_left(yyval.node, yyvsp[-2].node);
1704 node_link_right(yyval.node, yyvsp[0].node);
1705 ;}
1706 break;
1707
1708 case 41:
1709 #line 326 "src\\sswf\\sswf_grammar.y"
1710 {
1711 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_ROTATE_RIGHT, yylsp[-2].first_line);
1712 node_link_left(yyval.node, yyvsp[-2].node);
1713 node_link_right(yyval.node, yyvsp[0].node);
1714 ;}
1715 break;
1716
1717 case 42:
1718 #line 332 "src\\sswf\\sswf_grammar.y"
1719 {
1720 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_EQUAL, yylsp[-2].first_line);
1721 node_link_left(yyval.node, yyvsp[-2].node);
1722 node_link_right(yyval.node, yyvsp[0].node);
1723 ;}
1724 break;
1725
1726 case 43:
1727 #line 338 "src\\sswf\\sswf_grammar.y"
1728 {
1729 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_NOT_EQUAL, yylsp[-2].first_line);
1730 node_link_left(yyval.node, yyvsp[-2].node);
1731 node_link_right(yyval.node, yyvsp[0].node);
1732 ;}
1733 break;
1734
1735 case 44:
1736 #line 344 "src\\sswf\\sswf_grammar.y"
1737 {
1738 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_LESS, yylsp[-2].first_line);
1739 node_link_left(yyval.node, yyvsp[-2].node);
1740 node_link_right(yyval.node, yyvsp[0].node);
1741 ;}
1742 break;
1743
1744 case 45:
1745 #line 350 "src\\sswf\\sswf_grammar.y"
1746 {
1747 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_LESS_EQUAL, yylsp[-2].first_line);
1748 node_link_left(yyval.node, yyvsp[-2].node);
1749 node_link_right(yyval.node, yyvsp[0].node);
1750 ;}
1751 break;
1752
1753 case 46:
1754 #line 356 "src\\sswf\\sswf_grammar.y"
1755 {
1756 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_GREATER, yylsp[-2].first_line);
1757 node_link_left(yyval.node, yyvsp[-2].node);
1758 node_link_right(yyval.node, yyvsp[0].node);
1759 ;}
1760 break;
1761
1762 case 47:
1763 #line 362 "src\\sswf\\sswf_grammar.y"
1764 {
1765 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_GREATER_EQUAL, yylsp[-2].first_line);
1766 node_link_left(yyval.node, yyvsp[-2].node);
1767 node_link_right(yyval.node, yyvsp[0].node);
1768 ;}
1769 break;
1770
1771 case 48:
1772 #line 368 "src\\sswf\\sswf_grammar.y"
1773 {
1774 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_AND, yylsp[-2].first_line);
1775 node_link_left(yyval.node, yyvsp[-2].node);
1776 node_link_right(yyval.node, yyvsp[0].node);
1777 ;}
1778 break;
1779
1780 case 49:
1781 #line 374 "src\\sswf\\sswf_grammar.y"
1782 {
1783 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_XOR, yylsp[-2].first_line);
1784 node_link_left(yyval.node, yyvsp[-2].node);
1785 node_link_right(yyval.node, yyvsp[0].node);
1786 ;}
1787 break;
1788
1789 case 50:
1790 #line 380 "src\\sswf\\sswf_grammar.y"
1791 {
1792 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_OR, yylsp[-2].first_line);
1793 node_link_left(yyval.node, yyvsp[-2].node);
1794 node_link_right(yyval.node, yyvsp[0].node);
1795 ;}
1796 break;
1797
1798 case 51:
1799 #line 386 "src\\sswf\\sswf_grammar.y"
1800 {
1801 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_LOGICAL_AND, yylsp[-2].first_line);
1802 node_link_left(yyval.node, yyvsp[-2].node);
1803 node_link_right(yyval.node, yyvsp[0].node);
1804 ;}
1805 break;
1806
1807 case 52:
1808 #line 392 "src\\sswf\\sswf_grammar.y"
1809 {
1810 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_LOGICAL_XOR, yylsp[-2].first_line);
1811 node_link_left(yyval.node, yyvsp[-2].node);
1812 node_link_right(yyval.node, yyvsp[0].node);
1813 ;}
1814 break;
1815
1816 case 53:
1817 #line 398 "src\\sswf\\sswf_grammar.y"
1818 {
1819 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_LOGICAL_OR, yylsp[-2].first_line);
1820 node_link_left(yyval.node, yyvsp[-2].node);
1821 node_link_right(yyval.node, yyvsp[0].node);
1822 ;}
1823 break;
1824
1825 case 54:
1826 #line 404 "src\\sswf\\sswf_grammar.y"
1827 {
1828 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_RANGE, yylsp[-2].first_line);
1829 if(yyvsp[-2].node->type == NODE_TYPE_OPERATOR && yyvsp[-2].node->sub_type == NODE_SUBTYPE_RANGE) {
1830 fprintf(stderr, "ERROR: at line #%d: can't have two ranges defined one after another.\n", yylsp[-1].first_line);
1831 return -1;
1832 }
1833 if(yyvsp[0].node->type == NODE_TYPE_OPERATOR && yyvsp[0].node->sub_type == NODE_SUBTYPE_RANGE) {
1834 fprintf(stderr, "ERROR: at line #%d: can't have two ranges defined one after another.\n", yylsp[-1].first_line);
1835 return -1;
1836 }
1837 node_link_left(yyval.node, yyvsp[-2].node);
1838 node_link_right(yyval.node, yyvsp[0].node);
1839 ;}
1840 break;
1841
1842 case 55:
1843 #line 418 "src\\sswf\\sswf_grammar.y"
1844 {
1845 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_SELECT, yylsp[-4].first_line);
1846 node_link_select(yyval.node, yyvsp[-4].node);
1847 node_link_left(yyval.node, yyvsp[-2].node);
1848 node_link_right(yyval.node, yyvsp[0].node);
1849 ;}
1850 break;
1851
1852 case 56:
1853 #line 425 "src\\sswf\\sswf_grammar.y"
1854 {
1855 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_IF, yylsp[-8].first_line);
1856 node_link_select(yyval.node, yyvsp[-6].node);
1857 node_link_left(yyval.node, yyvsp[-3].node);
1858 node_link_right(yyval.node, yyvsp[0].node); /* may be a null pointer */
1859 ;}
1860 break;
1861
1862 case 57:
1863 #line 432 "src\\sswf\\sswf_grammar.y"
1864 {
1865 yyval.node = node_alloc(NODE_TYPE_OBJECT, NODE_SUBTYPE_VARIABLE, yylsp[-2].first_line);
1866 node_link_left(yyval.node, yyvsp[-2].node);
1867 node_link_right(yyval.node, yyvsp[0].node);
1868 node_link_object(yyval.node);
1869 ;}
1870 break;
1871
1872 case 58:
1873 #line 439 "src\\sswf\\sswf_grammar.y"
1874 {
1875 yyval.node = yyvsp[0].node;
1876 ;}
1877 break;
1878
1879 case 59:
1880 #line 443 "src\\sswf\\sswf_grammar.y"
1881 {
1882 yyval.node = yyvsp[0].node;
1883 ;}
1884 break;
1885
1886 case 60:
1887 #line 447 "src\\sswf\\sswf_grammar.y"
1888 {
1889 yyval.node = yyvsp[0].node;
1890 ;}
1891 break;
1892
1893 case 61:
1894 #line 451 "src\\sswf\\sswf_grammar.y"
1895 {
1896 yyval.node = yyvsp[0].node;
1897 ;}
1898 break;
1899
1900 case 62:
1901 #line 459 "src\\sswf\\sswf_grammar.y"
1902 {
1903 yyval.node = NULL;
1904 ;}
1905 break;
1906
1907 case 63:
1908 #line 463 "src\\sswf\\sswf_grammar.y"
1909 {
1910 yyval.node = yyvsp[-2].node;
1911 ;}
1912 break;
1913
1914 case 64:
1915 #line 467 "src\\sswf\\sswf_grammar.y"
1916 {
1917 yyval.node = node_alloc(NODE_TYPE_OPERATOR, NODE_SUBTYPE_IF, yylsp[-9].first_line);
1918 node_link_select(yyval.node, yyvsp[-6].node);
1919 node_link_left(yyval.node, yyvsp[-3].node);
1920 node_link_right(yyval.node, yyvsp[0].node); /* may be a null pointer */
1921 ;}
1922 break;
1923
1924 case 65:
1925 #line 478 "src\\sswf\\sswf_grammar.y"
1926 {
1927 yyval.node = yyvsp[-5].node;
1928 /* keep only non-empty names, it simplifies some other parts of the code! */
1929 if(yyvsp[-4].node != NULL && yyvsp[-4].node->string != NULL && *yyvsp[-4].node->string != '\0') {
1930 node_link_left(yyval.node, yyvsp[-4].node);
1931 }
1932 node_link_right(yyval.node, yyvsp[-2].node);
1933 node_link_object(yyval.node);
1934 ;}
1935 break;
1936
1937 case 66:
1938 #line 488 "src\\sswf\\sswf_grammar.y"
1939 {
1940 yyval.node = yyvsp[-4].node;
1941 if(yyvsp[-3].node != NULL && yyvsp[-3].node->string != NULL && *yyvsp[-3].node->string != '\0') {
1942 node_link_left(yyval.node, yyvsp[-3].node);
1943 }
1944 /* right = NULL -- no data for this object */
1945 node_link_object(yyval.node);
1946 ;}
1947 break;
1948
1949 case 67:
1950 #line 497 "src\\sswf\\sswf_grammar.y"
1951 {
1952 yyval.node = yyvsp[-1].node;
1953 if(yyvsp[0].node != NULL && yyvsp[0].node->string != NULL && *yyvsp[0].node->string != '\0') {
1954 node_link_left(yyval.node, yyvsp[0].node);
1955 }
1956 /* right = NULL -- no data for this object */
1957 node_link_object(yyval.node);
1958 ;}
1959 break;
1960
1961 case 68:
1962 #line 506 "src\\sswf\\sswf_grammar.y"
1963 { sswf_read_actionscript(1); ;}
1964 break;
1965
1966 case 69:
1967 #line 508 "src\\sswf\\sswf_grammar.y"
1968 { sswf_read_actionscript(0); ;}
1969 break;
1970
1971 case 70:
1972 #line 510 "src\\sswf\\sswf_grammar.y"
1973 {
1974 struct node_t *n;
1975
1976 /*
1977 * Note: we use the 1st line of the STRING so we can generate
1978 * proper errors in the Javascript compiler.
1979 */
1980 yyval.node = node_alloc(NODE_TYPE_OBJECT, NODE_SUBTYPE_ACTION_SCRIPT, yylsp[-2].first_line);
1981 if(yyvsp[-5].node != NULL && yyvsp[-5].node->string != NULL && *yyvsp[-5].node->string != '\0') {
1982 node_link_left(yyval.node, yyvsp[-5].node);
1983 }
1984 n = node_alloc(NODE_TYPE_DEFINITION, NODE_SUBTYPE_UNKNOWN, yylsp[-6].first_line);
1985 /* left = NULL -- no label */
1986 node_link_right(n, yyvsp[-2].node);
1987 node_link_right(yyval.node, n);
1988 node_link_object(yyval.node);
1989 ;}
1990 break;
1991
1992 case 71:
1993 #line 532 "src\\sswf\\sswf_grammar.y"
1994 {
1995 yyval.node = NULL;
1996 ;}
1997 break;
1998
1999 case 72:
2000 #line 536 "src\\sswf\\sswf_grammar.y"
2001 {
2002 yyval.node = yyvsp[0].node;
2003 ;}
2004 break;
2005
2006 case 73:
2007 #line 540 "src\\sswf\\sswf_grammar.y"
2008 {
2009 yyval.node = yyvsp[0].node;
2010 ;}
2011 break;
2012
2013 case 74:
2014 #line 552 "src\\sswf\\sswf_grammar.y"
2015 {
2016 yyval.node = yyvsp[0].node;
2017 ;}
2018 break;
2019
2020 case 75:
2021 #line 556 "src\\sswf\\sswf_grammar.y"
2022 {
2023 yyval.node = yyvsp[-2].node;
2024 node_link_tail(yyval.node, yyvsp[0].node);
2025 ;}
2026 break;
2027
2028 case 76:
2029 #line 565 "src\\sswf\\sswf_grammar.y"
2030 {
2031 yyval.node = node_alloc(NODE_TYPE_DEFINITION, NODE_SUBTYPE_UNKNOWN, yylsp[-2].first_line);
2032 node_link_left(yyval.node, yyvsp[-2].node);
2033 node_link_right(yyval.node, yyvsp[0].node);
2034 ;}
2035 break;
2036
2037 case 77:
2038 #line 571 "src\\sswf\\sswf_grammar.y"
2039 {
2040 yyval.node = node_alloc(NODE_TYPE_DEFINITION, NODE_SUBTYPE_UNKNOWN, yylsp[0].first_line);
2041 /* left = NULL -- no label */
2042 node_link_right(yyval.node, yyvsp[0].node);
2043 ;}
2044 break;
2045
2046 case 78:
2047 #line 577 "src\\sswf\\sswf_grammar.y"
2048 {
2049 struct node_t *for_obj, *var, *result, *block;
2050
2051 block = node_alloc(NODE_TYPE_OBJECT, NODE_SUBTYPE_BLOCK, yylsp[-13].first_line);
2052 /* node_link_left() -- no name/label */
2053 node_link_right(block, yyvsp[-2].node);
2054
2055 var = node_alloc(NODE_TYPE_OBJECT, NODE_SUBTYPE_VARIABLE, yylsp[-13].first_line);
2056 result = node_alloc(NODE_TYPE_INTEGER, NODE_SUBTYPE_UNKNOWN, yylsp[-13].first_line);
2057 node_link_left(var, yyvsp[-11].node);
2058 node_link_right(var, result); /* the result of different expr's */
2059 node_link_object(var);
2060
2061 node_link_tail(var, yyvsp[-9].node);
2062 node_link_tail(var, yyvsp[-7].node);
2063 node_link_tail(var, yyvsp[-5].node);
2064 node_link_tail(var, block);
2065
2066 for_obj = node_alloc(NODE_TYPE_OBJECT, NODE_SUBTYPE_FOR, yylsp[-13].first_line);
2067 /*node_link_left(for_obj, ...) -- no name for a loop - should we use the variable name? */
2068 node_link_right(for_obj, var);
2069 /*node_link_object(for_obj); -- this makes this software crash and it's not necessary (no name!) */
2070
2071 yyval.node = node_alloc(NODE_TYPE_DEFINITION, NODE_SUBTYPE_UNKNOWN, yylsp[-13].first_line);
2072 /* left = NULL -- no label */
2073 node_link_right(yyval.node, for_obj);
2074 ;}
2075 break;
2076
2077
2078 }
2079
2080 /* Line 991 of yacc.c. */
2081 #line 2081 "tmp\\object\\src\\sswf\\sswf_grammar.c"
2082
2083 yyvsp -= yylen;
2084 yyssp -= yylen;
2085 yylsp -= yylen;
2086
2087 YY_STACK_PRINT (yyss, yyssp);
2088
2089 *++yyvsp = yyval;
2090 *++yylsp = yyloc;
2091
2092 /* Now `shift' the result of the reduction. Determine what state
2093 that goes to, based on the state we popped back to and the rule
2094 number reduced by. */
2095
2096 yyn = yyr1[yyn];
2097
2098 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2099 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2100 yystate = yytable[yystate];
2101 else
2102 yystate = yydefgoto[yyn - YYNTOKENS];
2103
2104 goto yynewstate;
2105
2106
2107 /*------------------------------------.
2108 | yyerrlab -- here on detecting error |
2109 `------------------------------------*/
2110 yyerrlab:
2111 /* If not already recovering from an error, report this error. */
2112 if (!yyerrstatus)
2113 {
2114 ++yynerrs;
2115 #if YYERROR_VERBOSE
2116 yyn = yypact[yystate];
2117
2118 if (YYPACT_NINF < yyn && yyn < YYLAST)
2119 {
2120 YYSIZE_T yysize = 0;
2121 int yytype = YYTRANSLATE (yychar);
2122 char *yymsg;
2123 int yyx, yycount;
2124
2125 yycount = 0;
2126 /* Start YYX at -YYN if negative to avoid negative indexes in
2127 YYCHECK. */
2128 for (yyx = yyn < 0 ? -yyn : 0;
2129 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
2130 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2131 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
2132 yysize += yystrlen ("syntax error, unexpected ") + 1;
2133 yysize += yystrlen (yytname[yytype]);
2134 yymsg = (char *) YYSTACK_ALLOC (yysize);
2135 if (yymsg != 0)
2136 {
2137 char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
2138 yyp = yystpcpy (yyp, yytname[yytype]);
2139
2140 if (yycount < 5)
2141 {
2142 yycount = 0;
2143 for (yyx = yyn < 0 ? -yyn : 0;
2144 yyx < (int) (sizeof (yytname) / sizeof (char *));
2145 yyx++)
2146 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2147 {
2148 const char *yyq = ! yycount ? ", expecting " : " or ";
2149 yyp = yystpcpy (yyp, yyq);
2150 yyp = yystpcpy (yyp, yytname[yyx]);
2151 yycount++;
2152 }
2153 }
2154 yyerror (yymsg);
2155 YYSTACK_FREE (yymsg);
2156 }
2157 else
2158 yyerror ("syntax error; also virtual memory exhausted");
2159 }
2160 else
2161 #endif /* YYERROR_VERBOSE */
2162 yyerror ("syntax error");
2163 }
2164
2165 yylerrsp = yylsp;
2166
2167 if (yyerrstatus == 3)
2168 {
2169 /* If just tried and failed to reuse lookahead token after an
2170 error, discard it. */
2171
2172 /* Return failure if at end of input. */
2173 if (yychar == YYEOF)
2174 {
2175 /* Pop the error token. */
2176 YYPOPSTACK;
2177 /* Pop the rest of the stack. */
2178 while (yyss < yyssp)
2179 {
2180 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2181 yydestruct (yystos[*yyssp], yyvsp, yylsp);
2182 YYPOPSTACK;
2183 }
2184 YYABORT;
2185 }
2186
2187 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
2188 yydestruct (yytoken, &yylval, &yylloc);
2189 yychar = YYEMPTY;
2190 *++yylerrsp = yylloc;
2191 }
2192
2193 /* Else will try to reuse lookahead token after shifting the error
2194 token. */
2195 goto yyerrlab2;
2196
2197
2198 /*----------------------------------------------------.
2199 | yyerrlab1 -- error raised explicitly by an action. |
2200 `----------------------------------------------------*/
2201 yyerrlab1:
2202
2203 /* Suppress GCC warning that yyerrlab1 is unused when no action
2204 invokes YYERROR. */
2205 #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
2206 __attribute__ ((__unused__))
2207 #endif
2208
2209 yylerrsp = yylsp;
2210 *++yylerrsp = yyloc;
2211 goto yyerrlab2;
2212
2213
2214 /*---------------------------------------------------------------.
2215 | yyerrlab2 -- pop states until the error token can be shifted. |
2216 `---------------------------------------------------------------*/
2217 yyerrlab2:
2218 yyerrstatus = 3; /* Each real token shifted decrements this. */
2219
2220 for (;;)
2221 {
2222 yyn = yypact[yystate];
2223 if (yyn != YYPACT_NINF)
2224 {
2225 yyn += YYTERROR;
2226 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2227 {
2228 yyn = yytable[yyn];
2229 if (0 < yyn)
2230 break;
2231 }
2232 }
2233
2234 /* Pop the current state because it cannot handle the error token. */
2235 if (yyssp == yyss)
2236 YYABORT;
2237
2238 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2239 yydestruct (yystos[yystate], yyvsp, yylsp);
2240 yyvsp--;
2241 yystate = *--yyssp;
2242 yylsp--;
2243 YY_STACK_PRINT (yyss, yyssp);
2244 }
2245
2246 if (yyn == YYFINAL)
2247 YYACCEPT;
2248
2249 YYDPRINTF ((stderr, "Shifting error token, "));
2250
2251 *++yyvsp = yylval;
2252 YYLLOC_DEFAULT (yyloc, yylsp, (yylerrsp - yylsp));
2253 *++yylsp = yyloc;
2254
2255 yystate = yyn;
2256 goto yynewstate;
2257
2258
2259 /*-------------------------------------.
2260 | yyacceptlab -- YYACCEPT comes here. |
2261 `-------------------------------------*/
2262 yyacceptlab:
2263 yyresult = 0;
2264 goto yyreturn;
2265
2266 /*-----------------------------------.
2267 | yyabortlab -- YYABORT comes here. |
2268 `-----------------------------------*/
2269 yyabortlab:
2270 yyresult = 1;
2271 goto yyreturn;
2272
2273 #ifndef yyoverflow
2274 /*----------------------------------------------.
2275 | yyoverflowlab -- parser overflow comes here. |
2276 `----------------------------------------------*/
2277 yyoverflowlab:
2278 yyerror ("parser stack overflow");
2279 yyresult = 2;
2280 /* Fall through. */
2281 #endif
2282
2283 yyreturn:
2284 #ifndef yyoverflow
2285 if (yyss != yyssa)
2286 YYSTACK_FREE (yyss);
2287 #endif
2288 return yyresult;
2289 }
2290
2291
2292 #line 607 "src\\sswf\\sswf_grammar.y"
2293
2294
2295
yyerror(const char * msg)2296 void yyerror(const char *msg)
2297 {
2298 /* TODO: enhance this message! */
2299 printf("YACC ERROR at line #%d in file \"%s\": %s.\n", yylloc.first_line, lex_filename, msg);
2300 }
2301
2302
2303
2304
2305
2306