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