seed random from ruby interface
[swftools.git] / lib / action / swf4compiler.tab.c
1
2 /* A Bison parser, made by GNU Bison 2.4.  */
3
4 /* Skeleton implementation for Bison's Yacc-like parsers in C
5    
6       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7    Free Software Foundation, Inc.
8    
9    This program is free software: you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation, either version 3 of the License, or
12    (at your option) any later version.
13    
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18    
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21
22 /* As a special exception, you may create a larger work that contains
23    part or all of the Bison parser skeleton and distribute that work
24    under terms of your choice, so long as that work isn't itself a
25    parser generator using the skeleton or a modified version thereof
26    as a parser skeleton.  Alternatively, if you modify or redistribute
27    the parser skeleton itself, you may (at your option) remove this
28    special exception, which will cause the skeleton and the resulting
29    Bison output files to be licensed under the GNU General Public
30    License without this special exception.
31    
32    This special exception was added by the Free Software Foundation in
33    version 2.2 of Bison.  */
34
35 /* C LALR(1) parser skeleton written by Richard Stallman, by
36    simplifying the original so-called "semantic" parser.  */
37
38 /* All symbols defined below should begin with yy or YY, to avoid
39    infringing on user name space.  This should be done even for local
40    variables, as they might otherwise be expanded by user macros.
41    There are some unavoidable exceptions within include files to
42    define necessary library symbols; they are noted "INFRINGES ON
43    USER NAME SPACE" below.  */
44
45 /* Identify Bison output.  */
46 #define YYBISON 1
47
48 /* Bison version.  */
49 #define YYBISON_VERSION "2.4"
50
51 /* Skeleton name.  */
52 #define YYSKELETON_NAME "yacc.c"
53
54 /* Pure parsers.  */
55 #define YYPURE 0
56
57 /* Push parsers.  */
58 #define YYPUSH 0
59
60 /* Pull parsers.  */
61 #define YYPULL 1
62
63 /* Using locations.  */
64 #define YYLSP_NEEDED 0
65
66 /* Substitute the variable and function names.  */
67 #define yyparse         swf4parse
68 #define yylex           swf4lex
69 #define yyerror         swf4error
70 #define yylval          swf4lval
71 #define yychar          swf4char
72 #define yydebug         swf4debug
73 #define yynerrs         swf4nerrs
74
75
76 /* Copy the first part of user declarations.  */
77
78 /* Line 189 of yacc.c  */
79 #line 5 "swf4compiler.y"
80
81
82 #include <time.h>
83 #include <string.h>
84 #include <stdlib.h>
85 #include "compile.h"
86 #include "action.h"
87
88 #define YYPARSE_PARAM buffer
89
90
91
92 /* Line 189 of yacc.c  */
93 #line 94 "swf4compiler.tab.c"
94
95 /* Enabling traces.  */
96 #ifndef YYDEBUG
97 # define YYDEBUG 0
98 #endif
99
100 /* Enabling verbose error messages.  */
101 #ifdef YYERROR_VERBOSE
102 # undef YYERROR_VERBOSE
103 # define YYERROR_VERBOSE 1
104 #else
105 # define YYERROR_VERBOSE 0
106 #endif
107
108 /* Enabling the token table.  */
109 #ifndef YYTOKEN_TABLE
110 # define YYTOKEN_TABLE 0
111 #endif
112
113
114 /* Tokens.  */
115 #ifndef YYTOKENTYPE
116 # define YYTOKENTYPE
117    /* Put the tokens into the symbol table, so that GDB and other debuggers
118       know about them.  */
119    enum yytokentype {
120      BREAK = 258,
121      FOR = 259,
122      CONTINUE = 260,
123      IF = 261,
124      ELSE = 262,
125      DO = 263,
126      WHILE = 264,
127      THIS = 265,
128      EVAL = 266,
129      TIME = 267,
130      RANDOM = 268,
131      LENGTH = 269,
132      INT = 270,
133      CONCAT = 271,
134      DUPLICATECLIP = 272,
135      REMOVECLIP = 273,
136      TRACE = 274,
137      STARTDRAG = 275,
138      STOPDRAG = 276,
139      ORD = 277,
140      CHR = 278,
141      CALLFRAME = 279,
142      GETURL = 280,
143      GETURL1 = 281,
144      LOADMOVIE = 282,
145      LOADVARIABLES = 283,
146      POSTURL = 284,
147      SUBSTR = 285,
148      GETPROPERTY = 286,
149      NEXTFRAME = 287,
150      PREVFRAME = 288,
151      PLAY = 289,
152      STOP = 290,
153      TOGGLEQUALITY = 291,
154      STOPSOUNDS = 292,
155      GOTOFRAME = 293,
156      GOTOANDPLAY = 294,
157      FRAMELOADED = 295,
158      SETTARGET = 296,
159      TELLTARGET = 297,
160      STRING = 298,
161      NUMBER = 299,
162      IDENTIFIER = 300,
163      PATH = 301,
164      GETURL_METHOD = 302,
165      EQ = 303,
166      LE = 304,
167      GE = 305,
168      NE = 306,
169      LAN = 307,
170      LOR = 308,
171      INC = 309,
172      DEC = 310,
173      IEQ = 311,
174      DEQ = 312,
175      MEQ = 313,
176      SEQ = 314,
177      STREQ = 315,
178      STRNE = 316,
179      STRCMP = 317,
180      PARENT = 318,
181      END = 319,
182      UMINUS = 320,
183      POSTFIX = 321,
184      NEGATE = 322
185    };
186 #endif
187
188
189
190 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
191 typedef union YYSTYPE
192 {
193
194 /* Line 214 of yacc.c  */
195 #line 17 "swf4compiler.y"
196
197   Buffer action;
198   char *str;
199   SWFActionFunction function;
200   SWFGetUrl2Method getURLMethod;
201
202
203
204 /* Line 214 of yacc.c  */
205 #line 206 "swf4compiler.tab.c"
206 } YYSTYPE;
207 # define YYSTYPE_IS_TRIVIAL 1
208 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
209 # define YYSTYPE_IS_DECLARED 1
210 #endif
211
212
213 /* Copy the second part of user declarations.  */
214
215
216 /* Line 264 of yacc.c  */
217 #line 218 "swf4compiler.tab.c"
218
219 #ifdef short
220 # undef short
221 #endif
222
223 #ifdef YYTYPE_UINT8
224 typedef YYTYPE_UINT8 yytype_uint8;
225 #else
226 typedef unsigned char yytype_uint8;
227 #endif
228
229 #ifdef YYTYPE_INT8
230 typedef YYTYPE_INT8 yytype_int8;
231 #elif (defined __STDC__ || defined __C99__FUNC__ \
232      || defined __cplusplus || defined _MSC_VER)
233 typedef signed char yytype_int8;
234 #else
235 typedef short int yytype_int8;
236 #endif
237
238 #ifdef YYTYPE_UINT16
239 typedef YYTYPE_UINT16 yytype_uint16;
240 #else
241 typedef unsigned short int yytype_uint16;
242 #endif
243
244 #ifdef YYTYPE_INT16
245 typedef YYTYPE_INT16 yytype_int16;
246 #else
247 typedef short int yytype_int16;
248 #endif
249
250 #ifndef YYSIZE_T
251 # ifdef __SIZE_TYPE__
252 #  define YYSIZE_T __SIZE_TYPE__
253 # elif defined size_t
254 #  define YYSIZE_T size_t
255 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
256      || defined __cplusplus || defined _MSC_VER)
257 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
258 #  define YYSIZE_T size_t
259 # else
260 #  define YYSIZE_T unsigned int
261 # endif
262 #endif
263
264 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
265
266 #ifndef YY_
267 # if YYENABLE_NLS
268 #  if ENABLE_NLS
269 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
270 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
271 #  endif
272 # endif
273 # ifndef YY_
274 #  define YY_(msgid) msgid
275 # endif
276 #endif
277
278 /* Suppress unused-variable warnings by "using" E.  */
279 #if ! defined lint || defined __GNUC__
280 # define YYUSE(e) ((void) (e))
281 #else
282 # define YYUSE(e) /* empty */
283 #endif
284
285 /* Identity function, used to suppress warnings about constant conditions.  */
286 #ifndef lint
287 # define YYID(n) (n)
288 #else
289 #if (defined __STDC__ || defined __C99__FUNC__ \
290      || defined __cplusplus || defined _MSC_VER)
291 static int
292 YYID (int yyi)
293 #else
294 static int
295 YYID (yyi)
296     int yyi;
297 #endif
298 {
299   return yyi;
300 }
301 #endif
302
303 #if ! defined yyoverflow || YYERROR_VERBOSE
304
305 /* The parser invokes alloca or malloc; define the necessary symbols.  */
306
307 # ifdef YYSTACK_USE_ALLOCA
308 #  if YYSTACK_USE_ALLOCA
309 #   ifdef __GNUC__
310 #    define YYSTACK_ALLOC __builtin_alloca
311 #   elif defined __BUILTIN_VA_ARG_INCR
312 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
313 #   elif defined _AIX
314 #    define YYSTACK_ALLOC __alloca
315 #   elif defined _MSC_VER
316 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
317 #    define alloca _alloca
318 #   else
319 #    define YYSTACK_ALLOC alloca
320 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
321      || defined __cplusplus || defined _MSC_VER)
322 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
323 #     ifndef _STDLIB_H
324 #      define _STDLIB_H 1
325 #     endif
326 #    endif
327 #   endif
328 #  endif
329 # endif
330
331 # ifdef YYSTACK_ALLOC
332    /* Pacify GCC's `empty if-body' warning.  */
333 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
334 #  ifndef YYSTACK_ALLOC_MAXIMUM
335     /* The OS might guarantee only one guard page at the bottom of the stack,
336        and a page size can be as small as 4096 bytes.  So we cannot safely
337        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
338        to allow for a few compiler-allocated temporary stack slots.  */
339 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
340 #  endif
341 # else
342 #  define YYSTACK_ALLOC YYMALLOC
343 #  define YYSTACK_FREE YYFREE
344 #  ifndef YYSTACK_ALLOC_MAXIMUM
345 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
346 #  endif
347 #  if (defined __cplusplus && ! defined _STDLIB_H \
348        && ! ((defined YYMALLOC || defined malloc) \
349              && (defined YYFREE || defined free)))
350 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
351 #   ifndef _STDLIB_H
352 #    define _STDLIB_H 1
353 #   endif
354 #  endif
355 #  ifndef YYMALLOC
356 #   define YYMALLOC malloc
357 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
358      || defined __cplusplus || defined _MSC_VER)
359 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
360 #   endif
361 #  endif
362 #  ifndef YYFREE
363 #   define YYFREE free
364 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
365      || defined __cplusplus || defined _MSC_VER)
366 void free (void *); /* INFRINGES ON USER NAME SPACE */
367 #   endif
368 #  endif
369 # endif
370 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
371
372
373 #if (! defined yyoverflow \
374      && (! defined __cplusplus \
375          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
376
377 /* A type that is properly aligned for any stack member.  */
378 union yyalloc
379 {
380   yytype_int16 yyss_alloc;
381   YYSTYPE yyvs_alloc;
382 };
383
384 /* The size of the maximum gap between one aligned stack and the next.  */
385 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
386
387 /* The size of an array large to enough to hold all stacks, each with
388    N elements.  */
389 # define YYSTACK_BYTES(N) \
390      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
391       + YYSTACK_GAP_MAXIMUM)
392
393 /* Copy COUNT objects from FROM to TO.  The source and destination do
394    not overlap.  */
395 # ifndef YYCOPY
396 #  if defined __GNUC__ && 1 < __GNUC__
397 #   define YYCOPY(To, From, Count) \
398       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
399 #  else
400 #   define YYCOPY(To, From, Count)              \
401       do                                        \
402         {                                       \
403           YYSIZE_T yyi;                         \
404           for (yyi = 0; yyi < (Count); yyi++)   \
405             (To)[yyi] = (From)[yyi];            \
406         }                                       \
407       while (YYID (0))
408 #  endif
409 # endif
410
411 /* Relocate STACK from its old location to the new one.  The
412    local variables YYSIZE and YYSTACKSIZE give the old and new number of
413    elements in the stack, and YYPTR gives the new location of the
414    stack.  Advance YYPTR to a properly aligned location for the next
415    stack.  */
416 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
417     do                                                                  \
418       {                                                                 \
419         YYSIZE_T yynewbytes;                                            \
420         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
421         Stack = &yyptr->Stack_alloc;                                    \
422         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
423         yyptr += yynewbytes / sizeof (*yyptr);                          \
424       }                                                                 \
425     while (YYID (0))
426
427 #endif
428
429 /* YYFINAL -- State number of the termination state.  */
430 #define YYFINAL  108
431 /* YYLAST -- Last index in YYTABLE.  */
432 #define YYLAST   1341
433
434 /* YYNTOKENS -- Number of terminals.  */
435 #define YYNTOKENS  86
436 /* YYNNTS -- Number of nonterminals.  */
437 #define YYNNTS  22
438 /* YYNRULES -- Number of rules.  */
439 #define YYNRULES  137
440 /* YYNRULES -- Number of states.  */
441 #define YYNSTATES  369
442
443 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
444 #define YYUNDEFTOK  2
445 #define YYMAXUTOK   322
446
447 #define YYTRANSLATE(YYX)                                                \
448   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
449
450 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
451 static const yytype_uint8 yytranslate[] =
452 {
453        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
454        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
455        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
456        2,     2,     2,    76,     2,     2,     2,     2,    71,     2,
457       83,    84,    74,    72,    65,    73,    85,    75,     2,     2,
458        2,     2,     2,     2,     2,     2,     2,     2,    68,    82,
459       69,    66,    70,    67,     2,     2,     2,     2,     2,     2,
460        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
461        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
462        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
463        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
464        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
465        2,     2,     2,    80,     2,    81,     2,     2,     2,     2,
466        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
467        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
468        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
469        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
470        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
471        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
472        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
473        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
474        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
475        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
476        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
477        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
478        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
479        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
480       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
481       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
482       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
483       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
484       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
485       77,    78,    79
486 };
487
488 #if YYDEBUG
489 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
490    YYRHS.  */
491 static const yytype_uint16 yyprhs[] =
492 {
493        0,     0,     3,     5,     7,    10,    12,    15,    19,    21,
494       24,    26,    28,    30,    32,    34,    38,    39,    41,    44,
495       55,    64,    74,    85,    94,   104,   112,   118,   119,   121,
496      131,   137,   144,   154,   155,   157,   160,   163,   167,   172,
497      177,   182,   187,   194,   203,   210,   217,   226,   233,   242,
498      249,   264,   273,   277,   281,   285,   289,   293,   297,   302,
499      307,   312,   317,   322,   327,   333,   339,   344,   348,   353,
500      358,   363,   368,   373,   380,   389,   396,   399,   402,   404,
501      408,   410,   413,   415,   417,   419,   423,   428,   431,   436,
502      439,   442,   445,   449,   453,   457,   461,   465,   469,   473,
503      477,   481,   485,   489,   493,   497,   501,   505,   509,   513,
504      519,   521,   525,   527,   529,   531,   533,   535,   537,   539,
505      541,   545,   547,   549,   552,   555,   560,   565,   569,   573,
506      577,   581,   585,   591,   597,   603,   609,   615
507 };
508
509 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
510 static const yytype_int8 yyrhs[] =
511 {
512       87,     0,    -1,    88,    -1,    89,    -1,    88,    89,    -1,
513       90,    -1,    80,    81,    -1,    80,    92,    81,    -1,    82,
514       -1,   106,    82,    -1,    93,    -1,    95,    -1,    97,    -1,
515       98,    -1,   106,    -1,    91,    65,   106,    -1,    -1,    90,
516       -1,    92,    90,    -1,     6,    83,    40,    83,    44,    84,
517       84,    90,     7,    90,    -1,     6,    83,    40,    83,    44,
518       84,    84,    90,    -1,     6,    83,    76,    40,    83,    44,
519       84,    84,    90,    -1,     6,    83,    40,    83,   107,    84,
520       84,    90,     7,    90,    -1,     6,    83,    40,    83,   107,
521       84,    84,    90,    -1,     6,    83,    76,    40,    83,   107,
522       84,    84,    90,    -1,     6,    83,   107,    84,    90,     7,
523       90,    -1,     6,    83,   107,    84,    90,    -1,    -1,   107,
524       -1,     9,    83,    76,    40,    83,    44,    84,    84,    90,
525       -1,     9,    83,   107,    84,    90,    -1,     8,    90,     9,
526       83,   107,    84,    -1,     4,    83,    96,    82,    94,    82,
527       96,    84,    90,    -1,    -1,    91,    -1,     5,    82,    -1,
528        3,    82,    -1,    21,    83,    84,    -1,    24,    83,   103,
529       84,    -1,    24,    83,    43,    84,    -1,    18,    83,   107,
530       84,    -1,    19,    83,   107,    84,    -1,    25,    83,   107,
531       65,   107,    84,    -1,    25,    83,   107,    65,   107,    65,
532       47,    84,    -1,    26,    83,    43,    65,    43,    84,    -1,
533       27,    83,   107,    65,   107,    84,    -1,    27,    83,   107,
534       65,   107,    65,    47,    84,    -1,    28,    83,   107,    65,
535      107,    84,    -1,    28,    83,   107,    65,   107,    65,    47,
536       84,    -1,    20,    83,   107,    65,   107,    84,    -1,    20,
537       83,   107,    65,   107,    65,   107,    65,   107,    65,   107,
538       65,   107,    84,    -1,    17,    83,   107,    65,   107,    65,
539      107,    84,    -1,    32,    83,    84,    -1,    33,    83,    84,
540       -1,    34,    83,    84,    -1,    35,    83,    84,    -1,    36,
541       83,    84,    -1,    37,    83,    84,    -1,    38,    83,    44,
542       84,    -1,    38,    83,    43,    84,    -1,    38,    83,   107,
543       84,    -1,    39,    83,   107,    84,    -1,    41,    83,    43,
544       84,    -1,    41,    83,   107,    84,    -1,    42,    83,    43,
545       84,    90,    -1,    42,    83,   107,    84,    90,    -1,    11,
546       83,   107,    84,    -1,    12,    83,    84,    -1,    13,    83,
547      107,    84,    -1,    14,    83,   107,    84,    -1,    15,    83,
548      107,    84,    -1,    22,    83,   107,    84,    -1,    23,    83,
549      107,    84,    -1,    16,    83,   107,    65,   107,    84,    -1,
550       30,    83,   107,    65,   107,    65,   107,    84,    -1,    31,
551       83,   107,    65,    43,    84,    -1,   105,    54,    -1,   105,
552       55,    -1,   100,    -1,    83,   102,    84,    -1,    44,    -1,
553       73,    44,    -1,    43,    -1,   103,    -1,   104,    -1,   104,
554       85,    45,    -1,    54,   104,    85,    45,    -1,    54,   105,
555       -1,    55,   104,    85,    45,    -1,    55,   105,    -1,    73,
556      102,    -1,    76,   102,    -1,   105,    66,   102,    -1,   102,
557       74,   102,    -1,   102,    75,   102,    -1,   102,    72,   102,
558       -1,   102,    73,   102,    -1,   102,    71,   102,    -1,   102,
559       69,   102,    -1,   102,    70,   102,    -1,   102,    49,   102,
560       -1,   102,    50,   102,    -1,   102,    61,   102,    -1,   102,
561       60,   102,    -1,   102,    62,   102,    -1,   102,    48,   102,
562       -1,   102,    51,   102,    -1,   102,    52,   102,    -1,   102,
563       53,   102,    -1,   102,    67,   102,    68,   102,    -1,    45,
564       -1,   104,    68,    45,    -1,    10,    -1,    85,    -1,    75,
565       -1,    63,    -1,    45,    -1,    46,    -1,   103,    -1,    43,
566       -1,    83,   102,    84,    -1,   101,    -1,    99,    -1,    54,
567      105,    -1,    55,   105,    -1,    54,   104,    85,    45,    -1,
568       55,   104,    85,    45,    -1,   105,    66,   102,    -1,   105,
569       58,   102,    -1,   105,    57,   102,    -1,   105,    56,   102,
570       -1,   105,    59,   102,    -1,   104,    85,    45,    66,   102,
571       -1,   104,    85,    45,    58,   102,    -1,   104,    85,    45,
572       57,   102,    -1,   104,    85,    45,    56,   102,    -1,   104,
573       85,    45,    59,   102,    -1,   102,    -1
574 };
575
576 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
577 static const yytype_uint16 yyrline[] =
578 {
579        0,   144,   144,   150,   151,   156,   160,   161,   162,   163,
580      164,   165,   166,   167,   171,   172,   176,   177,   178,   185,
581      201,   217,   229,   243,   257,   267,   278,   288,   289,   313,
582      328,   340,   348,   370,   371,   375,   383,   391,   395,   402,
583      409,   413,   418,   425,   432,   441,   448,   455,   462,   470,
584      477,   489,   498,   502,   506,   510,   514,   518,   522,   529,
585      536,   542,   548,   555,   559,   573,   586,   590,   594,   598,
586      602,   606,   610,   614,   619,   625,   634,   645,   659,   661,
587      664,   669,   675,   680,   686,   691,   699,   714,   724,   739,
588      749,   754,   758,   764,   769,   774,   779,   784,   789,   794,
589      799,   805,   810,   815,   819,   823,   827,   832,   836,   840,
590      852,   854,   861,   864,   867,   870,   873,   876,   881,   886,
591      891,   895,   897,   899,   907,   915,   928,   941,   945,   952,
592      959,   966,   973,   982,   995,  1008,  1021,  1036
593 };
594 #endif
595
596 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
597 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
598    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
599 static const char *const yytname[] =
600 {
601   "$end", "error", "$undefined", "BREAK", "FOR", "CONTINUE", "IF", "ELSE",
602   "DO", "WHILE", "THIS", "EVAL", "TIME", "RANDOM", "LENGTH", "INT",
603   "CONCAT", "DUPLICATECLIP", "REMOVECLIP", "TRACE", "STARTDRAG",
604   "STOPDRAG", "ORD", "CHR", "CALLFRAME", "GETURL", "GETURL1", "LOADMOVIE",
605   "LOADVARIABLES", "POSTURL", "SUBSTR", "GETPROPERTY", "NEXTFRAME",
606   "PREVFRAME", "PLAY", "STOP", "TOGGLEQUALITY", "STOPSOUNDS", "GOTOFRAME",
607   "GOTOANDPLAY", "FRAMELOADED", "SETTARGET", "TELLTARGET", "STRING",
608   "NUMBER", "IDENTIFIER", "PATH", "GETURL_METHOD", "\"==\"", "\"<=\"",
609   "\">=\"", "\"!=\"", "\"&&\"", "\"||\"", "\"++\"", "\"--\"", "\"+=\"",
610   "\"/=\"", "\"*=\"", "\"-=\"", "\"===\"", "\"!==\"", "\"<=>\"", "\"..\"",
611   "\"end\"", "','", "'='", "'?'", "':'", "'<'", "'>'", "'&'", "'+'", "'-'",
612   "'*'", "'/'", "'!'", "UMINUS", "POSTFIX", "NEGATE", "'{'", "'}'", "';'",
613   "'('", "')'", "'.'", "$accept", "program", "elems", "elem", "stmt",
614   "assign_stmts", "statements", "if_stmt", "expr_opt", "iter_stmt",
615   "assign_stmts_opt", "cont_stmt", "break_stmt", "void_function_call",
616   "function_call", "pf_expr", "rhs_expr", "variable", "sprite", "lhs_expr",
617   "assign_stmt", "expr", 0
618 };
619 #endif
620
621 # ifdef YYPRINT
622 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
623    token YYLEX-NUM.  */
624 static const yytype_uint16 yytoknum[] =
625 {
626        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
627      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
628      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
629      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
630      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
631      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
632      315,   316,   317,   318,   319,    44,    61,    63,    58,    60,
633       62,    38,    43,    45,    42,    47,    33,   320,   321,   322,
634      123,   125,    59,    40,    41,    46
635 };
636 # endif
637
638 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
639 static const yytype_uint8 yyr1[] =
640 {
641        0,    86,    87,    88,    88,    89,    90,    90,    90,    90,
642       90,    90,    90,    90,    91,    91,    92,    92,    92,    93,
643       93,    93,    93,    93,    93,    93,    93,    94,    94,    95,
644       95,    95,    95,    96,    96,    97,    98,    99,    99,    99,
645       99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
646       99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
647       99,    99,    99,    99,    99,    99,   100,   100,   100,   100,
648      100,   100,   100,   100,   100,   100,   101,   101,   102,   102,
649      102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
650      102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
651      102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
652      103,   103,   104,   104,   104,   104,   104,   104,   105,   105,
653      105,   106,   106,   106,   106,   106,   106,   106,   106,   106,
654      106,   106,   106,   106,   106,   106,   106,   107
655 };
656
657 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
658 static const yytype_uint8 yyr2[] =
659 {
660        0,     2,     1,     1,     2,     1,     2,     3,     1,     2,
661        1,     1,     1,     1,     1,     3,     0,     1,     2,    10,
662        8,     9,    10,     8,     9,     7,     5,     0,     1,     9,
663        5,     6,     9,     0,     1,     2,     2,     3,     4,     4,
664        4,     4,     6,     8,     6,     6,     8,     6,     8,     6,
665       14,     8,     3,     3,     3,     3,     3,     3,     4,     4,
666        4,     4,     4,     4,     5,     5,     4,     3,     4,     4,
667        4,     4,     4,     6,     8,     6,     2,     2,     1,     3,
668        1,     2,     1,     1,     1,     3,     4,     2,     4,     2,
669        2,     2,     3,     3,     3,     3,     3,     3,     3,     3,
670        3,     3,     3,     3,     3,     3,     3,     3,     3,     5,
671        1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
672        3,     1,     1,     2,     2,     4,     4,     3,     3,     3,
673        3,     3,     5,     5,     5,     5,     5,     1
674 };
675
676 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
677    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
678    means the default is an error.  */
679 static const yytype_uint8 yydefact[] =
680 {
681        0,     0,     0,     0,     0,     0,     0,   112,     0,     0,
682        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
683        0,     0,     0,     0,     0,     0,     0,     0,   119,   110,
684      117,     0,     0,   115,   114,     0,     8,     0,   113,     0,
685        2,     3,     5,    10,    11,    12,    13,   122,   121,   118,
686        0,     0,     0,    36,    33,    35,     0,     0,     0,     0,
687        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
688        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
689      123,     0,   124,     6,    17,     0,     0,     0,     0,     0,
690        0,     0,     0,     0,     0,     0,    82,    80,     0,     0,
691        0,     0,     0,    78,     0,    83,    84,     0,     1,     4,
692        0,     0,    76,    77,     0,     0,     0,     0,     0,     9,
693       34,     0,    14,     0,     0,   137,     0,     0,     0,     0,
694        0,     0,     0,     0,    37,     0,     0,     0,     0,     0,
695        0,     0,    52,    53,    54,    55,    56,    57,    82,    80,
696        0,     0,    82,     0,    82,     0,     0,     0,     7,    18,
697        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
698        0,    87,     0,    89,    80,    90,    91,     0,     0,     0,
699        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
700        0,     0,     0,     0,     0,   120,     0,     0,   111,     0,
701      130,   129,   128,   131,   127,     0,    27,     0,     0,     0,
702        0,     0,     0,     0,    40,    41,     0,    39,    38,     0,
703        0,     0,     0,    59,    58,    60,    61,    62,    63,     0,
704        0,   125,   126,     0,    67,     0,     0,     0,     0,     0,
705        0,     0,     0,     0,     0,    79,   105,   100,   101,   106,
706      107,   108,   103,   102,   104,     0,    98,    99,    97,    95,
707       96,    93,    94,    85,    92,     0,     0,     0,     0,     0,
708       15,     0,    28,    80,     0,     0,    26,     0,     0,    30,
709        0,     0,     0,     0,     0,     0,    64,    65,    66,    68,
710       69,    70,     0,    71,    72,     0,     0,    86,    88,     0,
711      135,   134,   133,   136,   132,    33,     0,     0,    80,     0,
712        0,    31,     0,     0,     0,    49,     0,    42,    44,     0,
713       45,     0,    47,     0,     0,     0,   109,     0,     0,     0,
714        0,     0,    25,     0,     0,     0,     0,     0,     0,    73,
715        0,    75,     0,    20,    23,     0,     0,     0,    51,     0,
716       43,    46,    48,     0,    32,     0,     0,    21,    24,    29,
717        0,    74,    19,    22,     0,     0,     0,     0,    50
718 };
719
720 /* YYDEFGOTO[NTERM-NUM].  */
721 static const yytype_int16 yydefgoto[] =
722 {
723       -1,    39,    40,    41,    42,   120,    85,    43,   271,    44,
724      121,    45,    46,    47,   103,    48,   125,   105,   106,   107,
725       52,   126
726 };
727
728 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
729    STATE-NUM.  */
730 #define YYPACT_NINF -70
731 static const yytype_int16 yypact[] =
732 {
733      780,   -69,   -64,   -60,   -49,   780,   -28,   -70,   -22,   -14,
734       -2,     3,     4,    11,    13,    17,    19,    20,    23,    25,
735       26,    29,    30,    31,    33,    47,    54,    56,   -70,    16,
736      -70,    32,    32,   -70,   -70,   614,   -70,   422,   -70,    72,
737      780,   -70,   -70,   -70,   -70,   -70,   -70,   -70,   -70,   -70,
738      -12,    65,     1,   -70,   108,   -70,   826,    80,   994,   422,
739      422,   422,   422,    64,     5,   422,   118,   422,   422,    81,
740       82,    86,    88,    89,   104,  1020,   422,  1076,  1102,   -11,
741      -70,    -9,   -70,   -70,   -70,   697,   106,   109,   117,   119,
742      120,   121,   123,   125,   127,   130,    98,   -70,    32,    32,
743     1158,   422,   422,   -70,   516,   135,    -6,   141,   -70,   -70,
744      145,   169,   -70,   -70,   422,   422,   422,   422,   422,   -70,
745      151,   137,   -70,   139,   882,   613,   136,   140,   938,   142,
746      160,   143,   144,   166,   -70,   148,   149,   170,   172,   174,
747      175,   178,   -70,   -70,   -70,   -70,   -70,   -70,   -48,   150,
748      161,   162,   -21,   163,   -13,   164,   199,   204,   -70,   -70,
749      422,   167,   422,   422,   422,   422,   422,   422,   422,   422,
750       -3,   -70,    -1,   -70,   -70,   -70,   -70,  1257,   422,   422,
751      422,   422,   422,   422,   422,   422,   422,   422,   422,   422,
752      422,   422,   422,   422,   422,   -70,   205,   422,   -70,   128,
753      613,   613,   613,   613,   613,   108,   422,  1184,   171,   780,
754      422,   173,   780,   422,   -70,   -70,   422,   -70,   -70,   422,
755      210,   422,   422,   -70,   -70,   -70,   -70,   -70,   -70,   780,
756      780,   -70,   -70,   176,   -70,   177,   179,   180,   190,   182,
757      188,   192,   193,   214,   228,   212,   -46,   124,   124,   -46,
758      696,   696,   -46,   -46,   124,   107,   124,   124,   -65,    18,
759       18,   -70,   -70,   -70,   613,   422,   422,   422,   422,   422,
760      -70,   197,   -70,   191,   196,  1240,   274,   206,   244,   -70,
761      224,   -63,   -51,   207,   -45,   -35,   -70,   -70,   -70,   -70,
762      -70,   -70,   422,   -70,   -70,   422,   249,   -70,   -70,   422,
763      613,   613,   613,   613,   613,   108,   211,   213,   215,   216,
764      780,   -70,   217,   422,   422,   -70,   246,   -70,   -70,   247,
765      -70,   251,   -70,   218,   231,   219,   613,   220,   780,   780,
766      222,   223,   -70,   225,   229,   243,   230,   234,   235,   -70,
767      422,   -70,   780,   305,   308,   780,   780,   780,   -70,   422,
768      -70,   -70,   -70,   236,   -70,   780,   780,   -70,   -70,   -70,
769      256,   -70,   -70,   -70,   422,   258,   422,   240,   -70
770 };
771
772 /* YYPGOTO[NTERM-NUM].  */
773 static const yytype_int16 yypgoto[] =
774 {
775      -70,   -70,   -70,   285,    53,   -70,   -70,   -70,   -70,   -70,
776       21,   -70,   -70,   -70,   -70,   -70,   346,     0,     6,    12,
777      -53,   209
778 };
779
780 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
781    positive, shift that token.  If negative, reduce the rule which
782    number is the opposite.  If zero, do what YYDEFACT says.
783    If YYTABLE_NINF, syntax error.  */
784 #define YYTABLE_NINF -121
785 static const yytype_int16 yytable[] =
786 {
787       49,   122,   314,   179,   180,    49,    50,   191,   192,   193,
788      194,    50,    51,    53,   316,     7,   186,    51,  -119,    54,
789      319,   315,    55,   188,   189,   190,   191,   192,   193,   194,
790      321,    49,    49,   317,    56,    49,   223,    79,    81,   320,
791       49,    50,     7,    80,    82,  -119,    50,    51,   135,   322,
792       29,    30,    51,  -119,    49,    58,   110,   110,    57,   110,
793       50,    59,   110,   227,   136,   110,    51,   110,    33,    60,
794      137,   229,   108,   111,   156,    28,   157,    29,    30,   196,
795       34,    61,   243,   119,   244,    49,    62,    63,    84,   127,
796       38,    50,   193,   194,    64,    33,    65,    51,    49,    49,
797       66,  -116,    67,    68,   170,   172,    69,    34,    70,    71,
798      171,   173,    72,    73,    74,    37,    75,    38,     7,   112,
799      113,   114,   115,   116,   117,     8,     9,    10,    11,    12,
800       76,   118,    13,    14,    15,    16,    17,    77,   159,    78,
801       18,    19,    20,    21,    22,    23,    24,    25,   134,    26,
802       27,    28,   270,    29,    30,   178,   179,   180,   181,   182,
803      183,   139,    31,    32,  -119,   142,   143,   184,   185,   186,
804      144,    33,   145,   146,   187,   299,   188,   189,   190,   191,
805      192,   193,   194,    34,   265,   266,   267,   268,   147,   160,
806      198,    37,   161,    38,   269,   190,   191,   192,   193,   194,
807      162,  -118,   163,   164,   165,    49,   166,   197,   167,    49,
808      168,    50,    49,   169,   199,    50,   205,    51,    50,   206,
809      209,    51,   207,   210,    51,   213,   212,   214,   215,    49,
810       49,   216,   217,   218,   224,    50,    50,   219,   110,   220,
811      221,    51,    51,   222,   231,   225,   226,   228,   230,   232,
812      263,   234,   122,   283,   275,   292,   278,   295,   296,   297,
813      288,   289,   276,   290,   291,   279,   293,   129,   130,   131,
814      132,   133,   294,   298,   138,   306,   140,   141,  -120,   305,
815      307,   310,   286,   287,   150,   151,   153,   155,   312,   313,
816      311,   318,   325,   336,   337,   328,   340,   329,   338,   330,
817      331,   333,   339,   341,   342,    49,   345,   346,   349,   347,
818       49,    50,   355,   348,   350,   356,    50,    51,   351,   352,
819      361,   364,    51,   366,   368,   109,   327,     0,    49,    49,
820        0,     0,     0,     0,    50,    50,     0,     0,     0,     0,
821       51,    51,    49,     0,     0,    49,    49,    49,    50,     0,
822        0,    50,    50,    50,    51,    49,    49,    51,    51,    51,
823        0,    50,    50,   332,     0,     0,     0,    51,    51,   233,
824        0,   235,   236,   237,   238,   239,   240,   241,   242,     0,
825        0,   343,   344,   104,     0,     0,     0,     0,     0,     0,
826        0,     0,     0,     0,     0,   354,     0,     0,   357,   358,
827      359,     0,     0,     0,     0,     0,     0,     0,   362,   363,
828        0,     0,     0,     0,     0,   272,   274,     0,     0,   277,
829        0,     0,   280,     0,     0,   281,     0,     0,   282,     0,
830      284,   285,     7,    86,    87,    88,    89,    90,    91,     0,
831        0,     0,     0,     0,    92,    93,   175,   176,   177,     0,
832        0,     0,    94,    95,     0,     0,     0,     0,     0,     0,
833      200,   201,   202,   203,   204,    96,    97,    29,    30,     0,
834      176,     0,     0,     0,   176,     0,    98,    99,     0,     0,
835        0,     0,     0,     0,   309,    33,     0,     0,     0,     0,
836        0,     0,     0,     0,     0,   100,     0,    34,   101,     0,
837        0,   323,     0,     0,   324,   102,     0,    38,     0,     0,
838        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
839        0,     0,   334,   335,   246,   247,   248,   249,   250,   251,
840      252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
841      262,     0,     0,   264,     0,     0,     0,     0,     0,   353,
842        0,     0,     0,     0,     0,     0,     0,     0,   360,     0,
843        0,     0,     0,     0,   178,   179,   180,   181,   182,   183,
844        0,     0,     0,   365,     0,   367,   184,   185,   186,     0,
845        0,     0,     0,   187,     0,   188,   189,   190,   191,   192,
846      193,   194,     0,     0,     0,     0,     0,     0,     0,     0,
847      195,     0,     0,     0,     0,     0,     0,     0,     0,     0,
848        0,   300,   301,   302,   303,   304,     0,     1,     2,     3,
849        4,     0,     5,     6,     7,     0,     0,     0,     0,     0,
850        0,     8,     9,    10,    11,    12,     0,     0,    13,    14,
851       15,    16,    17,     0,     0,   326,    18,    19,    20,    21,
852       22,    23,    24,    25,     0,    26,    27,    28,     0,    29,
853       30,   178,   179,   180,   181,   182,   183,     0,    31,    32,
854        0,     0,     0,   184,   185,   186,     0,    33,     0,     0,
855      187,     0,   188,   189,   190,   191,   192,   193,   194,    34,
856        0,     0,     0,     0,    35,    83,    36,    37,     0,    38,
857        1,     2,     3,     4,     0,     5,     6,     7,     0,     0,
858        0,     0,     0,     0,     8,     9,    10,    11,    12,     0,
859        0,    13,    14,    15,    16,    17,     0,     0,     0,    18,
860       19,    20,    21,    22,    23,    24,    25,     0,    26,    27,
861       28,     0,    29,    30,   178,   179,   180,   181,     0,     0,
862        0,    31,    32,     0,     0,     0,   184,   185,   186,     0,
863       33,     0,     0,     0,     0,   188,   189,   190,   191,   192,
864      193,   194,    34,     0,     0,     0,     0,    35,   158,    36,
865       37,     0,    38,     1,     2,     3,     4,     0,     5,     6,
866        7,     0,     0,     0,     0,     0,     0,     8,     9,    10,
867       11,    12,     0,     0,    13,    14,    15,    16,    17,     0,
868        0,     0,    18,    19,    20,    21,    22,    23,    24,    25,
869        0,    26,    27,    28,     0,    29,    30,     0,     0,     0,
870        0,     0,     0,     0,    31,    32,     7,    86,    87,    88,
871       89,    90,    91,    33,     0,     0,     0,     0,    92,    93,
872        0,     0,     0,     0,     0,    34,    94,    95,     0,     0,
873       35,     0,    36,    37,     0,    38,   123,     0,     0,    96,
874       97,    29,    30,     0,     0,     0,     0,     0,     0,     0,
875       98,    99,     0,     0,     0,     0,     0,     0,     0,    33,
876        0,     0,     7,    86,    87,    88,    89,    90,    91,   100,
877        0,    34,   124,     0,    92,    93,     0,     0,     0,   102,
878        0,    38,    94,    95,     0,     0,     0,     0,     0,     0,
879        0,     0,   208,     0,     0,    96,    97,    29,    30,     0,
880        0,     0,     0,     0,     0,     0,    98,    99,     0,     0,
881        0,     0,     0,     0,     0,    33,     0,     0,     7,    86,
882       87,    88,    89,    90,    91,   100,     0,    34,   101,     0,
883       92,    93,     0,     0,     0,   102,     0,    38,    94,    95,
884        0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
885        0,    96,    97,    29,    30,     0,     0,     0,     0,     0,
886        0,     0,    98,    99,     0,     0,     0,     0,     0,     0,
887        0,    33,     0,     0,     7,    86,    87,    88,    89,    90,
888       91,   100,     0,    34,   101,     0,    92,    93,     0,     0,
889        0,   102,     0,    38,    94,    95,     0,     0,     0,     0,
890        7,    86,    87,    88,    89,    90,    91,    96,    97,    29,
891       30,     0,    92,    93,     0,     0,     0,     0,    98,    99,
892       94,    95,     0,     0,     0,     0,     0,    33,     0,     0,
893        0,     0,     0,   148,   149,    29,    30,   100,     0,    34,
894      128,     0,     0,     0,    98,    99,     0,   102,     0,    38,
895        0,     0,     0,    33,     0,     0,     7,    86,    87,    88,
896       89,    90,    91,   100,     0,    34,   101,     0,    92,    93,
897        0,     0,     0,   102,     0,    38,    94,    95,     0,     0,
898        0,     0,     7,    86,    87,    88,    89,    90,    91,   152,
899       97,    29,    30,     0,    92,    93,     0,     0,     0,     0,
900       98,    99,    94,    95,     0,     0,     0,     0,     0,    33,
901        0,     0,     0,     0,     0,   154,    97,    29,    30,   100,
902        0,    34,   101,     0,     0,     0,    98,    99,     0,   102,
903        0,    38,     0,     0,     0,    33,     0,     0,     7,    86,
904       87,    88,    89,    90,    91,   100,     0,    34,   101,     0,
905       92,    93,     0,     0,     0,   102,     0,    38,    94,    95,
906        0,     0,     0,     0,     7,    86,    87,    88,    89,    90,
907       91,    96,   174,    29,    30,     0,    92,    93,     0,     0,
908        0,     0,    98,    99,    94,    95,     0,     0,     0,     0,
909        0,    33,     0,     0,     0,     0,     0,    96,   273,    29,
910       30,   100,     0,    34,   101,     0,     0,     0,    98,    99,
911        0,   102,     0,    38,     0,     0,     0,    33,     0,     0,
912        7,    86,    87,    88,    89,    90,    91,   100,     0,    34,
913      101,     0,    92,    93,     0,     0,     0,   102,     0,    38,
914       94,    95,     0,     0,     0,     0,     0,     0,     0,     0,
915        0,     0,     0,    96,   308,    29,    30,     0,     0,     0,
916        0,     0,     0,     0,    98,    99,     0,     0,     0,     0,
917        0,     0,     0,    33,     0,   178,   179,   180,   181,   182,
918      183,     0,     0,   100,     0,    34,   101,   184,   185,   186,
919        0,     0,     0,   102,   187,    38,   188,   189,   190,   191,
920      192,   193,   194,     0,     0,     0,     0,     0,     0,     0,
921        0,   245
922 };
923
924 static const yytype_int16 yycheck[] =
925 {
926        0,    54,    65,    49,    50,     5,     0,    72,    73,    74,
927       75,     5,     0,    82,    65,    10,    62,     5,    66,    83,
928       65,    84,    82,    69,    70,    71,    72,    73,    74,    75,
929       65,    31,    32,    84,    83,    35,    84,    31,    32,    84,
930       40,    35,    10,    31,    32,    66,    40,    35,    43,    84,
931       45,    46,    40,    66,    54,    83,    68,    68,     5,    68,
932       54,    83,    68,    84,    64,    68,    54,    68,    63,    83,
933       64,    84,     0,    85,    85,    43,    85,    45,    46,    85,
934       75,    83,    85,    82,    85,    85,    83,    83,    35,     9,
935       85,    85,    74,    75,    83,    63,    83,    85,    98,    99,
936       83,    85,    83,    83,    98,    99,    83,    75,    83,    83,
937       98,    99,    83,    83,    83,    83,    83,    85,    10,    54,
938       55,    56,    57,    58,    59,    17,    18,    19,    20,    21,
939       83,    66,    24,    25,    26,    27,    28,    83,    85,    83,
940       32,    33,    34,    35,    36,    37,    38,    39,    84,    41,
941       42,    43,   205,    45,    46,    48,    49,    50,    51,    52,
942       53,    43,    54,    55,    66,    84,    84,    60,    61,    62,
943       84,    63,    84,    84,    67,    68,    69,    70,    71,    72,
944       73,    74,    75,    75,    56,    57,    58,    59,    84,    83,
945       45,    83,    83,    85,    66,    71,    72,    73,    74,    75,
946       83,    66,    83,    83,    83,   205,    83,    66,    83,   209,
947       83,   205,   212,    83,    45,   209,    65,   205,   212,    82,
948       84,   209,    83,    83,   212,    65,    84,    84,    84,   229,
949      230,    65,    84,    84,    84,   229,   230,    65,    68,    65,
950       65,   229,   230,    65,    45,    84,    84,    84,    84,    45,
951       45,    84,   305,    43,    83,    65,    83,    65,    65,    45,
952       84,    84,   209,    84,    84,   212,    84,    58,    59,    60,
953       61,    62,    84,    45,    65,    84,    67,    68,    66,    82,
954       84,     7,   229,   230,    75,    76,    77,    78,    44,    65,
955       84,    84,    43,    47,    47,    84,    65,    84,    47,    84,
956       84,    84,    84,    84,    84,   305,    84,    84,    65,    84,
957      310,   305,     7,    84,    84,     7,   310,   305,    84,    84,
958       84,    65,   310,    65,    84,    40,   305,    -1,   328,   329,
959       -1,    -1,    -1,    -1,   328,   329,    -1,    -1,    -1,    -1,
960      328,   329,   342,    -1,    -1,   345,   346,   347,   342,    -1,
961       -1,   345,   346,   347,   342,   355,   356,   345,   346,   347,
962       -1,   355,   356,   310,    -1,    -1,    -1,   355,   356,   160,
963       -1,   162,   163,   164,   165,   166,   167,   168,   169,    -1,
964       -1,   328,   329,    37,    -1,    -1,    -1,    -1,    -1,    -1,
965       -1,    -1,    -1,    -1,    -1,   342,    -1,    -1,   345,   346,
966      347,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   355,   356,
967       -1,    -1,    -1,    -1,    -1,   206,   207,    -1,    -1,   210,
968       -1,    -1,   213,    -1,    -1,   216,    -1,    -1,   219,    -1,
969      221,   222,    10,    11,    12,    13,    14,    15,    16,    -1,
970       -1,    -1,    -1,    -1,    22,    23,   100,   101,   102,    -1,
971       -1,    -1,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
972      114,   115,   116,   117,   118,    43,    44,    45,    46,    -1,
973      124,    -1,    -1,    -1,   128,    -1,    54,    55,    -1,    -1,
974       -1,    -1,    -1,    -1,   275,    63,    -1,    -1,    -1,    -1,
975       -1,    -1,    -1,    -1,    -1,    73,    -1,    75,    76,    -1,
976       -1,   292,    -1,    -1,   295,    83,    -1,    85,    -1,    -1,
977       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
978       -1,    -1,   313,   314,   178,   179,   180,   181,   182,   183,
979      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
980      194,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,   340,
981       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   349,    -1,
982       -1,    -1,    -1,    -1,    48,    49,    50,    51,    52,    53,
983       -1,    -1,    -1,   364,    -1,   366,    60,    61,    62,    -1,
984       -1,    -1,    -1,    67,    -1,    69,    70,    71,    72,    73,
985       74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
986       84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
987       -1,   265,   266,   267,   268,   269,    -1,     3,     4,     5,
988        6,    -1,     8,     9,    10,    -1,    -1,    -1,    -1,    -1,
989       -1,    17,    18,    19,    20,    21,    -1,    -1,    24,    25,
990       26,    27,    28,    -1,    -1,   299,    32,    33,    34,    35,
991       36,    37,    38,    39,    -1,    41,    42,    43,    -1,    45,
992       46,    48,    49,    50,    51,    52,    53,    -1,    54,    55,
993       -1,    -1,    -1,    60,    61,    62,    -1,    63,    -1,    -1,
994       67,    -1,    69,    70,    71,    72,    73,    74,    75,    75,
995       -1,    -1,    -1,    -1,    80,    81,    82,    83,    -1,    85,
996        3,     4,     5,     6,    -1,     8,     9,    10,    -1,    -1,
997       -1,    -1,    -1,    -1,    17,    18,    19,    20,    21,    -1,
998       -1,    24,    25,    26,    27,    28,    -1,    -1,    -1,    32,
999       33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
1000       43,    -1,    45,    46,    48,    49,    50,    51,    -1,    -1,
1001       -1,    54,    55,    -1,    -1,    -1,    60,    61,    62,    -1,
1002       63,    -1,    -1,    -1,    -1,    69,    70,    71,    72,    73,
1003       74,    75,    75,    -1,    -1,    -1,    -1,    80,    81,    82,
1004       83,    -1,    85,     3,     4,     5,     6,    -1,     8,     9,
1005       10,    -1,    -1,    -1,    -1,    -1,    -1,    17,    18,    19,
1006       20,    21,    -1,    -1,    24,    25,    26,    27,    28,    -1,
1007       -1,    -1,    32,    33,    34,    35,    36,    37,    38,    39,
1008       -1,    41,    42,    43,    -1,    45,    46,    -1,    -1,    -1,
1009       -1,    -1,    -1,    -1,    54,    55,    10,    11,    12,    13,
1010       14,    15,    16,    63,    -1,    -1,    -1,    -1,    22,    23,
1011       -1,    -1,    -1,    -1,    -1,    75,    30,    31,    -1,    -1,
1012       80,    -1,    82,    83,    -1,    85,    40,    -1,    -1,    43,
1013       44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1014       54,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
1015       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    73,
1016       -1,    75,    76,    -1,    22,    23,    -1,    -1,    -1,    83,
1017       -1,    85,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
1018       -1,    -1,    40,    -1,    -1,    43,    44,    45,    46,    -1,
1019       -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
1020       -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,    10,    11,
1021       12,    13,    14,    15,    16,    73,    -1,    75,    76,    -1,
1022       22,    23,    -1,    -1,    -1,    83,    -1,    85,    30,    31,
1023       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    -1,
1024       -1,    43,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
1025       -1,    -1,    54,    55,    -1,    -1,    -1,    -1,    -1,    -1,
1026       -1,    63,    -1,    -1,    10,    11,    12,    13,    14,    15,
1027       16,    73,    -1,    75,    76,    -1,    22,    23,    -1,    -1,
1028       -1,    83,    -1,    85,    30,    31,    -1,    -1,    -1,    -1,
1029       10,    11,    12,    13,    14,    15,    16,    43,    44,    45,
1030       46,    -1,    22,    23,    -1,    -1,    -1,    -1,    54,    55,
1031       30,    31,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,
1032       -1,    -1,    -1,    43,    44,    45,    46,    73,    -1,    75,
1033       76,    -1,    -1,    -1,    54,    55,    -1,    83,    -1,    85,
1034       -1,    -1,    -1,    63,    -1,    -1,    10,    11,    12,    13,
1035       14,    15,    16,    73,    -1,    75,    76,    -1,    22,    23,
1036       -1,    -1,    -1,    83,    -1,    85,    30,    31,    -1,    -1,
1037       -1,    -1,    10,    11,    12,    13,    14,    15,    16,    43,
1038       44,    45,    46,    -1,    22,    23,    -1,    -1,    -1,    -1,
1039       54,    55,    30,    31,    -1,    -1,    -1,    -1,    -1,    63,
1040       -1,    -1,    -1,    -1,    -1,    43,    44,    45,    46,    73,
1041       -1,    75,    76,    -1,    -1,    -1,    54,    55,    -1,    83,
1042       -1,    85,    -1,    -1,    -1,    63,    -1,    -1,    10,    11,
1043       12,    13,    14,    15,    16,    73,    -1,    75,    76,    -1,
1044       22,    23,    -1,    -1,    -1,    83,    -1,    85,    30,    31,
1045       -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,    15,
1046       16,    43,    44,    45,    46,    -1,    22,    23,    -1,    -1,
1047       -1,    -1,    54,    55,    30,    31,    -1,    -1,    -1,    -1,
1048       -1,    63,    -1,    -1,    -1,    -1,    -1,    43,    44,    45,
1049       46,    73,    -1,    75,    76,    -1,    -1,    -1,    54,    55,
1050       -1,    83,    -1,    85,    -1,    -1,    -1,    63,    -1,    -1,
1051       10,    11,    12,    13,    14,    15,    16,    73,    -1,    75,
1052       76,    -1,    22,    23,    -1,    -1,    -1,    83,    -1,    85,
1053       30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1054       -1,    -1,    -1,    43,    44,    45,    46,    -1,    -1,    -1,
1055       -1,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    -1,
1056       -1,    -1,    -1,    63,    -1,    48,    49,    50,    51,    52,
1057       53,    -1,    -1,    73,    -1,    75,    76,    60,    61,    62,
1058       -1,    -1,    -1,    83,    67,    85,    69,    70,    71,    72,
1059       73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1060       -1,    84
1061 };
1062
1063 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1064    symbol of state STATE-NUM.  */
1065 static const yytype_uint8 yystos[] =
1066 {
1067        0,     3,     4,     5,     6,     8,     9,    10,    17,    18,
1068       19,    20,    21,    24,    25,    26,    27,    28,    32,    33,
1069       34,    35,    36,    37,    38,    39,    41,    42,    43,    45,
1070       46,    54,    55,    63,    75,    80,    82,    83,    85,    87,
1071       88,    89,    90,    93,    95,    97,    98,    99,   101,   103,
1072      104,   105,   106,    82,    83,    82,    83,    90,    83,    83,
1073       83,    83,    83,    83,    83,    83,    83,    83,    83,    83,
1074       83,    83,    83,    83,    83,    83,    83,    83,    83,   104,
1075      105,   104,   105,    81,    90,    92,    11,    12,    13,    14,
1076       15,    16,    22,    23,    30,    31,    43,    44,    54,    55,
1077       73,    76,    83,   100,   102,   103,   104,   105,     0,    89,
1078       68,    85,    54,    55,    56,    57,    58,    59,    66,    82,
1079       91,    96,   106,    40,    76,   102,   107,     9,    76,   107,
1080      107,   107,   107,   107,    84,    43,   103,   104,   107,    43,
1081      107,   107,    84,    84,    84,    84,    84,    84,    43,    44,
1082      107,   107,    43,   107,    43,   107,    85,    85,    81,    90,
1083       83,    83,    83,    83,    83,    83,    83,    83,    83,    83,
1084      104,   105,   104,   105,    44,   102,   102,   102,    48,    49,
1085       50,    51,    52,    53,    60,    61,    62,    67,    69,    70,
1086       71,    72,    73,    74,    75,    84,    85,    66,    45,    45,
1087      102,   102,   102,   102,   102,    65,    82,    83,    40,    84,
1088       83,    40,    84,    65,    84,    84,    65,    84,    84,    65,
1089       65,    65,    65,    84,    84,    84,    84,    84,    84,    84,
1090       84,    45,    45,   107,    84,   107,   107,   107,   107,   107,
1091      107,   107,   107,    85,    85,    84,   102,   102,   102,   102,
1092      102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
1093      102,   102,   102,    45,   102,    56,    57,    58,    59,    66,
1094      106,    94,   107,    44,   107,    83,    90,   107,    83,    90,
1095      107,   107,   107,    43,   107,   107,    90,    90,    84,    84,
1096       84,    84,    65,    84,    84,    65,    65,    45,    45,    68,
1097      102,   102,   102,   102,   102,    82,    84,    84,    44,   107,
1098        7,    84,    44,    65,    65,    84,    65,    84,    84,    65,
1099       84,    65,    84,   107,   107,    43,   102,    96,    84,    84,
1100       84,    84,    90,    84,   107,   107,    47,    47,    47,    84,
1101       65,    84,    84,    90,    90,    84,    84,    84,    84,    65,
1102       84,    84,    84,   107,    90,     7,     7,    90,    90,    90,
1103      107,    84,    90,    90,    65,   107,    65,   107,    84
1104 };
1105
1106 #define yyerrok         (yyerrstatus = 0)
1107 #define yyclearin       (yychar = YYEMPTY)
1108 #define YYEMPTY         (-2)
1109 #define YYEOF           0
1110
1111 #define YYACCEPT        goto yyacceptlab
1112 #define YYABORT         goto yyabortlab
1113 #define YYERROR         goto yyerrorlab
1114
1115
1116 /* Like YYERROR except do call yyerror.  This remains here temporarily
1117    to ease the transition to the new meaning of YYERROR, for GCC.
1118    Once GCC version 2 has supplanted version 1, this can go.  */
1119
1120 #define YYFAIL          goto yyerrlab
1121
1122 #define YYRECOVERING()  (!!yyerrstatus)
1123
1124 #define YYBACKUP(Token, Value)                                  \
1125 do                                                              \
1126   if (yychar == YYEMPTY && yylen == 1)                          \
1127     {                                                           \
1128       yychar = (Token);                                         \
1129       yylval = (Value);                                         \
1130       yytoken = YYTRANSLATE (yychar);                           \
1131       YYPOPSTACK (1);                                           \
1132       goto yybackup;                                            \
1133     }                                                           \
1134   else                                                          \
1135     {                                                           \
1136       yyerror (YY_("syntax error: cannot back up")); \
1137       YYERROR;                                                  \
1138     }                                                           \
1139 while (YYID (0))
1140
1141
1142 #define YYTERROR        1
1143 #define YYERRCODE       256
1144
1145
1146 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1147    If N is 0, then set CURRENT to the empty location which ends
1148    the previous symbol: RHS[0] (always defined).  */
1149
1150 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1151 #ifndef YYLLOC_DEFAULT
1152 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
1153     do                                                                  \
1154       if (YYID (N))                                                    \
1155         {                                                               \
1156           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
1157           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
1158           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
1159           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
1160         }                                                               \
1161       else                                                              \
1162         {                                                               \
1163           (Current).first_line   = (Current).last_line   =              \
1164             YYRHSLOC (Rhs, 0).last_line;                                \
1165           (Current).first_column = (Current).last_column =              \
1166             YYRHSLOC (Rhs, 0).last_column;                              \
1167         }                                                               \
1168     while (YYID (0))
1169 #endif
1170
1171
1172 /* YY_LOCATION_PRINT -- Print the location on the stream.
1173    This macro was not mandated originally: define only if we know
1174    we won't break user code: when these are the locations we know.  */
1175
1176 #ifndef YY_LOCATION_PRINT
1177 # if YYLTYPE_IS_TRIVIAL
1178 #  define YY_LOCATION_PRINT(File, Loc)                  \
1179      fprintf (File, "%d.%d-%d.%d",                      \
1180               (Loc).first_line, (Loc).first_column,     \
1181               (Loc).last_line,  (Loc).last_column)
1182 # else
1183 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1184 # endif
1185 #endif
1186
1187
1188 /* YYLEX -- calling `yylex' with the right arguments.  */
1189
1190 #ifdef YYLEX_PARAM
1191 # define YYLEX yylex (YYLEX_PARAM)
1192 #else
1193 # define YYLEX yylex ()
1194 #endif
1195
1196 /* Enable debugging if requested.  */
1197 #if YYDEBUG
1198
1199 # ifndef YYFPRINTF
1200 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1201 #  define YYFPRINTF fprintf
1202 # endif
1203
1204 # define YYDPRINTF(Args)                        \
1205 do {                                            \
1206   if (yydebug)                                  \
1207     YYFPRINTF Args;                             \
1208 } while (YYID (0))
1209
1210 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1211 do {                                                                      \
1212   if (yydebug)                                                            \
1213     {                                                                     \
1214       YYFPRINTF (stderr, "%s ", Title);                                   \
1215       yy_symbol_print (stderr,                                            \
1216                   Type, Value); \
1217       YYFPRINTF (stderr, "\n");                                           \
1218     }                                                                     \
1219 } while (YYID (0))
1220
1221
1222 /*--------------------------------.
1223 | Print this symbol on YYOUTPUT.  |
1224 `--------------------------------*/
1225
1226 /*ARGSUSED*/
1227 #if (defined __STDC__ || defined __C99__FUNC__ \
1228      || defined __cplusplus || defined _MSC_VER)
1229 static void
1230 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1231 #else
1232 static void
1233 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1234     FILE *yyoutput;
1235     int yytype;
1236     YYSTYPE const * const yyvaluep;
1237 #endif
1238 {
1239   if (!yyvaluep)
1240     return;
1241 # ifdef YYPRINT
1242   if (yytype < YYNTOKENS)
1243     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1244 # else
1245   YYUSE (yyoutput);
1246 # endif
1247   switch (yytype)
1248     {
1249       default:
1250         break;
1251     }
1252 }
1253
1254
1255 /*--------------------------------.
1256 | Print this symbol on YYOUTPUT.  |
1257 `--------------------------------*/
1258
1259 #if (defined __STDC__ || defined __C99__FUNC__ \
1260      || defined __cplusplus || defined _MSC_VER)
1261 static void
1262 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1263 #else
1264 static void
1265 yy_symbol_print (yyoutput, yytype, yyvaluep)
1266     FILE *yyoutput;
1267     int yytype;
1268     YYSTYPE const * const yyvaluep;
1269 #endif
1270 {
1271   if (yytype < YYNTOKENS)
1272     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1273   else
1274     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1275
1276   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1277   YYFPRINTF (yyoutput, ")");
1278 }
1279
1280 /*------------------------------------------------------------------.
1281 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1282 | TOP (included).                                                   |
1283 `------------------------------------------------------------------*/
1284
1285 #if (defined __STDC__ || defined __C99__FUNC__ \
1286      || defined __cplusplus || defined _MSC_VER)
1287 static void
1288 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1289 #else
1290 static void
1291 yy_stack_print (yybottom, yytop)
1292     yytype_int16 *yybottom;
1293     yytype_int16 *yytop;
1294 #endif
1295 {
1296   YYFPRINTF (stderr, "Stack now");
1297   for (; yybottom <= yytop; yybottom++)
1298     {
1299       int yybot = *yybottom;
1300       YYFPRINTF (stderr, " %d", yybot);
1301     }
1302   YYFPRINTF (stderr, "\n");
1303 }
1304
1305 # define YY_STACK_PRINT(Bottom, Top)                            \
1306 do {                                                            \
1307   if (yydebug)                                                  \
1308     yy_stack_print ((Bottom), (Top));                           \
1309 } while (YYID (0))
1310
1311
1312 /*------------------------------------------------.
1313 | Report that the YYRULE is going to be reduced.  |
1314 `------------------------------------------------*/
1315
1316 #if (defined __STDC__ || defined __C99__FUNC__ \
1317      || defined __cplusplus || defined _MSC_VER)
1318 static void
1319 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1320 #else
1321 static void
1322 yy_reduce_print (yyvsp, yyrule)
1323     YYSTYPE *yyvsp;
1324     int yyrule;
1325 #endif
1326 {
1327   int yynrhs = yyr2[yyrule];
1328   int yyi;
1329   unsigned long int yylno = yyrline[yyrule];
1330   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1331              yyrule - 1, yylno);
1332   /* The symbols being reduced.  */
1333   for (yyi = 0; yyi < yynrhs; yyi++)
1334     {
1335       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1336       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1337                        &(yyvsp[(yyi + 1) - (yynrhs)])
1338                                        );
1339       YYFPRINTF (stderr, "\n");
1340     }
1341 }
1342
1343 # define YY_REDUCE_PRINT(Rule)          \
1344 do {                                    \
1345   if (yydebug)                          \
1346     yy_reduce_print (yyvsp, Rule); \
1347 } while (YYID (0))
1348
1349 /* Nonzero means print parse trace.  It is left uninitialized so that
1350    multiple parsers can coexist.  */
1351 int yydebug;
1352 #else /* !YYDEBUG */
1353 # define YYDPRINTF(Args)
1354 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1355 # define YY_STACK_PRINT(Bottom, Top)
1356 # define YY_REDUCE_PRINT(Rule)
1357 #endif /* !YYDEBUG */
1358
1359
1360 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1361 #ifndef YYINITDEPTH
1362 # define YYINITDEPTH 200
1363 #endif
1364
1365 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1366    if the built-in stack extension method is used).
1367
1368    Do not make this value too large; the results are undefined if
1369    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1370    evaluated with infinite-precision integer arithmetic.  */
1371
1372 #ifndef YYMAXDEPTH
1373 # define YYMAXDEPTH 10000
1374 #endif
1375
1376 \f
1377
1378 #if YYERROR_VERBOSE
1379
1380 # ifndef yystrlen
1381 #  if defined __GLIBC__ && defined _STRING_H
1382 #   define yystrlen strlen
1383 #  else
1384 /* Return the length of YYSTR.  */
1385 #if (defined __STDC__ || defined __C99__FUNC__ \
1386      || defined __cplusplus || defined _MSC_VER)
1387 static YYSIZE_T
1388 yystrlen (const char *yystr)
1389 #else
1390 static YYSIZE_T
1391 yystrlen (yystr)
1392     const char *yystr;
1393 #endif
1394 {
1395   YYSIZE_T yylen;
1396   for (yylen = 0; yystr[yylen]; yylen++)
1397     continue;
1398   return yylen;
1399 }
1400 #  endif
1401 # endif
1402
1403 # ifndef yystpcpy
1404 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1405 #   define yystpcpy stpcpy
1406 #  else
1407 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1408    YYDEST.  */
1409 #if (defined __STDC__ || defined __C99__FUNC__ \
1410      || defined __cplusplus || defined _MSC_VER)
1411 static char *
1412 yystpcpy (char *yydest, const char *yysrc)
1413 #else
1414 static char *
1415 yystpcpy (yydest, yysrc)
1416     char *yydest;
1417     const char *yysrc;
1418 #endif
1419 {
1420   char *yyd = yydest;
1421   const char *yys = yysrc;
1422
1423   while ((*yyd++ = *yys++) != '\0')
1424     continue;
1425
1426   return yyd - 1;
1427 }
1428 #  endif
1429 # endif
1430
1431 # ifndef yytnamerr
1432 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1433    quotes and backslashes, so that it's suitable for yyerror.  The
1434    heuristic is that double-quoting is unnecessary unless the string
1435    contains an apostrophe, a comma, or backslash (other than
1436    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1437    null, do not copy; instead, return the length of what the result
1438    would have been.  */
1439 static YYSIZE_T
1440 yytnamerr (char *yyres, const char *yystr)
1441 {
1442   if (*yystr == '"')
1443     {
1444       YYSIZE_T yyn = 0;
1445       char const *yyp = yystr;
1446
1447       for (;;)
1448         switch (*++yyp)
1449           {
1450           case '\'':
1451           case ',':
1452             goto do_not_strip_quotes;
1453
1454           case '\\':
1455             if (*++yyp != '\\')
1456               goto do_not_strip_quotes;
1457             /* Fall through.  */
1458           default:
1459             if (yyres)
1460               yyres[yyn] = *yyp;
1461             yyn++;
1462             break;
1463
1464           case '"':
1465             if (yyres)
1466               yyres[yyn] = '\0';
1467             return yyn;
1468           }
1469     do_not_strip_quotes: ;
1470     }
1471
1472   if (! yyres)
1473     return yystrlen (yystr);
1474
1475   return yystpcpy (yyres, yystr) - yyres;
1476 }
1477 # endif
1478
1479 /* Copy into YYRESULT an error message about the unexpected token
1480    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
1481    including the terminating null byte.  If YYRESULT is null, do not
1482    copy anything; just return the number of bytes that would be
1483    copied.  As a special case, return 0 if an ordinary "syntax error"
1484    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
1485    size calculation.  */
1486 static YYSIZE_T
1487 yysyntax_error (char *yyresult, int yystate, int yychar)
1488 {
1489   int yyn = yypact[yystate];
1490
1491   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1492     return 0;
1493   else
1494     {
1495       int yytype = YYTRANSLATE (yychar);
1496       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1497       YYSIZE_T yysize = yysize0;
1498       YYSIZE_T yysize1;
1499       int yysize_overflow = 0;
1500       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1501       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1502       int yyx;
1503
1504 # if 0
1505       /* This is so xgettext sees the translatable formats that are
1506          constructed on the fly.  */
1507       YY_("syntax error, unexpected %s");
1508       YY_("syntax error, unexpected %s, expecting %s");
1509       YY_("syntax error, unexpected %s, expecting %s or %s");
1510       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1511       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1512 # endif
1513       char *yyfmt;
1514       char const *yyf;
1515       static char const yyunexpected[] = "syntax error, unexpected %s";
1516       static char const yyexpecting[] = ", expecting %s";
1517       static char const yyor[] = " or %s";
1518       char yyformat[sizeof yyunexpected
1519                     + sizeof yyexpecting - 1
1520                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1521                        * (sizeof yyor - 1))];
1522       char const *yyprefix = yyexpecting;
1523
1524       /* Start YYX at -YYN if negative to avoid negative indexes in
1525          YYCHECK.  */
1526       int yyxbegin = yyn < 0 ? -yyn : 0;
1527
1528       /* Stay within bounds of both yycheck and yytname.  */
1529       int yychecklim = YYLAST - yyn + 1;
1530       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1531       int yycount = 1;
1532
1533       yyarg[0] = yytname[yytype];
1534       yyfmt = yystpcpy (yyformat, yyunexpected);
1535
1536       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1537         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1538           {
1539             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1540               {
1541                 yycount = 1;
1542                 yysize = yysize0;
1543                 yyformat[sizeof yyunexpected - 1] = '\0';
1544                 break;
1545               }
1546             yyarg[yycount++] = yytname[yyx];
1547             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1548             yysize_overflow |= (yysize1 < yysize);
1549             yysize = yysize1;
1550             yyfmt = yystpcpy (yyfmt, yyprefix);
1551             yyprefix = yyor;
1552           }
1553
1554       yyf = YY_(yyformat);
1555       yysize1 = yysize + yystrlen (yyf);
1556       yysize_overflow |= (yysize1 < yysize);
1557       yysize = yysize1;
1558
1559       if (yysize_overflow)
1560         return YYSIZE_MAXIMUM;
1561
1562       if (yyresult)
1563         {
1564           /* Avoid sprintf, as that infringes on the user's name space.
1565              Don't have undefined behavior even if the translation
1566              produced a string with the wrong number of "%s"s.  */
1567           char *yyp = yyresult;
1568           int yyi = 0;
1569           while ((*yyp = *yyf) != '\0')
1570             {
1571               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1572                 {
1573                   yyp += yytnamerr (yyp, yyarg[yyi++]);
1574                   yyf += 2;
1575                 }
1576               else
1577                 {
1578                   yyp++;
1579                   yyf++;
1580                 }
1581             }
1582         }
1583       return yysize;
1584     }
1585 }
1586 #endif /* YYERROR_VERBOSE */
1587 \f
1588
1589 /*-----------------------------------------------.
1590 | Release the memory associated to this symbol.  |
1591 `-----------------------------------------------*/
1592
1593 /*ARGSUSED*/
1594 #if (defined __STDC__ || defined __C99__FUNC__ \
1595      || defined __cplusplus || defined _MSC_VER)
1596 static void
1597 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1598 #else
1599 static void
1600 yydestruct (yymsg, yytype, yyvaluep)
1601     const char *yymsg;
1602     int yytype;
1603     YYSTYPE *yyvaluep;
1604 #endif
1605 {
1606   YYUSE (yyvaluep);
1607
1608   if (!yymsg)
1609     yymsg = "Deleting";
1610   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1611
1612   switch (yytype)
1613     {
1614
1615       default:
1616         break;
1617     }
1618 }
1619
1620 /* Prevent warnings from -Wmissing-prototypes.  */
1621 #ifdef YYPARSE_PARAM
1622 #if defined __STDC__ || defined __cplusplus
1623 int yyparse (void *YYPARSE_PARAM);
1624 #else
1625 int yyparse ();
1626 #endif
1627 #else /* ! YYPARSE_PARAM */
1628 #if defined __STDC__ || defined __cplusplus
1629 int yyparse (void);
1630 #else
1631 int yyparse ();
1632 #endif
1633 #endif /* ! YYPARSE_PARAM */
1634
1635
1636 /* The lookahead symbol.  */
1637 int yychar;
1638
1639 /* The semantic value of the lookahead symbol.  */
1640 YYSTYPE yylval;
1641
1642 /* Number of syntax errors so far.  */
1643 int yynerrs;
1644
1645
1646
1647 /*-------------------------.
1648 | yyparse or yypush_parse.  |
1649 `-------------------------*/
1650
1651 #ifdef YYPARSE_PARAM
1652 #if (defined __STDC__ || defined __C99__FUNC__ \
1653      || defined __cplusplus || defined _MSC_VER)
1654 int
1655 yyparse (void *YYPARSE_PARAM)
1656 #else
1657 int
1658 yyparse (YYPARSE_PARAM)
1659     void *YYPARSE_PARAM;
1660 #endif
1661 #else /* ! YYPARSE_PARAM */
1662 #if (defined __STDC__ || defined __C99__FUNC__ \
1663      || defined __cplusplus || defined _MSC_VER)
1664 int
1665 yyparse (void)
1666 #else
1667 int
1668 yyparse ()
1669
1670 #endif
1671 #endif
1672 {
1673
1674
1675     int yystate;
1676     /* Number of tokens to shift before error messages enabled.  */
1677     int yyerrstatus;
1678
1679     /* The stacks and their tools:
1680        `yyss': related to states.
1681        `yyvs': related to semantic values.
1682
1683        Refer to the stacks thru separate pointers, to allow yyoverflow
1684        to reallocate them elsewhere.  */
1685
1686     /* The state stack.  */
1687     yytype_int16 yyssa[YYINITDEPTH];
1688     yytype_int16 *yyss;
1689     yytype_int16 *yyssp;
1690
1691     /* The semantic value stack.  */
1692     YYSTYPE yyvsa[YYINITDEPTH];
1693     YYSTYPE *yyvs;
1694     YYSTYPE *yyvsp;
1695
1696     YYSIZE_T yystacksize;
1697
1698   int yyn;
1699   int yyresult;
1700   /* Lookahead token as an internal (translated) token number.  */
1701   int yytoken;
1702   /* The variables used to return semantic value and location from the
1703      action routines.  */
1704   YYSTYPE yyval;
1705
1706 #if YYERROR_VERBOSE
1707   /* Buffer for error messages, and its allocated size.  */
1708   char yymsgbuf[128];
1709   char *yymsg = yymsgbuf;
1710   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1711 #endif
1712
1713 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1714
1715   /* The number of symbols on the RHS of the reduced rule.
1716      Keep to zero when no symbol should be popped.  */
1717   int yylen = 0;
1718
1719   yytoken = 0;
1720   yyss = yyssa;
1721   yyvs = yyvsa;
1722   yystacksize = YYINITDEPTH;
1723
1724   YYDPRINTF ((stderr, "Starting parse\n"));
1725
1726   yystate = 0;
1727   yyerrstatus = 0;
1728   yynerrs = 0;
1729   yychar = YYEMPTY; /* Cause a token to be read.  */
1730
1731   /* Initialize stack pointers.
1732      Waste one element of value and location stack
1733      so that they stay on the same level as the state stack.
1734      The wasted elements are never initialized.  */
1735   yyssp = yyss;
1736   yyvsp = yyvs;
1737
1738   goto yysetstate;
1739
1740 /*------------------------------------------------------------.
1741 | yynewstate -- Push a new state, which is found in yystate.  |
1742 `------------------------------------------------------------*/
1743  yynewstate:
1744   /* In all cases, when you get here, the value and location stacks
1745      have just been pushed.  So pushing a state here evens the stacks.  */
1746   yyssp++;
1747
1748  yysetstate:
1749   *yyssp = yystate;
1750
1751   if (yyss + yystacksize - 1 <= yyssp)
1752     {
1753       /* Get the current used size of the three stacks, in elements.  */
1754       YYSIZE_T yysize = yyssp - yyss + 1;
1755
1756 #ifdef yyoverflow
1757       {
1758         /* Give user a chance to reallocate the stack.  Use copies of
1759            these so that the &'s don't force the real ones into
1760            memory.  */
1761         YYSTYPE *yyvs1 = yyvs;
1762         yytype_int16 *yyss1 = yyss;
1763
1764         /* Each stack pointer address is followed by the size of the
1765            data in use in that stack, in bytes.  This used to be a
1766            conditional around just the two extra args, but that might
1767            be undefined if yyoverflow is a macro.  */
1768         yyoverflow (YY_("memory exhausted"),
1769                     &yyss1, yysize * sizeof (*yyssp),
1770                     &yyvs1, yysize * sizeof (*yyvsp),
1771                     &yystacksize);
1772
1773         yyss = yyss1;
1774         yyvs = yyvs1;
1775       }
1776 #else /* no yyoverflow */
1777 # ifndef YYSTACK_RELOCATE
1778       goto yyexhaustedlab;
1779 # else
1780       /* Extend the stack our own way.  */
1781       if (YYMAXDEPTH <= yystacksize)
1782         goto yyexhaustedlab;
1783       yystacksize *= 2;
1784       if (YYMAXDEPTH < yystacksize)
1785         yystacksize = YYMAXDEPTH;
1786
1787       {
1788         yytype_int16 *yyss1 = yyss;
1789         union yyalloc *yyptr =
1790           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1791         if (! yyptr)
1792           goto yyexhaustedlab;
1793         YYSTACK_RELOCATE (yyss_alloc, yyss);
1794         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1795 #  undef YYSTACK_RELOCATE
1796         if (yyss1 != yyssa)
1797           YYSTACK_FREE (yyss1);
1798       }
1799 # endif
1800 #endif /* no yyoverflow */
1801
1802       yyssp = yyss + yysize - 1;
1803       yyvsp = yyvs + yysize - 1;
1804
1805       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1806                   (unsigned long int) yystacksize));
1807
1808       if (yyss + yystacksize - 1 <= yyssp)
1809         YYABORT;
1810     }
1811
1812   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1813
1814   if (yystate == YYFINAL)
1815     YYACCEPT;
1816
1817   goto yybackup;
1818
1819 /*-----------.
1820 | yybackup.  |
1821 `-----------*/
1822 yybackup:
1823
1824   /* Do appropriate processing given the current state.  Read a
1825      lookahead token if we need one and don't already have one.  */
1826
1827   /* First try to decide what to do without reference to lookahead token.  */
1828   yyn = yypact[yystate];
1829   if (yyn == YYPACT_NINF)
1830     goto yydefault;
1831
1832   /* Not known => get a lookahead token if don't already have one.  */
1833
1834   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1835   if (yychar == YYEMPTY)
1836     {
1837       YYDPRINTF ((stderr, "Reading a token: "));
1838       yychar = YYLEX;
1839     }
1840
1841   if (yychar <= YYEOF)
1842     {
1843       yychar = yytoken = YYEOF;
1844       YYDPRINTF ((stderr, "Now at end of input.\n"));
1845     }
1846   else
1847     {
1848       yytoken = YYTRANSLATE (yychar);
1849       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1850     }
1851
1852   /* If the proper action on seeing token YYTOKEN is to reduce or to
1853      detect an error, take that action.  */
1854   yyn += yytoken;
1855   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1856     goto yydefault;
1857   yyn = yytable[yyn];
1858   if (yyn <= 0)
1859     {
1860       if (yyn == 0 || yyn == YYTABLE_NINF)
1861         goto yyerrlab;
1862       yyn = -yyn;
1863       goto yyreduce;
1864     }
1865
1866   /* Count tokens shifted since error; after three, turn off error
1867      status.  */
1868   if (yyerrstatus)
1869     yyerrstatus--;
1870
1871   /* Shift the lookahead token.  */
1872   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1873
1874   /* Discard the shifted token.  */
1875   yychar = YYEMPTY;
1876
1877   yystate = yyn;
1878   *++yyvsp = yylval;
1879
1880   goto yynewstate;
1881
1882
1883 /*-----------------------------------------------------------.
1884 | yydefault -- do the default action for the current state.  |
1885 `-----------------------------------------------------------*/
1886 yydefault:
1887   yyn = yydefact[yystate];
1888   if (yyn == 0)
1889     goto yyerrlab;
1890   goto yyreduce;
1891
1892
1893 /*-----------------------------.
1894 | yyreduce -- Do a reduction.  |
1895 `-----------------------------*/
1896 yyreduce:
1897   /* yyn is the number of a rule to reduce with.  */
1898   yylen = yyr2[yyn];
1899
1900   /* If YYLEN is nonzero, implement the default value of the action:
1901      `$$ = $1'.
1902
1903      Otherwise, the following line sets YYVAL to garbage.
1904      This behavior is undocumented and Bison
1905      users should not rely upon it.  Assigning to YYVAL
1906      unconditionally makes the parser a bit smaller, and it avoids a
1907      GCC warning that YYVAL may be used uninitialized.  */
1908   yyval = yyvsp[1-yylen];
1909
1910
1911   YY_REDUCE_PRINT (yyn);
1912   switch (yyn)
1913     {
1914         case 2:
1915
1916 /* Line 1455 of yacc.c  */
1917 #line 145 "swf4compiler.y"
1918     { *((Buffer *)buffer) = (yyvsp[(1) - (1)].action); ;}
1919     break;
1920
1921   case 4:
1922
1923 /* Line 1455 of yacc.c  */
1924 #line 152 "swf4compiler.y"
1925     { bufferConcat((yyvsp[(1) - (2)].action), (yyvsp[(2) - (2)].action)); ;}
1926     break;
1927
1928   case 6:
1929
1930 /* Line 1455 of yacc.c  */
1931 #line 160 "swf4compiler.y"
1932     { (yyval.action) = NULL; ;}
1933     break;
1934
1935   case 7:
1936
1937 /* Line 1455 of yacc.c  */
1938 #line 161 "swf4compiler.y"
1939     { (yyval.action) = (yyvsp[(2) - (3)].action); ;}
1940     break;
1941
1942   case 8:
1943
1944 /* Line 1455 of yacc.c  */
1945 #line 162 "swf4compiler.y"
1946     { (yyval.action) = NULL; ;}
1947     break;
1948
1949   case 15:
1950
1951 /* Line 1455 of yacc.c  */
1952 #line 172 "swf4compiler.y"
1953     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action)); ;}
1954     break;
1955
1956   case 16:
1957
1958 /* Line 1455 of yacc.c  */
1959 #line 176 "swf4compiler.y"
1960     { (yyval.action) = NULL; ;}
1961     break;
1962
1963   case 18:
1964
1965 /* Line 1455 of yacc.c  */
1966 #line 179 "swf4compiler.y"
1967     { bufferConcat((yyvsp[(1) - (2)].action), (yyvsp[(2) - (2)].action)); ;}
1968     break;
1969
1970   case 19:
1971
1972 /* Line 1455 of yacc.c  */
1973 #line 186 "swf4compiler.y"
1974     { (yyval.action) = newBuffer();
1975                   bufferWriteU8((yyval.action), SWFACTION_WAITFORFRAME);
1976                   bufferWriteS16((yyval.action), 3);
1977                   bufferWriteS16((yyval.action), atoi((yyvsp[(5) - (10)].str)));
1978                   free((yyvsp[(5) - (10)].str));
1979                   bufferWriteU8((yyval.action), 1);             /* if not loaded, jump to.. */
1980                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
1981                   bufferWriteS16((yyval.action), 2);
1982                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(10) - (10)].action))+5);
1983                   bufferConcat((yyval.action), (yyvsp[(10) - (10)].action));                      /* ..here */
1984                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
1985                   bufferWriteS16((yyval.action), 2);
1986                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(8) - (10)].action)));
1987                   bufferConcat((yyval.action), (yyvsp[(8) - (10)].action)); ;}
1988     break;
1989
1990   case 20:
1991
1992 /* Line 1455 of yacc.c  */
1993 #line 202 "swf4compiler.y"
1994     { (yyval.action) = newBuffer();
1995                   bufferWriteU8((yyval.action), SWFACTION_WAITFORFRAME);
1996                   bufferWriteS16((yyval.action), 3);
1997                   bufferWriteS16((yyval.action), atoi((yyvsp[(5) - (8)].str)));
1998                   free((yyvsp[(5) - (8)].str));
1999                   bufferWriteU8((yyval.action), 1);             /* if not loaded, jump to.. */
2000                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2001                   bufferWriteS16((yyval.action), 2);
2002                   bufferWriteS16((yyval.action), 5);
2003                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);          /* ..here */
2004                   bufferWriteS16((yyval.action), 2);
2005                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(8) - (8)].action)));        /* ..and then out */
2006                   bufferConcat((yyval.action), (yyvsp[(8) - (8)].action)); ;}
2007     break;
2008
2009   case 21:
2010
2011 /* Line 1455 of yacc.c  */
2012 #line 218 "swf4compiler.y"
2013     { (yyval.action) = newBuffer();
2014                   bufferWriteU8((yyval.action), SWFACTION_WAITFORFRAME);
2015                   bufferWriteS16((yyval.action), 3);
2016                   bufferWriteS16((yyval.action), atoi((yyvsp[(6) - (9)].str)));
2017                   free((yyvsp[(6) - (9)].str));
2018                   bufferWriteU8((yyval.action), 1);             /* if not loaded, jump to.. */
2019                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2020                   bufferWriteS16((yyval.action), 2);
2021                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(9) - (9)].action)));
2022                   bufferConcat((yyval.action), (yyvsp[(9) - (9)].action)); ;}
2023     break;
2024
2025   case 22:
2026
2027 /* Line 1455 of yacc.c  */
2028 #line 230 "swf4compiler.y"
2029     { (yyval.action) = (yyvsp[(5) - (10)].action);
2030                   bufferWriteU8((yyval.action), SWFACTION_WAITFORFRAMEEXPRESSION);
2031                   bufferWriteS16((yyval.action), 1);
2032                   bufferWriteU8((yyval.action), 1);             /* if not loaded, jump to.. */
2033                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2034                   bufferWriteS16((yyval.action), 2);
2035                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(10) - (10)].action))+5);
2036                   bufferConcat((yyval.action), (yyvsp[(10) - (10)].action));                      /* ..here */
2037                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2038                   bufferWriteS16((yyval.action), 2);
2039                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(8) - (10)].action)));
2040                   bufferConcat((yyval.action), (yyvsp[(8) - (10)].action)); ;}
2041     break;
2042
2043   case 23:
2044
2045 /* Line 1455 of yacc.c  */
2046 #line 244 "swf4compiler.y"
2047     { (yyval.action) = (yyvsp[(5) - (8)].action);
2048                   bufferWriteU8((yyval.action), SWFACTION_WAITFORFRAMEEXPRESSION);
2049                   bufferWriteS16((yyval.action), 1);
2050                   bufferWriteU8((yyval.action), 1);             /* if not loaded, jump to.. */
2051                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2052                   bufferWriteS16((yyval.action), 2);
2053                   bufferWriteS16((yyval.action), 5);
2054                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);          /* ..here */
2055                   bufferWriteS16((yyval.action), 2);
2056                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(8) - (8)].action)));        /* ..and then out */
2057                   bufferConcat((yyval.action), (yyvsp[(8) - (8)].action)); ;}
2058     break;
2059
2060   case 24:
2061
2062 /* Line 1455 of yacc.c  */
2063 #line 258 "swf4compiler.y"
2064     { (yyval.action) = (yyvsp[(6) - (9)].action);
2065                   bufferWriteU8((yyval.action), SWFACTION_WAITFORFRAMEEXPRESSION);
2066                   bufferWriteS16((yyval.action), 1);
2067                   bufferWriteU8((yyval.action), 1);             /* if not loaded, jump to.. */
2068                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2069                   bufferWriteS16((yyval.action), 2);
2070                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(9) - (9)].action)));
2071                   bufferConcat((yyval.action), (yyvsp[(9) - (9)].action)); ;}
2072     break;
2073
2074   case 25:
2075
2076 /* Line 1455 of yacc.c  */
2077 #line 268 "swf4compiler.y"
2078     { bufferWriteU8((yyvsp[(3) - (7)].action), SWFACTION_BRANCHIFTRUE);
2079                   bufferWriteS16((yyvsp[(3) - (7)].action), 2);
2080                   bufferWriteS16((yyvsp[(3) - (7)].action), bufferLength((yyvsp[(7) - (7)].action))+5);
2081                   bufferConcat((yyvsp[(3) - (7)].action), (yyvsp[(7) - (7)].action));
2082                   bufferWriteU8((yyvsp[(3) - (7)].action), SWFACTION_BRANCHALWAYS);
2083                   bufferWriteS16((yyvsp[(3) - (7)].action), 2);
2084                   bufferWriteS16((yyvsp[(3) - (7)].action), bufferLength((yyvsp[(5) - (7)].action)));
2085                   bufferConcat((yyvsp[(3) - (7)].action), (yyvsp[(5) - (7)].action));
2086                   (yyval.action) = (yyvsp[(3) - (7)].action); ;}
2087     break;
2088
2089   case 26:
2090
2091 /* Line 1455 of yacc.c  */
2092 #line 279 "swf4compiler.y"
2093     { bufferWriteU8((yyvsp[(3) - (5)].action), SWFACTION_LOGICALNOT);
2094                   bufferWriteU8((yyvsp[(3) - (5)].action), SWFACTION_BRANCHIFTRUE);
2095                   bufferWriteS16((yyvsp[(3) - (5)].action), 2);
2096                   bufferWriteS16((yyvsp[(3) - (5)].action), bufferLength((yyvsp[(5) - (5)].action)));
2097                   bufferConcat((yyvsp[(3) - (5)].action), (yyvsp[(5) - (5)].action));
2098                   (yyval.action) = (yyvsp[(3) - (5)].action); ;}
2099     break;
2100
2101   case 27:
2102
2103 /* Line 1455 of yacc.c  */
2104 #line 288 "swf4compiler.y"
2105     { (yyval.action) = NULL; ;}
2106     break;
2107
2108   case 28:
2109
2110 /* Line 1455 of yacc.c  */
2111 #line 289 "swf4compiler.y"
2112     { (yyval.action) = (yyvsp[(1) - (1)].action); ;}
2113     break;
2114
2115   case 29:
2116
2117 /* Line 1455 of yacc.c  */
2118 #line 314 "swf4compiler.y"
2119     { (yyval.action) = newBuffer();
2120                   bufferWriteU8((yyval.action), SWFACTION_WAITFORFRAME);
2121                   bufferWriteS16((yyval.action), 3);
2122                   bufferWriteS16((yyval.action), atoi((yyvsp[(6) - (9)].str)));
2123                   free((yyvsp[(6) - (9)].str));
2124                   bufferWriteU8((yyval.action), 1);             /* if not loaded, jump to.. */
2125                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2126                   bufferWriteS16((yyval.action), 2);
2127                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(9) - (9)].action))+5);
2128                   bufferConcat((yyval.action), (yyvsp[(9) - (9)].action));                                /* ..here */
2129                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2130                   bufferWriteS16((yyval.action), 2);
2131                   bufferWriteS16((yyval.action), -(bufferLength((yyval.action))+2)); ;}
2132     break;
2133
2134   case 30:
2135
2136 /* Line 1455 of yacc.c  */
2137 #line 329 "swf4compiler.y"
2138     { (yyval.action) = (yyvsp[(3) - (5)].action);
2139                   bufferWriteU8((yyval.action), SWFACTION_LOGICALNOT);
2140                   bufferWriteU8((yyval.action), SWFACTION_BRANCHIFTRUE);
2141                   bufferWriteS16((yyval.action), 2);
2142                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(5) - (5)].action))+5);
2143                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
2144                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2145                   bufferWriteS16((yyval.action), 2);
2146                   bufferWriteS16((yyval.action), -(bufferLength((yyval.action))+2));
2147                   bufferResolveJumps((yyval.action)); ;}
2148     break;
2149
2150   case 31:
2151
2152 /* Line 1455 of yacc.c  */
2153 #line 341 "swf4compiler.y"
2154     { (yyval.action) = (yyvsp[(2) - (6)].action);
2155                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
2156                   bufferWriteU8((yyval.action), SWFACTION_BRANCHIFTRUE);
2157                   bufferWriteS16((yyval.action), 2);
2158                   bufferWriteS16((yyval.action), -(bufferLength((yyval.action))+2));
2159                   bufferResolveJumps((yyval.action)); ;}
2160     break;
2161
2162   case 32:
2163
2164 /* Line 1455 of yacc.c  */
2165 #line 349 "swf4compiler.y"
2166     { if (!(yyvsp[(5) - (9)].action))
2167                     (yyvsp[(5) - (9)].action) = newBuffer();
2168                   else {
2169                     bufferWriteU8((yyvsp[(5) - (9)].action), SWFACTION_LOGICALNOT);
2170                     bufferWriteU8((yyvsp[(5) - (9)].action), SWFACTION_BRANCHIFTRUE);
2171                     bufferWriteS16((yyvsp[(5) - (9)].action), 2);
2172                     bufferWriteS16((yyvsp[(5) - (9)].action), bufferLength((yyvsp[(9) - (9)].action))+bufferLength((yyvsp[(7) - (9)].action))+5);
2173                   }
2174                   bufferConcat((yyvsp[(5) - (9)].action), (yyvsp[(9) - (9)].action));
2175                   bufferConcat((yyvsp[(5) - (9)].action), (yyvsp[(7) - (9)].action));
2176                   bufferWriteU8((yyvsp[(5) - (9)].action), SWFACTION_BRANCHALWAYS);
2177                   bufferWriteS16((yyvsp[(5) - (9)].action), 2);
2178                   bufferWriteS16((yyvsp[(5) - (9)].action), -(bufferLength((yyvsp[(5) - (9)].action))+2));
2179                   bufferResolveJumps((yyvsp[(5) - (9)].action));
2180                   (yyval.action) = (yyvsp[(3) - (9)].action);
2181                   if(!(yyval.action)) (yyval.action) = newBuffer();
2182                   bufferConcat((yyval.action), (yyvsp[(5) - (9)].action));
2183                 ;}
2184     break;
2185
2186   case 33:
2187
2188 /* Line 1455 of yacc.c  */
2189 #line 370 "swf4compiler.y"
2190     { (yyval.action) = NULL; ;}
2191     break;
2192
2193   case 35:
2194
2195 /* Line 1455 of yacc.c  */
2196 #line 376 "swf4compiler.y"
2197     { (yyval.action) = newBuffer();
2198                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2199                   bufferWriteS16((yyval.action), 2);
2200                   bufferWriteS16((yyval.action), MAGIC_CONTINUE_NUMBER); ;}
2201     break;
2202
2203   case 36:
2204
2205 /* Line 1455 of yacc.c  */
2206 #line 384 "swf4compiler.y"
2207     { (yyval.action) = newBuffer();
2208                   bufferWriteU8((yyval.action), SWFACTION_BRANCHALWAYS);
2209                   bufferWriteS16((yyval.action), 2);
2210                   bufferWriteS16((yyval.action), MAGIC_BREAK_NUMBER); ;}
2211     break;
2212
2213   case 37:
2214
2215 /* Line 1455 of yacc.c  */
2216 #line 392 "swf4compiler.y"
2217     { (yyval.action) = newBuffer();
2218                   bufferWriteU8((yyval.action), SWFACTION_STOPDRAGMOVIE); ;}
2219     break;
2220
2221   case 38:
2222
2223 /* Line 1455 of yacc.c  */
2224 #line 396 "swf4compiler.y"
2225     { (yyval.action) = newBuffer();
2226                   bufferWriteString((yyval.action), (yyvsp[(3) - (4)].str), strlen((yyvsp[(3) - (4)].str))+1);
2227                   bufferWriteU8((yyval.action), SWFACTION_CALLFRAME);
2228                   bufferWriteS16((yyval.action), 0);
2229                   free((yyvsp[(3) - (4)].str)); ;}
2230     break;
2231
2232   case 39:
2233
2234 /* Line 1455 of yacc.c  */
2235 #line 403 "swf4compiler.y"
2236     { (yyval.action) = newBuffer();
2237                   bufferWriteString((yyval.action), (yyvsp[(3) - (4)].str), strlen((yyvsp[(3) - (4)].str))+1);
2238                   bufferWriteU8((yyval.action), SWFACTION_CALLFRAME);
2239                   bufferWriteS16((yyval.action), 0);
2240                   free((yyvsp[(3) - (4)].str)); ;}
2241     break;
2242
2243   case 40:
2244
2245 /* Line 1455 of yacc.c  */
2246 #line 410 "swf4compiler.y"
2247     { (yyval.action) = (yyvsp[(3) - (4)].action);
2248                   bufferWriteU8((yyval.action), SWFACTION_REMOVECLIP); ;}
2249     break;
2250
2251   case 41:
2252
2253 /* Line 1455 of yacc.c  */
2254 #line 414 "swf4compiler.y"
2255     { (yyval.action) = (yyvsp[(3) - (4)].action);
2256                   bufferWriteU8((yyval.action), SWFACTION_TRACE); ;}
2257     break;
2258
2259   case 42:
2260
2261 /* Line 1455 of yacc.c  */
2262 #line 419 "swf4compiler.y"
2263     { (yyval.action) = (yyvsp[(3) - (6)].action);
2264                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
2265                   bufferWriteU8((yyval.action), SWFACTION_GETURL2);
2266                   bufferWriteS16((yyval.action), 1);
2267                   bufferWriteU8((yyval.action), GETURL_METHOD_NOSEND); ;}
2268     break;
2269
2270   case 43:
2271
2272 /* Line 1455 of yacc.c  */
2273 #line 426 "swf4compiler.y"
2274     { (yyval.action) = (yyvsp[(3) - (8)].action);
2275                   bufferConcat((yyval.action), (yyvsp[(5) - (8)].action));
2276                   bufferWriteU8((yyval.action), SWFACTION_GETURL2);
2277                   bufferWriteS16((yyval.action), 1);
2278                   bufferWriteU8((yyval.action), (yyvsp[(7) - (8)].getURLMethod)); ;}
2279     break;
2280
2281   case 44:
2282
2283 /* Line 1455 of yacc.c  */
2284 #line 433 "swf4compiler.y"
2285     { (yyval.action) = newBuffer();
2286                   bufferWriteU8((yyval.action), SWFACTION_GETURL);
2287                   bufferWriteS16((yyval.action), strlen((yyvsp[(3) - (6)].str)) + strlen((yyvsp[(5) - (6)].str)) + 2);
2288                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(3) - (6)].str), strlen((yyvsp[(3) - (6)].str)));
2289                   bufferWriteU8((yyval.action), 0);
2290                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(5) - (6)].str), strlen((yyvsp[(5) - (6)].str)));
2291                   bufferWriteU8((yyval.action), 0); ;}
2292     break;
2293
2294   case 45:
2295
2296 /* Line 1455 of yacc.c  */
2297 #line 442 "swf4compiler.y"
2298     { (yyval.action) = (yyvsp[(3) - (6)].action);
2299                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
2300                   bufferWriteU8((yyval.action), SWFACTION_GETURL2);
2301                   bufferWriteS16((yyval.action), 1);
2302                   bufferWriteU8((yyval.action), GETURL_METHOD_NOSEND | GETURL_LOADMOVIE); ;}
2303     break;
2304
2305   case 46:
2306
2307 /* Line 1455 of yacc.c  */
2308 #line 449 "swf4compiler.y"
2309     { (yyval.action) = (yyvsp[(3) - (8)].action);
2310                   bufferConcat((yyval.action), (yyvsp[(5) - (8)].action));
2311                   bufferWriteU8((yyval.action), SWFACTION_GETURL2);
2312                   bufferWriteS16((yyval.action), 1);
2313                   bufferWriteU8((yyval.action), (yyvsp[(7) - (8)].getURLMethod) | GETURL_LOADMOVIE); ;}
2314     break;
2315
2316   case 47:
2317
2318 /* Line 1455 of yacc.c  */
2319 #line 456 "swf4compiler.y"
2320     { (yyval.action) = (yyvsp[(3) - (6)].action);
2321                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
2322                   bufferWriteU8((yyval.action), SWFACTION_GETURL2);
2323                   bufferWriteS16((yyval.action), 1);
2324                   bufferWriteU8((yyval.action), GETURL_METHOD_NOSEND | GETURL_LOADVARIABLES); ;}
2325     break;
2326
2327   case 48:
2328
2329 /* Line 1455 of yacc.c  */
2330 #line 463 "swf4compiler.y"
2331     { (yyval.action) = (yyvsp[(3) - (8)].action);
2332                   bufferConcat((yyval.action), (yyvsp[(5) - (8)].action));
2333                   bufferWriteU8((yyval.action), SWFACTION_GETURL2);
2334                   bufferWriteS16((yyval.action), 1);
2335                   bufferWriteU8((yyval.action), (yyvsp[(7) - (8)].getURLMethod) | GETURL_LOADVARIABLES); ;}
2336     break;
2337
2338   case 49:
2339
2340 /* Line 1455 of yacc.c  */
2341 #line 471 "swf4compiler.y"
2342     { (yyval.action) = newBuffer();
2343                   bufferWriteString((yyval.action), "0", 2); /* no constraint */
2344                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
2345                   bufferConcat((yyval.action), (yyvsp[(3) - (6)].action));
2346                   bufferWriteU8((yyval.action), SWFACTION_STARTDRAGMOVIE); ;}
2347     break;
2348
2349   case 50:
2350
2351 /* Line 1455 of yacc.c  */
2352 #line 478 "swf4compiler.y"
2353     { (yyval.action) = newBuffer();
2354                   bufferConcat((yyval.action), (yyvsp[(7) - (14)].action));
2355                   bufferConcat((yyval.action), (yyvsp[(11) - (14)].action));
2356                   bufferConcat((yyval.action), (yyvsp[(9) - (14)].action));
2357                   bufferConcat((yyval.action), (yyvsp[(13) - (14)].action));
2358                   bufferWriteString((yyval.action), "1", 2); /* has constraint */
2359                   bufferConcat((yyval.action), (yyvsp[(5) - (14)].action));
2360                   bufferConcat((yyval.action), (yyvsp[(3) - (14)].action));
2361                   bufferWriteU8((yyval.action), SWFACTION_STARTDRAGMOVIE); ;}
2362     break;
2363
2364   case 51:
2365
2366 /* Line 1455 of yacc.c  */
2367 #line 490 "swf4compiler.y"
2368     { (yyval.action) = (yyvsp[(3) - (8)].action);
2369                   bufferConcat((yyval.action), (yyvsp[(5) - (8)].action));
2370                   bufferConcat((yyval.action), (yyvsp[(7) - (8)].action));
2371                   bufferWriteWTHITProperty((yyval.action));
2372                   bufferWriteU8((yyval.action), SWFACTION_ADD); /* see docs for explanation */
2373                   bufferWriteU8((yyval.action), SWFACTION_DUPLICATECLIP); ;}
2374     break;
2375
2376   case 52:
2377
2378 /* Line 1455 of yacc.c  */
2379 #line 499 "swf4compiler.y"
2380     { (yyval.action) = newBuffer();
2381                   bufferWriteU8((yyval.action), SWFACTION_NEXTFRAME); ;}
2382     break;
2383
2384   case 53:
2385
2386 /* Line 1455 of yacc.c  */
2387 #line 503 "swf4compiler.y"
2388     { (yyval.action) = newBuffer();
2389                   bufferWriteU8((yyval.action), SWFACTION_PREVFRAME); ;}
2390     break;
2391
2392   case 54:
2393
2394 /* Line 1455 of yacc.c  */
2395 #line 507 "swf4compiler.y"
2396     { (yyval.action) = newBuffer();
2397                   bufferWriteU8((yyval.action), SWFACTION_PLAY); ;}
2398     break;
2399
2400   case 55:
2401
2402 /* Line 1455 of yacc.c  */
2403 #line 511 "swf4compiler.y"
2404     { (yyval.action) = newBuffer();
2405                   bufferWriteU8((yyval.action), SWFACTION_STOP); ;}
2406     break;
2407
2408   case 56:
2409
2410 /* Line 1455 of yacc.c  */
2411 #line 515 "swf4compiler.y"
2412     { (yyval.action) = newBuffer();
2413                   bufferWriteU8((yyval.action), SWFACTION_TOGGLEQUALITY); ;}
2414     break;
2415
2416   case 57:
2417
2418 /* Line 1455 of yacc.c  */
2419 #line 519 "swf4compiler.y"
2420     { (yyval.action) = newBuffer();
2421                   bufferWriteU8((yyval.action), SWFACTION_STOPSOUNDS); ;}
2422     break;
2423
2424   case 58:
2425
2426 /* Line 1455 of yacc.c  */
2427 #line 523 "swf4compiler.y"
2428     { (yyval.action) = newBuffer();
2429                   bufferWriteU8((yyval.action), SWFACTION_GOTOFRAME);
2430                   bufferWriteS16((yyval.action), 2);
2431                   bufferWriteS16((yyval.action), atoi((yyvsp[(3) - (4)].str)));
2432                   free((yyvsp[(3) - (4)].str)); ;}
2433     break;
2434
2435   case 59:
2436
2437 /* Line 1455 of yacc.c  */
2438 #line 530 "swf4compiler.y"
2439     { (yyval.action) = newBuffer();
2440                   bufferWriteU8((yyval.action), SWFACTION_GOTOLABEL);
2441                   bufferWriteS16((yyval.action), strlen((yyvsp[(3) - (4)].str))+1);
2442                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(3) - (4)].str), strlen((yyvsp[(3) - (4)].str))+1);
2443                   free((yyvsp[(3) - (4)].str)); ;}
2444     break;
2445
2446   case 60:
2447
2448 /* Line 1455 of yacc.c  */
2449 #line 537 "swf4compiler.y"
2450     { (yyval.action) = (yyvsp[(3) - (4)].action);
2451                   bufferWriteU8((yyval.action), SWFACTION_GOTOEXPRESSION);
2452                   bufferWriteS16((yyval.action), 1);
2453                   bufferWriteU8((yyval.action), 0); ;}
2454     break;
2455
2456   case 61:
2457
2458 /* Line 1455 of yacc.c  */
2459 #line 543 "swf4compiler.y"
2460     { (yyval.action) = (yyvsp[(3) - (4)].action);
2461                   bufferWriteU8((yyval.action), SWFACTION_GOTOEXPRESSION);
2462                   bufferWriteS16((yyval.action), 1);
2463                   bufferWriteU8((yyval.action), 1); ;}
2464     break;
2465
2466   case 62:
2467
2468 /* Line 1455 of yacc.c  */
2469 #line 549 "swf4compiler.y"
2470     { (yyval.action) = newBuffer();
2471                   bufferWriteU8((yyval.action), SWFACTION_SETTARGET);
2472                   bufferWriteS16((yyval.action), strlen((yyvsp[(3) - (4)].str))+1);
2473                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(3) - (4)].str), strlen((yyvsp[(3) - (4)].str))+1);
2474                   free((yyvsp[(3) - (4)].str)); ;}
2475     break;
2476
2477   case 63:
2478
2479 /* Line 1455 of yacc.c  */
2480 #line 556 "swf4compiler.y"
2481     { (yyval.action) = (yyvsp[(3) - (4)].action);
2482                   bufferWriteU8((yyval.action), SWFACTION_SETTARGETEXPRESSION); ;}
2483     break;
2484
2485   case 64:
2486
2487 /* Line 1455 of yacc.c  */
2488 #line 560 "swf4compiler.y"
2489     { (yyval.action) = newBuffer();
2490                         /* SetTarget(STRING) */
2491                   bufferWriteU8((yyval.action), SWFACTION_SETTARGET);
2492                   bufferWriteS16((yyval.action), strlen((yyvsp[(3) - (5)].str))+1);
2493                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(3) - (5)].str), strlen((yyvsp[(3) - (5)].str))+1);
2494                         /* stmt */
2495                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
2496                         /* SetTarget('') */
2497                   bufferWriteU8((yyval.action), SWFACTION_SETTARGET);
2498                   bufferWriteS16((yyval.action), 1);
2499                   bufferWriteU8((yyval.action), 0);
2500                   free((yyvsp[(3) - (5)].str)); ;}
2501     break;
2502
2503   case 65:
2504
2505 /* Line 1455 of yacc.c  */
2506 #line 574 "swf4compiler.y"
2507     { (yyval.action) = (yyvsp[(3) - (5)].action);
2508                         /* SetTarget(expr) */
2509                   bufferWriteU8((yyval.action), SWFACTION_SETTARGETEXPRESSION); 
2510                         /* stmt */
2511                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
2512                         /* SetTarget('') */
2513                   bufferWriteU8((yyval.action), SWFACTION_SETTARGET);
2514                   bufferWriteS16((yyval.action), 1);
2515                   bufferWriteU8((yyval.action), 0); ;}
2516     break;
2517
2518   case 66:
2519
2520 /* Line 1455 of yacc.c  */
2521 #line 587 "swf4compiler.y"
2522     { (yyval.action) = (yyvsp[(3) - (4)].action);
2523                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE); ;}
2524     break;
2525
2526   case 67:
2527
2528 /* Line 1455 of yacc.c  */
2529 #line 591 "swf4compiler.y"
2530     { (yyval.action) = newBuffer();
2531                   bufferWriteU8((yyval.action), SWFACTION_GETTIMER); ;}
2532     break;
2533
2534   case 68:
2535
2536 /* Line 1455 of yacc.c  */
2537 #line 595 "swf4compiler.y"
2538     { (yyval.action) = (yyvsp[(3) - (4)].action);
2539                   bufferWriteU8((yyval.action), SWFACTION_RANDOM); ;}
2540     break;
2541
2542   case 69:
2543
2544 /* Line 1455 of yacc.c  */
2545 #line 599 "swf4compiler.y"
2546     { (yyval.action) = (yyvsp[(3) - (4)].action);
2547                   bufferWriteU8((yyval.action), SWFACTION_STRINGLENGTH); ;}
2548     break;
2549
2550   case 70:
2551
2552 /* Line 1455 of yacc.c  */
2553 #line 603 "swf4compiler.y"
2554     { (yyval.action) = (yyvsp[(3) - (4)].action);
2555                   bufferWriteU8((yyval.action), SWFACTION_INT); ;}
2556     break;
2557
2558   case 71:
2559
2560 /* Line 1455 of yacc.c  */
2561 #line 607 "swf4compiler.y"
2562     { (yyval.action) = (yyvsp[(3) - (4)].action);
2563                   bufferWriteU8((yyval.action), SWFACTION_ORD); ;}
2564     break;
2565
2566   case 72:
2567
2568 /* Line 1455 of yacc.c  */
2569 #line 611 "swf4compiler.y"
2570     { (yyval.action) = (yyvsp[(3) - (4)].action);
2571                   bufferWriteU8((yyval.action), SWFACTION_CHR); ;}
2572     break;
2573
2574   case 73:
2575
2576 /* Line 1455 of yacc.c  */
2577 #line 615 "swf4compiler.y"
2578     { (yyval.action) = (yyvsp[(3) - (6)].action);
2579                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
2580                   bufferWriteU8((yyval.action), SWFACTION_STRINGCONCAT); ;}
2581     break;
2582
2583   case 74:
2584
2585 /* Line 1455 of yacc.c  */
2586 #line 620 "swf4compiler.y"
2587     { (yyval.action) = (yyvsp[(3) - (8)].action);
2588                   bufferConcat((yyval.action), (yyvsp[(5) - (8)].action));
2589                   bufferConcat((yyval.action), (yyvsp[(7) - (8)].action));
2590                   bufferWriteU8((yyval.action), SWFACTION_SUBSTRING); ;}
2591     break;
2592
2593   case 75:
2594
2595 /* Line 1455 of yacc.c  */
2596 #line 626 "swf4compiler.y"
2597     { (yyval.action) = newBuffer();
2598                   bufferConcat((yyval.action), (yyvsp[(3) - (6)].action));
2599                   bufferWriteGetProperty((yyval.action), (yyvsp[(5) - (6)].str));
2600                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
2601                   free((yyvsp[(5) - (6)].str)); ;}
2602     break;
2603
2604   case 76:
2605
2606 /* Line 1455 of yacc.c  */
2607 #line 635 "swf4compiler.y"
2608     { (yyval.action) = newBuffer();
2609                   bufferWriteBuffer((yyval.action), (yyvsp[(1) - (2)].action));
2610                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
2611                   bufferWriteBuffer((yyval.action), (yyvsp[(1) - (2)].action));
2612                   bufferConcat((yyval.action), (yyvsp[(1) - (2)].action));
2613                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
2614                   bufferWriteString((yyval.action), "1", 2);
2615                   bufferWriteU8((yyval.action), SWFACTION_ADD);
2616                   bufferWriteU8((yyval.action), SWFACTION_SETVARIABLE); ;}
2617     break;
2618
2619   case 77:
2620
2621 /* Line 1455 of yacc.c  */
2622 #line 646 "swf4compiler.y"
2623     { (yyval.action) = newBuffer();
2624                   bufferWriteBuffer((yyval.action), (yyvsp[(1) - (2)].action));
2625                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
2626                   bufferWriteBuffer((yyval.action), (yyvsp[(1) - (2)].action));
2627                   bufferConcat((yyval.action), (yyvsp[(1) - (2)].action));
2628                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
2629                   bufferWriteString((yyval.action), "1", 2);
2630                   bufferWriteU8((yyval.action), SWFACTION_SUBTRACT);
2631                   bufferWriteU8((yyval.action), SWFACTION_SETVARIABLE); ;}
2632     break;
2633
2634   case 79:
2635
2636 /* Line 1455 of yacc.c  */
2637 #line 662 "swf4compiler.y"
2638     { (yyval.action) = (yyvsp[(2) - (3)].action); ;}
2639     break;
2640
2641   case 80:
2642
2643 /* Line 1455 of yacc.c  */
2644 #line 665 "swf4compiler.y"
2645     { (yyval.action) = newBuffer();
2646                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
2647                   free((yyvsp[(1) - (1)].str)); ;}
2648     break;
2649
2650   case 81:
2651
2652 /* Line 1455 of yacc.c  */
2653 #line 670 "swf4compiler.y"
2654     { (yyval.action) = newBuffer();
2655                   bufferWriteString((yyval.action), "-", 2);
2656                   bufferWriteString((yyval.action), (yyvsp[(2) - (2)].str), strlen((yyvsp[(2) - (2)].str))+1);
2657                   free((yyvsp[(2) - (2)].str)); ;}
2658     break;
2659
2660   case 82:
2661
2662 /* Line 1455 of yacc.c  */
2663 #line 676 "swf4compiler.y"
2664     { (yyval.action) = newBuffer();
2665                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
2666                   free((yyvsp[(1) - (1)].str)); ;}
2667     break;
2668
2669   case 83:
2670
2671 /* Line 1455 of yacc.c  */
2672 #line 681 "swf4compiler.y"
2673     { (yyval.action) = newBuffer();
2674                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
2675                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
2676                   free((yyvsp[(1) - (1)].str)); ;}
2677     break;
2678
2679   case 84:
2680
2681 /* Line 1455 of yacc.c  */
2682 #line 687 "swf4compiler.y"
2683     { (yyval.action) = newBuffer();
2684                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
2685                   free((yyvsp[(1) - (1)].str)); ;}
2686     break;
2687
2688   case 85:
2689
2690 /* Line 1455 of yacc.c  */
2691 #line 692 "swf4compiler.y"
2692     { (yyval.action) = newBuffer();
2693                   bufferWriteString((yyval.action), (yyvsp[(1) - (3)].str), strlen((yyvsp[(1) - (3)].str))+1);
2694                   bufferWriteGetProperty((yyval.action), (yyvsp[(3) - (3)].str));
2695                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
2696                   free((yyvsp[(3) - (3)].str));
2697                   free((yyvsp[(1) - (3)].str)); ;}
2698     break;
2699
2700   case 86:
2701
2702 /* Line 1455 of yacc.c  */
2703 #line 700 "swf4compiler.y"
2704     { (yyval.action) = newBuffer();
2705                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
2706                   bufferWriteGetProperty((yyval.action), (yyvsp[(4) - (4)].str));
2707                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
2708                   bufferWriteSetProperty((yyval.action), (yyvsp[(4) - (4)].str));
2709                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
2710                   bufferWriteGetProperty((yyval.action), (yyvsp[(4) - (4)].str));
2711                   bufferWriteString((yyval.action), "1", 2);
2712                   bufferWriteU8((yyval.action), SWFACTION_ADD);
2713                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
2714                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
2715                   free((yyvsp[(2) - (4)].str));
2716                   free((yyvsp[(4) - (4)].str)); ;}
2717     break;
2718
2719   case 87:
2720
2721 /* Line 1455 of yacc.c  */
2722 #line 715 "swf4compiler.y"
2723     { (yyval.action) = (yyvsp[(2) - (2)].action);
2724                   bufferWriteU8((yyval.action), SWFACTION_DUP);
2725                   bufferWriteU8((yyval.action), SWFACTION_DUP);
2726                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
2727                   bufferWriteString((yyval.action), "1", 2);
2728                   bufferWriteU8((yyval.action), SWFACTION_ADD);
2729                   bufferWriteU8((yyval.action), SWFACTION_SETVARIABLE);
2730                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE); ;}
2731     break;
2732
2733   case 88:
2734
2735 /* Line 1455 of yacc.c  */
2736 #line 725 "swf4compiler.y"
2737     { (yyval.action) = newBuffer();
2738                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
2739                   bufferWriteGetProperty((yyval.action), (yyvsp[(4) - (4)].str));
2740                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
2741                   bufferWriteSetProperty((yyval.action), (yyvsp[(4) - (4)].str));
2742                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
2743                   bufferWriteGetProperty((yyval.action), (yyvsp[(4) - (4)].str));
2744                   bufferWriteString((yyval.action), "1", 2);
2745                   bufferWriteU8((yyval.action), SWFACTION_ADD);
2746                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
2747                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
2748                   free((yyvsp[(2) - (4)].str));
2749                   free((yyvsp[(4) - (4)].str)); ;}
2750     break;
2751
2752   case 89:
2753
2754 /* Line 1455 of yacc.c  */
2755 #line 740 "swf4compiler.y"
2756     { (yyval.action) = (yyvsp[(2) - (2)].action);
2757                   bufferWriteU8((yyval.action), SWFACTION_DUP);
2758                   bufferWriteU8((yyval.action), SWFACTION_DUP);
2759                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
2760                   bufferWriteString((yyval.action), "1", 2);
2761                   bufferWriteU8((yyval.action), SWFACTION_SUBTRACT);
2762                   bufferWriteU8((yyval.action), SWFACTION_SETVARIABLE);
2763                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE); ;}
2764     break;
2765
2766   case 90:
2767
2768 /* Line 1455 of yacc.c  */
2769 #line 750 "swf4compiler.y"
2770     { (yyval.action) = (yyvsp[(2) - (2)].action);
2771                   bufferWriteString((yyvsp[(2) - (2)].action), "-1", 3);
2772                   bufferWriteU8((yyvsp[(2) - (2)].action), SWFACTION_MULTIPLY); ;}
2773     break;
2774
2775   case 91:
2776
2777 /* Line 1455 of yacc.c  */
2778 #line 755 "swf4compiler.y"
2779     { (yyval.action) = (yyvsp[(2) - (2)].action);
2780                   bufferWriteU8((yyvsp[(2) - (2)].action), SWFACTION_LOGICALNOT); ;}
2781     break;
2782
2783   case 92:
2784
2785 /* Line 1455 of yacc.c  */
2786 #line 759 "swf4compiler.y"
2787     { (yyval.action) = (yyvsp[(1) - (3)].action);
2788                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
2789                   bufferWriteU8((yyval.action), SWFACTION_DUP);
2790                   bufferWriteU8((yyval.action), SWFACTION_SETVARIABLE); ;}
2791     break;
2792
2793   case 93:
2794
2795 /* Line 1455 of yacc.c  */
2796 #line 765 "swf4compiler.y"
2797     { (yyval.action) = (yyvsp[(1) - (3)].action);
2798                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
2799                   bufferWriteU8((yyval.action), SWFACTION_MULTIPLY); ;}
2800     break;
2801
2802   case 94:
2803
2804 /* Line 1455 of yacc.c  */
2805 #line 770 "swf4compiler.y"
2806     { (yyval.action) = (yyvsp[(1) - (3)].action);
2807                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
2808                   bufferWriteU8((yyval.action), SWFACTION_DIVIDE); ;}
2809     break;
2810
2811   case 95:
2812
2813 /* Line 1455 of yacc.c  */
2814 #line 775 "swf4compiler.y"
2815     { (yyval.action) = (yyvsp[(1) - (3)].action);
2816                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
2817                   bufferWriteU8((yyval.action), SWFACTION_ADD); ;}
2818     break;
2819
2820   case 96:
2821
2822 /* Line 1455 of yacc.c  */
2823 #line 780 "swf4compiler.y"
2824     { (yyval.action) = (yyvsp[(1) - (3)].action);
2825                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
2826                   bufferWriteU8((yyval.action), SWFACTION_SUBTRACT); ;}
2827     break;
2828
2829   case 97:
2830
2831 /* Line 1455 of yacc.c  */
2832 #line 785 "swf4compiler.y"
2833     { (yyval.action) = (yyvsp[(1) - (3)].action);
2834                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
2835                   bufferWriteU8((yyval.action), SWFACTION_STRINGCONCAT); ;}
2836     break;
2837
2838   case 98:
2839
2840 /* Line 1455 of yacc.c  */
2841 #line 790 "swf4compiler.y"
2842     { (yyval.action) = (yyvsp[(1) - (3)].action);
2843                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
2844                   bufferWriteU8((yyval.action), SWFACTION_LESSTHAN); ;}
2845     break;
2846
2847   case 99:
2848
2849 /* Line 1455 of yacc.c  */
2850 #line 795 "swf4compiler.y"
2851     { (yyval.action) = (yyvsp[(3) - (3)].action);
2852                   bufferConcat((yyval.action), (yyvsp[(1) - (3)].action));
2853                   bufferWriteU8((yyval.action), SWFACTION_LESSTHAN); ;}
2854     break;
2855
2856   case 100:
2857
2858 /* Line 1455 of yacc.c  */
2859 #line 800 "swf4compiler.y"
2860     { (yyval.action) = (yyvsp[(3) - (3)].action);
2861                   bufferConcat((yyval.action), (yyvsp[(1) - (3)].action));
2862                   bufferWriteU8((yyval.action), SWFACTION_LESSTHAN);
2863                   bufferWriteU8((yyval.action), SWFACTION_LOGICALNOT); ;}
2864     break;
2865
2866   case 101:
2867
2868 /* Line 1455 of yacc.c  */
2869 #line 806 "swf4compiler.y"
2870     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2871                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_LESSTHAN);
2872                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_LOGICALNOT); ;}
2873     break;
2874
2875   case 102:
2876
2877 /* Line 1455 of yacc.c  */
2878 #line 811 "swf4compiler.y"
2879     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2880                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_STRINGEQ);
2881                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_LOGICALNOT); ;}
2882     break;
2883
2884   case 103:
2885
2886 /* Line 1455 of yacc.c  */
2887 #line 816 "swf4compiler.y"
2888     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2889                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_STRINGEQ); ;}
2890     break;
2891
2892   case 104:
2893
2894 /* Line 1455 of yacc.c  */
2895 #line 820 "swf4compiler.y"
2896     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2897                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_STRINGCOMPARE); ;}
2898     break;
2899
2900   case 105:
2901
2902 /* Line 1455 of yacc.c  */
2903 #line 824 "swf4compiler.y"
2904     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2905                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_EQUAL); ;}
2906     break;
2907
2908   case 106:
2909
2910 /* Line 1455 of yacc.c  */
2911 #line 828 "swf4compiler.y"
2912     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2913                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_EQUAL);
2914                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_LOGICALNOT); ;}
2915     break;
2916
2917   case 107:
2918
2919 /* Line 1455 of yacc.c  */
2920 #line 833 "swf4compiler.y"
2921     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2922                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_LOGICALAND); ;}
2923     break;
2924
2925   case 108:
2926
2927 /* Line 1455 of yacc.c  */
2928 #line 837 "swf4compiler.y"
2929     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
2930                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_LOGICALOR); ;}
2931     break;
2932
2933   case 109:
2934
2935 /* Line 1455 of yacc.c  */
2936 #line 841 "swf4compiler.y"
2937     { bufferWriteU8((yyvsp[(1) - (5)].action), SWFACTION_BRANCHIFTRUE);
2938                   bufferWriteS16((yyvsp[(1) - (5)].action), 2);
2939                   bufferWriteS16((yyvsp[(1) - (5)].action), bufferLength((yyvsp[(5) - (5)].action))+5);
2940                   bufferConcat((yyvsp[(1) - (5)].action), (yyvsp[(5) - (5)].action));
2941                   bufferWriteU8((yyvsp[(1) - (5)].action), SWFACTION_BRANCHALWAYS);
2942                   bufferWriteS16((yyvsp[(1) - (5)].action), 2);
2943                   bufferWriteS16((yyvsp[(1) - (5)].action), bufferLength((yyvsp[(3) - (5)].action)));
2944                   bufferConcat((yyvsp[(1) - (5)].action), (yyvsp[(3) - (5)].action)); ;}
2945     break;
2946
2947   case 111:
2948
2949 /* Line 1455 of yacc.c  */
2950 #line 855 "swf4compiler.y"
2951     { (yyval.str) = (yyvsp[(1) - (3)].str);
2952                   (yyval.str) = stringConcat((yyval.str), strdup(":"));
2953                   (yyval.str) = stringConcat((yyval.str), (yyvsp[(3) - (3)].str)); ;}
2954     break;
2955
2956   case 112:
2957
2958 /* Line 1455 of yacc.c  */
2959 #line 862 "swf4compiler.y"
2960     { (yyval.str) = strdup(""); ;}
2961     break;
2962
2963   case 113:
2964
2965 /* Line 1455 of yacc.c  */
2966 #line 865 "swf4compiler.y"
2967     { (yyval.str) = strdup(""); ;}
2968     break;
2969
2970   case 114:
2971
2972 /* Line 1455 of yacc.c  */
2973 #line 868 "swf4compiler.y"
2974     { (yyval.str) = strdup("/"); ;}
2975     break;
2976
2977   case 115:
2978
2979 /* Line 1455 of yacc.c  */
2980 #line 871 "swf4compiler.y"
2981     { (yyval.str) = strdup(".."); ;}
2982     break;
2983
2984   case 116:
2985
2986 /* Line 1455 of yacc.c  */
2987 #line 874 "swf4compiler.y"
2988     { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
2989     break;
2990
2991   case 117:
2992
2993 /* Line 1455 of yacc.c  */
2994 #line 877 "swf4compiler.y"
2995     { (yyval.str) = (yyvsp[(1) - (1)].str); ;}
2996     break;
2997
2998   case 118:
2999
3000 /* Line 1455 of yacc.c  */
3001 #line 882 "swf4compiler.y"
3002     { (yyval.action) = newBuffer();
3003                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
3004                   free((yyvsp[(1) - (1)].str)); ;}
3005     break;
3006
3007   case 119:
3008
3009 /* Line 1455 of yacc.c  */
3010 #line 887 "swf4compiler.y"
3011     { (yyval.action) = newBuffer();
3012                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
3013                   free((yyvsp[(1) - (1)].str)); ;}
3014     break;
3015
3016   case 120:
3017
3018 /* Line 1455 of yacc.c  */
3019 #line 891 "swf4compiler.y"
3020     { (yyval.action) = (yyvsp[(2) - (3)].action); ;}
3021     break;
3022
3023   case 123:
3024
3025 /* Line 1455 of yacc.c  */
3026 #line 900 "swf4compiler.y"
3027     { (yyval.action) = (yyvsp[(2) - (2)].action);
3028                   bufferWriteBuffer((yyval.action), (yyvsp[(2) - (2)].action));
3029                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
3030                   bufferWriteString((yyval.action), "1", 2);
3031                   bufferWriteU8((yyval.action), SWFACTION_ADD);
3032                   bufferWriteU8((yyval.action), SWFACTION_SETVARIABLE); ;}
3033     break;
3034
3035   case 124:
3036
3037 /* Line 1455 of yacc.c  */
3038 #line 908 "swf4compiler.y"
3039     { (yyval.action) = (yyvsp[(2) - (2)].action);
3040                   bufferWriteBuffer((yyval.action), (yyvsp[(2) - (2)].action));
3041                   bufferWriteU8((yyval.action), SWFACTION_GETVARIABLE);
3042                   bufferWriteString((yyval.action), "1", 2);
3043                   bufferWriteU8((yyval.action), SWFACTION_SUBTRACT);
3044                   bufferWriteU8((yyval.action), SWFACTION_SETVARIABLE); ;}
3045     break;
3046
3047   case 125:
3048
3049 /* Line 1455 of yacc.c  */
3050 #line 916 "swf4compiler.y"
3051     { (yyval.action) = newBuffer();
3052                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
3053                   bufferWriteGetProperty((yyval.action), (yyvsp[(4) - (4)].str));
3054                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
3055                   bufferWriteString((yyval.action), "1", 2);
3056                   bufferWriteU8((yyval.action), SWFACTION_ADD);
3057                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
3058                   bufferWriteSetProperty((yyval.action), (yyvsp[(4) - (4)].str));
3059                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
3060                   free((yyvsp[(2) - (4)].str));
3061                   free((yyvsp[(4) - (4)].str)); ;}
3062     break;
3063
3064   case 126:
3065
3066 /* Line 1455 of yacc.c  */
3067 #line 929 "swf4compiler.y"
3068     { (yyval.action) = newBuffer();
3069                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
3070                   bufferWriteGetProperty((yyval.action), (yyvsp[(4) - (4)].str));
3071                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
3072                   bufferWriteString((yyval.action), "1", 2);
3073                   bufferWriteU8((yyval.action), SWFACTION_SUBTRACT);
3074                   bufferWriteString((yyval.action), (yyvsp[(2) - (4)].str), strlen((yyvsp[(2) - (4)].str))+1);
3075                   bufferWriteSetProperty((yyval.action), (yyvsp[(4) - (4)].str));
3076                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
3077                   free((yyvsp[(2) - (4)].str));
3078                   free((yyvsp[(4) - (4)].str)); ;}
3079     break;
3080
3081   case 127:
3082
3083 /* Line 1455 of yacc.c  */
3084 #line 942 "swf4compiler.y"
3085     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
3086                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_SETVARIABLE); ;}
3087     break;
3088
3089   case 128:
3090
3091 /* Line 1455 of yacc.c  */
3092 #line 946 "swf4compiler.y"
3093     { bufferWriteBuffer((yyvsp[(1) - (3)].action), (yyvsp[(1) - (3)].action));
3094                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_GETVARIABLE);
3095                   bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
3096                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_MULTIPLY);
3097                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_SETVARIABLE); ;}
3098     break;
3099
3100   case 129:
3101
3102 /* Line 1455 of yacc.c  */
3103 #line 953 "swf4compiler.y"
3104     { bufferWriteBuffer((yyvsp[(1) - (3)].action), (yyvsp[(1) - (3)].action));
3105                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_GETVARIABLE);
3106                   bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
3107                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_DIVIDE);
3108                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_SETVARIABLE); ;}
3109     break;
3110
3111   case 130:
3112
3113 /* Line 1455 of yacc.c  */
3114 #line 960 "swf4compiler.y"
3115     { bufferWriteBuffer((yyvsp[(1) - (3)].action), (yyvsp[(1) - (3)].action));
3116                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_GETVARIABLE);
3117                   bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
3118                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_ADD);
3119                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_SETVARIABLE); ;}
3120     break;
3121
3122   case 131:
3123
3124 /* Line 1455 of yacc.c  */
3125 #line 967 "swf4compiler.y"
3126     { bufferWriteBuffer((yyvsp[(1) - (3)].action), (yyvsp[(1) - (3)].action));
3127                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_GETVARIABLE);
3128                   bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
3129                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_SUBTRACT);
3130                   bufferWriteU8((yyvsp[(1) - (3)].action), SWFACTION_SETVARIABLE); ;}
3131     break;
3132
3133   case 132:
3134
3135 /* Line 1455 of yacc.c  */
3136 #line 974 "swf4compiler.y"
3137     { (yyval.action) = newBuffer();
3138                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3139                   bufferWriteSetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3140                   bufferConcat((yyval.action),(yyvsp[(5) - (5)].action));
3141                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
3142                   free((yyvsp[(1) - (5)].str));
3143                   free((yyvsp[(3) - (5)].str)); ;}
3144     break;
3145
3146   case 133:
3147
3148 /* Line 1455 of yacc.c  */
3149 #line 983 "swf4compiler.y"
3150     { (yyval.action) = newBuffer();
3151                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3152                   bufferWriteSetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3153                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3154                   bufferWriteGetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3155                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
3156                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
3157                   bufferWriteU8((yyval.action), SWFACTION_MULTIPLY);
3158                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
3159                   free((yyvsp[(1) - (5)].str));
3160                   free((yyvsp[(3) - (5)].str)); ;}
3161     break;
3162
3163   case 134:
3164
3165 /* Line 1455 of yacc.c  */
3166 #line 996 "swf4compiler.y"
3167     { (yyval.action) = newBuffer();
3168                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3169                   bufferWriteSetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3170                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3171                   bufferWriteGetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3172                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
3173                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
3174                   bufferWriteU8((yyval.action), SWFACTION_DIVIDE);
3175                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
3176                   free((yyvsp[(1) - (5)].str));
3177                   free((yyvsp[(3) - (5)].str)); ;}
3178     break;
3179
3180   case 135:
3181
3182 /* Line 1455 of yacc.c  */
3183 #line 1009 "swf4compiler.y"
3184     { (yyval.action) = newBuffer();
3185                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3186                   bufferWriteSetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3187                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3188                   bufferWriteGetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3189                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
3190                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
3191                   bufferWriteU8((yyval.action), SWFACTION_ADD);
3192                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
3193                   free((yyvsp[(1) - (5)].str));
3194                   free((yyvsp[(3) - (5)].str)); ;}
3195     break;
3196
3197   case 136:
3198
3199 /* Line 1455 of yacc.c  */
3200 #line 1022 "swf4compiler.y"
3201     { (yyval.action) = newBuffer();
3202                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3203                   bufferWriteSetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3204                   bufferWriteString((yyval.action), (yyvsp[(1) - (5)].str), strlen((yyvsp[(1) - (5)].str))+1);
3205                   bufferWriteGetProperty((yyval.action), (yyvsp[(3) - (5)].str));
3206                   bufferWriteU8((yyval.action), SWFACTION_GETPROPERTY);
3207                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
3208                   bufferWriteU8((yyval.action), SWFACTION_SUBTRACT);
3209                   bufferWriteU8((yyval.action), SWFACTION_SETPROPERTY);
3210                   free((yyvsp[(1) - (5)].str));
3211                   free((yyvsp[(3) - (5)].str)); ;}
3212     break;
3213
3214
3215
3216 /* Line 1455 of yacc.c  */
3217 #line 3218 "swf4compiler.tab.c"
3218       default: break;
3219     }
3220   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3221
3222   YYPOPSTACK (yylen);
3223   yylen = 0;
3224   YY_STACK_PRINT (yyss, yyssp);
3225
3226   *++yyvsp = yyval;
3227
3228   /* Now `shift' the result of the reduction.  Determine what state
3229      that goes to, based on the state we popped back to and the rule
3230      number reduced by.  */
3231
3232   yyn = yyr1[yyn];
3233
3234   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3235   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3236     yystate = yytable[yystate];
3237   else
3238     yystate = yydefgoto[yyn - YYNTOKENS];
3239
3240   goto yynewstate;
3241
3242
3243 /*------------------------------------.
3244 | yyerrlab -- here on detecting error |
3245 `------------------------------------*/
3246 yyerrlab:
3247   /* If not already recovering from an error, report this error.  */
3248   if (!yyerrstatus)
3249     {
3250       ++yynerrs;
3251 #if ! YYERROR_VERBOSE
3252       yyerror (YY_("syntax error"));
3253 #else
3254       {
3255         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
3256         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
3257           {
3258             YYSIZE_T yyalloc = 2 * yysize;
3259             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
3260               yyalloc = YYSTACK_ALLOC_MAXIMUM;
3261             if (yymsg != yymsgbuf)
3262               YYSTACK_FREE (yymsg);
3263             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
3264             if (yymsg)
3265               yymsg_alloc = yyalloc;
3266             else
3267               {
3268                 yymsg = yymsgbuf;
3269                 yymsg_alloc = sizeof yymsgbuf;
3270               }
3271           }
3272
3273         if (0 < yysize && yysize <= yymsg_alloc)
3274           {
3275             (void) yysyntax_error (yymsg, yystate, yychar);
3276             yyerror (yymsg);
3277           }
3278         else
3279           {
3280             yyerror (YY_("syntax error"));
3281             if (yysize != 0)
3282               goto yyexhaustedlab;
3283           }
3284       }
3285 #endif
3286     }
3287
3288
3289
3290   if (yyerrstatus == 3)
3291     {
3292       /* If just tried and failed to reuse lookahead token after an
3293          error, discard it.  */
3294
3295       if (yychar <= YYEOF)
3296         {
3297           /* Return failure if at end of input.  */
3298           if (yychar == YYEOF)
3299             YYABORT;
3300         }
3301       else
3302         {
3303           yydestruct ("Error: discarding",
3304                       yytoken, &yylval);
3305           yychar = YYEMPTY;
3306         }
3307     }
3308
3309   /* Else will try to reuse lookahead token after shifting the error
3310      token.  */
3311   goto yyerrlab1;
3312
3313
3314 /*---------------------------------------------------.
3315 | yyerrorlab -- error raised explicitly by YYERROR.  |
3316 `---------------------------------------------------*/
3317 yyerrorlab:
3318
3319   /* Pacify compilers like GCC when the user code never invokes
3320      YYERROR and the label yyerrorlab therefore never appears in user
3321      code.  */
3322   if (/*CONSTCOND*/ 0)
3323      goto yyerrorlab;
3324
3325   /* Do not reclaim the symbols of the rule which action triggered
3326      this YYERROR.  */
3327   YYPOPSTACK (yylen);
3328   yylen = 0;
3329   YY_STACK_PRINT (yyss, yyssp);
3330   yystate = *yyssp;
3331   goto yyerrlab1;
3332
3333
3334 /*-------------------------------------------------------------.
3335 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3336 `-------------------------------------------------------------*/
3337 yyerrlab1:
3338   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3339
3340   for (;;)
3341     {
3342       yyn = yypact[yystate];
3343       if (yyn != YYPACT_NINF)
3344         {
3345           yyn += YYTERROR;
3346           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3347             {
3348               yyn = yytable[yyn];
3349               if (0 < yyn)
3350                 break;
3351             }
3352         }
3353
3354       /* Pop the current state because it cannot handle the error token.  */
3355       if (yyssp == yyss)
3356         YYABORT;
3357
3358
3359       yydestruct ("Error: popping",
3360                   yystos[yystate], yyvsp);
3361       YYPOPSTACK (1);
3362       yystate = *yyssp;
3363       YY_STACK_PRINT (yyss, yyssp);
3364     }
3365
3366   *++yyvsp = yylval;
3367
3368
3369   /* Shift the error token.  */
3370   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3371
3372   yystate = yyn;
3373   goto yynewstate;
3374
3375
3376 /*-------------------------------------.
3377 | yyacceptlab -- YYACCEPT comes here.  |
3378 `-------------------------------------*/
3379 yyacceptlab:
3380   yyresult = 0;
3381   goto yyreturn;
3382
3383 /*-----------------------------------.
3384 | yyabortlab -- YYABORT comes here.  |
3385 `-----------------------------------*/
3386 yyabortlab:
3387   yyresult = 1;
3388   goto yyreturn;
3389
3390 #if !defined(yyoverflow) || YYERROR_VERBOSE
3391 /*-------------------------------------------------.
3392 | yyexhaustedlab -- memory exhaustion comes here.  |
3393 `-------------------------------------------------*/
3394 yyexhaustedlab:
3395   yyerror (YY_("memory exhausted"));
3396   yyresult = 2;
3397   /* Fall through.  */
3398 #endif
3399
3400 yyreturn:
3401   if (yychar != YYEMPTY)
3402      yydestruct ("Cleanup: discarding lookahead",
3403                  yytoken, &yylval);
3404   /* Do not reclaim the symbols of the rule which action triggered
3405      this YYABORT or YYACCEPT.  */
3406   YYPOPSTACK (yylen);
3407   YY_STACK_PRINT (yyss, yyssp);
3408   while (yyssp != yyss)
3409     {
3410       yydestruct ("Cleanup: popping",
3411                   yystos[*yyssp], yyvsp);
3412       YYPOPSTACK (1);
3413     }
3414 #ifndef yyoverflow
3415   if (yyss != yyssa)
3416     YYSTACK_FREE (yyss);
3417 #endif
3418 #if YYERROR_VERBOSE
3419   if (yymsg != yymsgbuf)
3420     YYSTACK_FREE (yymsg);
3421 #endif
3422   /* Make sure YYID is used.  */
3423   return YYID (yyresult);
3424 }
3425
3426
3427
3428 /* Line 1675 of yacc.c  */
3429 #line 1039 "swf4compiler.y"
3430
3431