1 /* A Bison parser, made by GNU Bison 1.875. */
3 /* Skeleton parser for Yacc-like parsing with Bison,
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
21 /* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
26 /* Written by Richard Stallman by simplifying the original so called
27 ``semantic'' parser. */
29 /* All symbols defined below should begin with yy or YY, to avoid
30 infringing on user name space. This should be done even for local
31 variables, as they might otherwise be expanded by user macros.
32 There are some unavoidable exceptions within include files to
33 define necessary library symbols; they are noted "INFRINGES ON
34 USER NAME SPACE" below. */
36 /* Identify Bison output. */
40 #define YYSKELETON_NAME "yacc.c"
45 /* Using locations. */
46 #define YYLSP_NEEDED 0
48 /* If NAME_PREFIX is specified substitute the variables and functions
50 #define yyparse swf4parse
52 #define yyerror swf4error
53 #define yylval swf4lval
54 #define yychar swf4char
55 #define yydebug swf4debug
56 #define yynerrs swf4nerrs
62 /* Put the tokens into the symbol table, so that GDB and other debuggers
146 #define DUPLICATECLIP 272
147 #define REMOVECLIP 273
149 #define STARTDRAG 275
153 #define CALLFRAME 279
156 #define LOADMOVIE 282
157 #define LOADVARIABLES 283
160 #define GETPROPERTY 286
161 #define NEXTFRAME 287
162 #define PREVFRAME 288
165 #define TOGGLEQUALITY 291
166 #define STOPSOUNDS 292
167 #define GOTOFRAME 293
168 #define GOTOANDPLAY 294
169 #define FRAMELOADED 295
170 #define SETTARGET 296
171 #define TELLTARGET 297
174 #define IDENTIFIER 300
176 #define GETURL_METHOD 302
201 /* Copy the first part of user declarations. */
202 #line 5 "swf4compiler.y"
211 #define YYPARSE_PARAM buffer
215 /* Enabling traces. */
220 /* Enabling verbose error messages. */
221 #ifdef YYERROR_VERBOSE
222 # undef YYERROR_VERBOSE
223 # define YYERROR_VERBOSE 1
225 # define YYERROR_VERBOSE 0
228 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
229 #line 17 "swf4compiler.y"
230 typedef union YYSTYPE {
233 SWFActionFunction function;
234 SWFGetUrl2Method getURLMethod;
236 /* Line 191 of yacc.c. */
237 #line 237 "swf4compiler.tab.c"
238 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
239 # define YYSTYPE_IS_DECLARED 1
240 # define YYSTYPE_IS_TRIVIAL 1
245 /* Copy the second part of user declarations. */
248 /* Line 214 of yacc.c. */
249 #line 249 "swf4compiler.tab.c"
251 #if ! defined (yyoverflow) || YYERROR_VERBOSE
253 /* The parser invokes alloca or malloc; define the necessary symbols. */
255 # if YYSTACK_USE_ALLOCA
256 # define YYSTACK_ALLOC alloca
258 # ifndef YYSTACK_USE_ALLOCA
259 # if defined (alloca) || defined (_ALLOCA_H)
260 # define YYSTACK_ALLOC alloca
263 # define YYSTACK_ALLOC __builtin_alloca
269 # ifdef YYSTACK_ALLOC
270 /* Pacify GCC's `empty if-body' warning. */
271 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
273 # if defined (__STDC__) || defined (__cplusplus)
274 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
275 # define YYSIZE_T size_t
277 # define YYSTACK_ALLOC malloc
278 # define YYSTACK_FREE free
280 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
283 #if (! defined (yyoverflow) \
284 && (! defined (__cplusplus) \
285 || (YYSTYPE_IS_TRIVIAL)))
287 /* A type that is properly aligned for any stack member. */
294 /* The size of the maximum gap between one aligned stack and the next. */
295 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
297 /* The size of an array large to enough to hold all stacks, each with
299 # define YYSTACK_BYTES(N) \
300 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
301 + YYSTACK_GAP_MAXIMUM)
303 /* Copy COUNT objects from FROM to TO. The source and destination do
307 # define YYCOPY(To, From, Count) \
308 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
310 # define YYCOPY(To, From, Count) \
313 register YYSIZE_T yyi; \
314 for (yyi = 0; yyi < (Count); yyi++) \
315 (To)[yyi] = (From)[yyi]; \
321 /* Relocate STACK from its old location to the new one. The
322 local variables YYSIZE and YYSTACKSIZE give the old and new number of
323 elements in the stack, and YYPTR gives the new location of the
324 stack. Advance YYPTR to a properly aligned location for the next
326 # define YYSTACK_RELOCATE(Stack) \
329 YYSIZE_T yynewbytes; \
330 YYCOPY (&yyptr->Stack, Stack, yysize); \
331 Stack = &yyptr->Stack; \
332 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
333 yyptr += yynewbytes / sizeof (*yyptr); \
339 #if defined (__STDC__) || defined (__cplusplus)
340 typedef signed char yysigned_char;
342 typedef short yysigned_char;
345 /* YYFINAL -- State number of the termination state. */
347 /* YYLAST -- Last index in YYTABLE. */
350 /* YYNTOKENS -- Number of terminals. */
352 /* YYNNTS -- Number of nonterminals. */
354 /* YYNRULES -- Number of rules. */
356 /* YYNRULES -- Number of states. */
357 #define YYNSTATES 369
359 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
361 #define YYMAXUTOK 322
363 #define YYTRANSLATE(YYX) \
364 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
366 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
367 static const unsigned char yytranslate[] =
369 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
370 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
371 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
372 2, 2, 2, 76, 2, 2, 2, 2, 71, 2,
373 83, 84, 74, 72, 65, 73, 85, 75, 2, 2,
374 2, 2, 2, 2, 2, 2, 2, 2, 68, 82,
375 69, 66, 70, 67, 2, 2, 2, 2, 2, 2,
376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
381 2, 2, 2, 80, 2, 81, 2, 2, 2, 2,
382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
394 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
395 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
396 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
397 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
398 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
399 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
400 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
405 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
407 static const unsigned short yyprhs[] =
409 0, 0, 3, 5, 7, 10, 12, 15, 19, 21,
410 24, 26, 28, 30, 32, 34, 38, 39, 41, 44,
411 55, 64, 74, 85, 94, 104, 112, 118, 119, 121,
412 131, 137, 144, 154, 155, 157, 160, 163, 167, 172,
413 177, 182, 187, 194, 203, 210, 217, 226, 233, 242,
414 249, 264, 273, 277, 281, 285, 289, 293, 297, 302,
415 307, 312, 317, 322, 327, 333, 339, 344, 348, 353,
416 358, 363, 368, 373, 380, 389, 396, 399, 402, 404,
417 408, 410, 413, 415, 417, 419, 423, 428, 431, 436,
418 439, 442, 445, 449, 453, 457, 461, 465, 469, 473,
419 477, 481, 485, 489, 493, 497, 501, 505, 509, 513,
420 519, 521, 525, 527, 529, 531, 533, 535, 537, 539,
421 541, 545, 547, 549, 552, 555, 560, 565, 569, 573,
422 577, 581, 585, 591, 597, 603, 609, 615
425 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
426 static const yysigned_char yyrhs[] =
428 87, 0, -1, 88, -1, 89, -1, 88, 89, -1,
429 90, -1, 80, 81, -1, 80, 92, 81, -1, 82,
430 -1, 106, 82, -1, 93, -1, 95, -1, 97, -1,
431 98, -1, 106, -1, 91, 65, 106, -1, -1, 90,
432 -1, 92, 90, -1, 6, 83, 40, 83, 44, 84,
433 84, 90, 7, 90, -1, 6, 83, 40, 83, 44,
434 84, 84, 90, -1, 6, 83, 76, 40, 83, 44,
435 84, 84, 90, -1, 6, 83, 40, 83, 107, 84,
436 84, 90, 7, 90, -1, 6, 83, 40, 83, 107,
437 84, 84, 90, -1, 6, 83, 76, 40, 83, 107,
438 84, 84, 90, -1, 6, 83, 107, 84, 90, 7,
439 90, -1, 6, 83, 107, 84, 90, -1, -1, 107,
440 -1, 9, 83, 76, 40, 83, 44, 84, 84, 90,
441 -1, 9, 83, 107, 84, 90, -1, 8, 90, 9,
442 83, 107, 84, -1, 4, 83, 96, 82, 94, 82,
443 96, 84, 90, -1, -1, 91, -1, 5, 82, -1,
444 3, 82, -1, 21, 83, 84, -1, 24, 83, 103,
445 84, -1, 24, 83, 43, 84, -1, 18, 83, 107,
446 84, -1, 19, 83, 107, 84, -1, 25, 83, 107,
447 65, 107, 84, -1, 25, 83, 107, 65, 107, 65,
448 47, 84, -1, 26, 83, 43, 65, 43, 84, -1,
449 27, 83, 107, 65, 107, 84, -1, 27, 83, 107,
450 65, 107, 65, 47, 84, -1, 28, 83, 107, 65,
451 107, 84, -1, 28, 83, 107, 65, 107, 65, 47,
452 84, -1, 20, 83, 107, 65, 107, 84, -1, 20,
453 83, 107, 65, 107, 65, 107, 65, 107, 65, 107,
454 65, 107, 84, -1, 17, 83, 107, 65, 107, 65,
455 107, 84, -1, 32, 83, 84, -1, 33, 83, 84,
456 -1, 34, 83, 84, -1, 35, 83, 84, -1, 36,
457 83, 84, -1, 37, 83, 84, -1, 38, 83, 44,
458 84, -1, 38, 83, 43, 84, -1, 38, 83, 107,
459 84, -1, 39, 83, 107, 84, -1, 41, 83, 43,
460 84, -1, 41, 83, 107, 84, -1, 42, 83, 43,
461 84, 90, -1, 42, 83, 107, 84, 90, -1, 11,
462 83, 107, 84, -1, 12, 83, 84, -1, 13, 83,
463 107, 84, -1, 14, 83, 107, 84, -1, 15, 83,
464 107, 84, -1, 22, 83, 107, 84, -1, 23, 83,
465 107, 84, -1, 16, 83, 107, 65, 107, 84, -1,
466 30, 83, 107, 65, 107, 65, 107, 84, -1, 31,
467 83, 107, 65, 43, 84, -1, 105, 54, -1, 105,
468 55, -1, 100, -1, 83, 102, 84, -1, 44, -1,
469 73, 44, -1, 43, -1, 103, -1, 104, -1, 104,
470 85, 45, -1, 54, 104, 85, 45, -1, 54, 105,
471 -1, 55, 104, 85, 45, -1, 55, 105, -1, 73,
472 102, -1, 76, 102, -1, 105, 66, 102, -1, 102,
473 74, 102, -1, 102, 75, 102, -1, 102, 72, 102,
474 -1, 102, 73, 102, -1, 102, 71, 102, -1, 102,
475 69, 102, -1, 102, 70, 102, -1, 102, 49, 102,
476 -1, 102, 50, 102, -1, 102, 61, 102, -1, 102,
477 60, 102, -1, 102, 62, 102, -1, 102, 48, 102,
478 -1, 102, 51, 102, -1, 102, 52, 102, -1, 102,
479 53, 102, -1, 102, 67, 102, 68, 102, -1, 45,
480 -1, 104, 68, 45, -1, 10, -1, 85, -1, 75,
481 -1, 63, -1, 45, -1, 46, -1, 103, -1, 43,
482 -1, 83, 102, 84, -1, 101, -1, 99, -1, 54,
483 105, -1, 55, 105, -1, 54, 104, 85, 45, -1,
484 55, 104, 85, 45, -1, 105, 66, 102, -1, 105,
485 58, 102, -1, 105, 57, 102, -1, 105, 56, 102,
486 -1, 105, 59, 102, -1, 104, 85, 45, 66, 102,
487 -1, 104, 85, 45, 58, 102, -1, 104, 85, 45,
488 57, 102, -1, 104, 85, 45, 56, 102, -1, 104,
489 85, 45, 59, 102, -1, 102, -1
492 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
493 static const unsigned short yyrline[] =
495 0, 144, 144, 150, 151, 156, 160, 161, 162, 163,
496 164, 165, 166, 167, 171, 172, 176, 177, 178, 185,
497 201, 217, 229, 243, 257, 267, 278, 288, 289, 313,
498 328, 340, 348, 370, 371, 375, 383, 391, 395, 402,
499 409, 413, 418, 425, 432, 441, 448, 455, 462, 470,
500 477, 489, 498, 502, 506, 510, 514, 518, 522, 529,
501 536, 542, 548, 555, 559, 573, 586, 590, 594, 598,
502 602, 606, 610, 614, 619, 625, 634, 645, 659, 661,
503 664, 669, 675, 680, 686, 691, 699, 714, 724, 739,
504 749, 754, 758, 764, 769, 774, 779, 784, 789, 794,
505 799, 805, 810, 815, 819, 823, 827, 832, 836, 840,
506 852, 854, 861, 864, 867, 870, 873, 876, 881, 886,
507 891, 895, 897, 899, 907, 915, 928, 941, 945, 952,
508 959, 966, 973, 982, 995, 1008, 1021, 1036
512 #if YYDEBUG || YYERROR_VERBOSE
513 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
514 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
515 static const char *const yytname[] =
517 "$end", "error", "$undefined", "BREAK", "FOR", "CONTINUE", "IF", "ELSE",
518 "DO", "WHILE", "THIS", "EVAL", "TIME", "RANDOM", "LENGTH", "INT",
519 "CONCAT", "DUPLICATECLIP", "REMOVECLIP", "TRACE", "STARTDRAG",
520 "STOPDRAG", "ORD", "CHR", "CALLFRAME", "GETURL", "GETURL1", "LOADMOVIE",
521 "LOADVARIABLES", "POSTURL", "SUBSTR", "GETPROPERTY", "NEXTFRAME",
522 "PREVFRAME", "PLAY", "STOP", "TOGGLEQUALITY", "STOPSOUNDS", "GOTOFRAME",
523 "GOTOANDPLAY", "FRAMELOADED", "SETTARGET", "TELLTARGET", "STRING",
524 "NUMBER", "IDENTIFIER", "PATH", "GETURL_METHOD", "\"==\"", "\"<=\"",
525 "\">=\"", "\"!=\"", "\"&&\"", "\"||\"", "\"++\"", "\"--\"", "\"+=\"",
526 "\"/=\"", "\"*=\"", "\"-=\"", "\"===\"", "\"!==\"", "\"<=>\"", "\"..\"",
527 "\"end\"", "','", "'='", "'?'", "':'", "'<'", "'>'", "'&'", "'+'",
528 "'-'", "'*'", "'/'", "'!'", "UMINUS", "POSTFIX", "NEGATE", "'{'", "'}'",
529 "';'", "'('", "')'", "'.'", "$accept", "program", "elems", "elem",
530 "stmt", "assign_stmts", "statements", "if_stmt", "expr_opt",
531 "iter_stmt", "assign_stmts_opt", "cont_stmt", "break_stmt",
532 "void_function_call", "function_call", "pf_expr", "rhs_expr",
533 "variable", "sprite", "lhs_expr", "assign_stmt", "expr", 0
538 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
540 static const unsigned short yytoknum[] =
542 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
543 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
544 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
545 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
546 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
547 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
548 315, 316, 317, 318, 319, 44, 61, 63, 58, 60,
549 62, 38, 43, 45, 42, 47, 33, 320, 321, 322,
550 123, 125, 59, 40, 41, 46
554 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
555 static const unsigned char yyr1[] =
557 0, 86, 87, 88, 88, 89, 90, 90, 90, 90,
558 90, 90, 90, 90, 91, 91, 92, 92, 92, 93,
559 93, 93, 93, 93, 93, 93, 93, 94, 94, 95,
560 95, 95, 95, 96, 96, 97, 98, 99, 99, 99,
561 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
562 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
563 99, 99, 99, 99, 99, 99, 100, 100, 100, 100,
564 100, 100, 100, 100, 100, 100, 101, 101, 102, 102,
565 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
566 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
567 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
568 103, 103, 104, 104, 104, 104, 104, 104, 105, 105,
569 105, 106, 106, 106, 106, 106, 106, 106, 106, 106,
570 106, 106, 106, 106, 106, 106, 106, 107
573 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
574 static const unsigned char yyr2[] =
576 0, 2, 1, 1, 2, 1, 2, 3, 1, 2,
577 1, 1, 1, 1, 1, 3, 0, 1, 2, 10,
578 8, 9, 10, 8, 9, 7, 5, 0, 1, 9,
579 5, 6, 9, 0, 1, 2, 2, 3, 4, 4,
580 4, 4, 6, 8, 6, 6, 8, 6, 8, 6,
581 14, 8, 3, 3, 3, 3, 3, 3, 4, 4,
582 4, 4, 4, 4, 5, 5, 4, 3, 4, 4,
583 4, 4, 4, 6, 8, 6, 2, 2, 1, 3,
584 1, 2, 1, 1, 1, 3, 4, 2, 4, 2,
585 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
586 3, 3, 3, 3, 3, 3, 3, 3, 3, 5,
587 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
588 3, 1, 1, 2, 2, 4, 4, 3, 3, 3,
589 3, 3, 5, 5, 5, 5, 5, 1
592 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
593 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
594 means the default is an error. */
595 static const unsigned char yydefact[] =
597 0, 0, 0, 0, 0, 0, 0, 112, 0, 0,
598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
599 0, 0, 0, 0, 0, 0, 0, 0, 119, 110,
600 117, 0, 0, 115, 114, 0, 8, 0, 113, 0,
601 2, 3, 5, 10, 11, 12, 13, 122, 121, 118,
602 0, 0, 0, 36, 33, 35, 0, 0, 0, 0,
603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
605 123, 0, 124, 6, 17, 0, 0, 0, 0, 0,
606 0, 0, 0, 0, 0, 0, 82, 80, 0, 0,
607 0, 0, 0, 78, 0, 83, 84, 0, 1, 4,
608 0, 0, 76, 77, 0, 0, 0, 0, 0, 9,
609 34, 0, 14, 0, 0, 137, 0, 0, 0, 0,
610 0, 0, 0, 0, 37, 0, 0, 0, 0, 0,
611 0, 0, 52, 53, 54, 55, 56, 57, 82, 80,
612 0, 0, 82, 0, 82, 0, 0, 0, 7, 18,
613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
614 0, 87, 0, 89, 80, 90, 91, 0, 0, 0,
615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
616 0, 0, 0, 0, 0, 120, 0, 0, 111, 0,
617 130, 129, 128, 131, 127, 0, 27, 0, 0, 0,
618 0, 0, 0, 0, 40, 41, 0, 39, 38, 0,
619 0, 0, 0, 59, 58, 60, 61, 62, 63, 0,
620 0, 125, 126, 0, 67, 0, 0, 0, 0, 0,
621 0, 0, 0, 0, 0, 79, 105, 100, 101, 106,
622 107, 108, 103, 102, 104, 0, 98, 99, 97, 95,
623 96, 93, 94, 85, 92, 0, 0, 0, 0, 0,
624 15, 0, 28, 80, 0, 0, 26, 0, 0, 30,
625 0, 0, 0, 0, 0, 0, 64, 65, 66, 68,
626 69, 70, 0, 71, 72, 0, 0, 86, 88, 0,
627 135, 134, 133, 136, 132, 33, 0, 0, 80, 0,
628 0, 31, 0, 0, 0, 49, 0, 42, 44, 0,
629 45, 0, 47, 0, 0, 0, 109, 0, 0, 0,
630 0, 0, 25, 0, 0, 0, 0, 0, 0, 73,
631 0, 75, 0, 20, 23, 0, 0, 0, 51, 0,
632 43, 46, 48, 0, 32, 0, 0, 21, 24, 29,
633 0, 74, 19, 22, 0, 0, 0, 0, 50
636 /* YYDEFGOTO[NTERM-NUM]. */
637 static const short yydefgoto[] =
639 -1, 39, 40, 41, 42, 120, 85, 43, 271, 44,
640 121, 45, 46, 47, 103, 48, 125, 105, 106, 107,
644 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
646 #define YYPACT_NINF -70
647 static const short yypact[] =
649 780, -69, -64, -60, -49, 780, -28, -70, -22, -14,
650 -2, 3, 4, 11, 13, 17, 19, 20, 23, 25,
651 26, 29, 30, 31, 33, 47, 54, 56, -70, 16,
652 -70, 32, 32, -70, -70, 614, -70, 422, -70, 72,
653 780, -70, -70, -70, -70, -70, -70, -70, -70, -70,
654 -12, 65, 1, -70, 108, -70, 826, 80, 994, 422,
655 422, 422, 422, 64, 5, 422, 118, 422, 422, 81,
656 82, 86, 88, 89, 104, 1020, 422, 1076, 1102, -11,
657 -70, -9, -70, -70, -70, 697, 106, 109, 117, 119,
658 120, 121, 123, 125, 127, 130, 98, -70, 32, 32,
659 1158, 422, 422, -70, 516, 135, -6, 141, -70, -70,
660 145, 169, -70, -70, 422, 422, 422, 422, 422, -70,
661 151, 137, -70, 139, 882, 613, 136, 140, 938, 142,
662 160, 143, 144, 166, -70, 148, 149, 170, 172, 174,
663 175, 178, -70, -70, -70, -70, -70, -70, -48, 150,
664 161, 162, -21, 163, -13, 164, 199, 204, -70, -70,
665 422, 167, 422, 422, 422, 422, 422, 422, 422, 422,
666 -3, -70, -1, -70, -70, -70, -70, 1257, 422, 422,
667 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
668 422, 422, 422, 422, 422, -70, 205, 422, -70, 128,
669 613, 613, 613, 613, 613, 108, 422, 1184, 171, 780,
670 422, 173, 780, 422, -70, -70, 422, -70, -70, 422,
671 210, 422, 422, -70, -70, -70, -70, -70, -70, 780,
672 780, -70, -70, 176, -70, 177, 179, 180, 190, 182,
673 188, 192, 193, 214, 228, 212, -46, 124, 124, -46,
674 696, 696, -46, -46, 124, 107, 124, 124, -65, 18,
675 18, -70, -70, -70, 613, 422, 422, 422, 422, 422,
676 -70, 197, -70, 191, 196, 1240, 274, 206, 244, -70,
677 224, -63, -51, 207, -45, -35, -70, -70, -70, -70,
678 -70, -70, 422, -70, -70, 422, 249, -70, -70, 422,
679 613, 613, 613, 613, 613, 108, 211, 213, 215, 216,
680 780, -70, 217, 422, 422, -70, 246, -70, -70, 247,
681 -70, 251, -70, 218, 231, 219, 613, 220, 780, 780,
682 222, 223, -70, 225, 229, 243, 230, 234, 235, -70,
683 422, -70, 780, 305, 308, 780, 780, 780, -70, 422,
684 -70, -70, -70, 236, -70, 780, 780, -70, -70, -70,
685 256, -70, -70, -70, 422, 258, 422, 240, -70
688 /* YYPGOTO[NTERM-NUM]. */
689 static const short yypgoto[] =
691 -70, -70, -70, 285, 53, -70, -70, -70, -70, -70,
692 21, -70, -70, -70, -70, -70, 346, 0, 6, 12,
696 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
697 positive, shift that token. If negative, reduce the rule which
698 number is the opposite. If zero, do what YYDEFACT says.
699 If YYTABLE_NINF, syntax error. */
700 #define YYTABLE_NINF -121
701 static const short yytable[] =
703 49, 122, 314, 179, 180, 49, 50, 191, 192, 193,
704 194, 50, 51, 53, 316, 7, 186, 51, -119, 54,
705 319, 315, 55, 188, 189, 190, 191, 192, 193, 194,
706 321, 49, 49, 317, 56, 49, 223, 79, 81, 320,
707 49, 50, 7, 80, 82, -119, 50, 51, 135, 322,
708 29, 30, 51, -119, 49, 58, 110, 110, 57, 110,
709 50, 59, 110, 227, 136, 110, 51, 110, 33, 60,
710 137, 229, 108, 111, 156, 28, 157, 29, 30, 196,
711 34, 61, 243, 119, 244, 49, 62, 63, 84, 127,
712 38, 50, 193, 194, 64, 33, 65, 51, 49, 49,
713 66, -116, 67, 68, 170, 172, 69, 34, 70, 71,
714 171, 173, 72, 73, 74, 37, 75, 38, 7, 112,
715 113, 114, 115, 116, 117, 8, 9, 10, 11, 12,
716 76, 118, 13, 14, 15, 16, 17, 77, 159, 78,
717 18, 19, 20, 21, 22, 23, 24, 25, 134, 26,
718 27, 28, 270, 29, 30, 178, 179, 180, 181, 182,
719 183, 139, 31, 32, -119, 142, 143, 184, 185, 186,
720 144, 33, 145, 146, 187, 299, 188, 189, 190, 191,
721 192, 193, 194, 34, 265, 266, 267, 268, 147, 160,
722 198, 37, 161, 38, 269, 190, 191, 192, 193, 194,
723 162, -118, 163, 164, 165, 49, 166, 197, 167, 49,
724 168, 50, 49, 169, 199, 50, 205, 51, 50, 206,
725 209, 51, 207, 210, 51, 213, 212, 214, 215, 49,
726 49, 216, 217, 218, 224, 50, 50, 219, 110, 220,
727 221, 51, 51, 222, 231, 225, 226, 228, 230, 232,
728 263, 234, 122, 283, 275, 292, 278, 295, 296, 297,
729 288, 289, 276, 290, 291, 279, 293, 129, 130, 131,
730 132, 133, 294, 298, 138, 306, 140, 141, -120, 305,
731 307, 310, 286, 287, 150, 151, 153, 155, 312, 313,
732 311, 318, 325, 336, 337, 328, 340, 329, 338, 330,
733 331, 333, 339, 341, 342, 49, 345, 346, 349, 347,
734 49, 50, 355, 348, 350, 356, 50, 51, 351, 352,
735 361, 364, 51, 366, 368, 109, 327, 0, 49, 49,
736 0, 0, 0, 0, 50, 50, 0, 0, 0, 0,
737 51, 51, 49, 0, 0, 49, 49, 49, 50, 0,
738 0, 50, 50, 50, 51, 49, 49, 51, 51, 51,
739 0, 50, 50, 332, 0, 0, 0, 51, 51, 233,
740 0, 235, 236, 237, 238, 239, 240, 241, 242, 0,
741 0, 343, 344, 104, 0, 0, 0, 0, 0, 0,
742 0, 0, 0, 0, 0, 354, 0, 0, 357, 358,
743 359, 0, 0, 0, 0, 0, 0, 0, 362, 363,
744 0, 0, 0, 0, 0, 272, 274, 0, 0, 277,
745 0, 0, 280, 0, 0, 281, 0, 0, 282, 0,
746 284, 285, 7, 86, 87, 88, 89, 90, 91, 0,
747 0, 0, 0, 0, 92, 93, 175, 176, 177, 0,
748 0, 0, 94, 95, 0, 0, 0, 0, 0, 0,
749 200, 201, 202, 203, 204, 96, 97, 29, 30, 0,
750 176, 0, 0, 0, 176, 0, 98, 99, 0, 0,
751 0, 0, 0, 0, 309, 33, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 100, 0, 34, 101, 0,
753 0, 323, 0, 0, 324, 102, 0, 38, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 334, 335, 246, 247, 248, 249, 250, 251,
756 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
757 262, 0, 0, 264, 0, 0, 0, 0, 0, 353,
758 0, 0, 0, 0, 0, 0, 0, 0, 360, 0,
759 0, 0, 0, 0, 178, 179, 180, 181, 182, 183,
760 0, 0, 0, 365, 0, 367, 184, 185, 186, 0,
761 0, 0, 0, 187, 0, 188, 189, 190, 191, 192,
762 193, 194, 0, 0, 0, 0, 0, 0, 0, 0,
763 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 300, 301, 302, 303, 304, 0, 1, 2, 3,
765 4, 0, 5, 6, 7, 0, 0, 0, 0, 0,
766 0, 8, 9, 10, 11, 12, 0, 0, 13, 14,
767 15, 16, 17, 0, 0, 326, 18, 19, 20, 21,
768 22, 23, 24, 25, 0, 26, 27, 28, 0, 29,
769 30, 178, 179, 180, 181, 182, 183, 0, 31, 32,
770 0, 0, 0, 184, 185, 186, 0, 33, 0, 0,
771 187, 0, 188, 189, 190, 191, 192, 193, 194, 34,
772 0, 0, 0, 0, 35, 83, 36, 37, 0, 38,
773 1, 2, 3, 4, 0, 5, 6, 7, 0, 0,
774 0, 0, 0, 0, 8, 9, 10, 11, 12, 0,
775 0, 13, 14, 15, 16, 17, 0, 0, 0, 18,
776 19, 20, 21, 22, 23, 24, 25, 0, 26, 27,
777 28, 0, 29, 30, 178, 179, 180, 181, 0, 0,
778 0, 31, 32, 0, 0, 0, 184, 185, 186, 0,
779 33, 0, 0, 0, 0, 188, 189, 190, 191, 192,
780 193, 194, 34, 0, 0, 0, 0, 35, 158, 36,
781 37, 0, 38, 1, 2, 3, 4, 0, 5, 6,
782 7, 0, 0, 0, 0, 0, 0, 8, 9, 10,
783 11, 12, 0, 0, 13, 14, 15, 16, 17, 0,
784 0, 0, 18, 19, 20, 21, 22, 23, 24, 25,
785 0, 26, 27, 28, 0, 29, 30, 0, 0, 0,
786 0, 0, 0, 0, 31, 32, 7, 86, 87, 88,
787 89, 90, 91, 33, 0, 0, 0, 0, 92, 93,
788 0, 0, 0, 0, 0, 34, 94, 95, 0, 0,
789 35, 0, 36, 37, 0, 38, 123, 0, 0, 96,
790 97, 29, 30, 0, 0, 0, 0, 0, 0, 0,
791 98, 99, 0, 0, 0, 0, 0, 0, 0, 33,
792 0, 0, 7, 86, 87, 88, 89, 90, 91, 100,
793 0, 34, 124, 0, 92, 93, 0, 0, 0, 102,
794 0, 38, 94, 95, 0, 0, 0, 0, 0, 0,
795 0, 0, 208, 0, 0, 96, 97, 29, 30, 0,
796 0, 0, 0, 0, 0, 0, 98, 99, 0, 0,
797 0, 0, 0, 0, 0, 33, 0, 0, 7, 86,
798 87, 88, 89, 90, 91, 100, 0, 34, 101, 0,
799 92, 93, 0, 0, 0, 102, 0, 38, 94, 95,
800 0, 0, 0, 0, 0, 0, 0, 0, 211, 0,
801 0, 96, 97, 29, 30, 0, 0, 0, 0, 0,
802 0, 0, 98, 99, 0, 0, 0, 0, 0, 0,
803 0, 33, 0, 0, 7, 86, 87, 88, 89, 90,
804 91, 100, 0, 34, 101, 0, 92, 93, 0, 0,
805 0, 102, 0, 38, 94, 95, 0, 0, 0, 0,
806 7, 86, 87, 88, 89, 90, 91, 96, 97, 29,
807 30, 0, 92, 93, 0, 0, 0, 0, 98, 99,
808 94, 95, 0, 0, 0, 0, 0, 33, 0, 0,
809 0, 0, 0, 148, 149, 29, 30, 100, 0, 34,
810 128, 0, 0, 0, 98, 99, 0, 102, 0, 38,
811 0, 0, 0, 33, 0, 0, 7, 86, 87, 88,
812 89, 90, 91, 100, 0, 34, 101, 0, 92, 93,
813 0, 0, 0, 102, 0, 38, 94, 95, 0, 0,
814 0, 0, 7, 86, 87, 88, 89, 90, 91, 152,
815 97, 29, 30, 0, 92, 93, 0, 0, 0, 0,
816 98, 99, 94, 95, 0, 0, 0, 0, 0, 33,
817 0, 0, 0, 0, 0, 154, 97, 29, 30, 100,
818 0, 34, 101, 0, 0, 0, 98, 99, 0, 102,
819 0, 38, 0, 0, 0, 33, 0, 0, 7, 86,
820 87, 88, 89, 90, 91, 100, 0, 34, 101, 0,
821 92, 93, 0, 0, 0, 102, 0, 38, 94, 95,
822 0, 0, 0, 0, 7, 86, 87, 88, 89, 90,
823 91, 96, 174, 29, 30, 0, 92, 93, 0, 0,
824 0, 0, 98, 99, 94, 95, 0, 0, 0, 0,
825 0, 33, 0, 0, 0, 0, 0, 96, 273, 29,
826 30, 100, 0, 34, 101, 0, 0, 0, 98, 99,
827 0, 102, 0, 38, 0, 0, 0, 33, 0, 0,
828 7, 86, 87, 88, 89, 90, 91, 100, 0, 34,
829 101, 0, 92, 93, 0, 0, 0, 102, 0, 38,
830 94, 95, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 96, 308, 29, 30, 0, 0, 0,
832 0, 0, 0, 0, 98, 99, 0, 0, 0, 0,
833 0, 0, 0, 33, 0, 178, 179, 180, 181, 182,
834 183, 0, 0, 100, 0, 34, 101, 184, 185, 186,
835 0, 0, 0, 102, 187, 38, 188, 189, 190, 191,
836 192, 193, 194, 0, 0, 0, 0, 0, 0, 0,
840 static const short yycheck[] =
842 0, 54, 65, 49, 50, 5, 0, 72, 73, 74,
843 75, 5, 0, 82, 65, 10, 62, 5, 66, 83,
844 65, 84, 82, 69, 70, 71, 72, 73, 74, 75,
845 65, 31, 32, 84, 83, 35, 84, 31, 32, 84,
846 40, 35, 10, 31, 32, 66, 40, 35, 43, 84,
847 45, 46, 40, 66, 54, 83, 68, 68, 5, 68,
848 54, 83, 68, 84, 64, 68, 54, 68, 63, 83,
849 64, 84, 0, 85, 85, 43, 85, 45, 46, 85,
850 75, 83, 85, 82, 85, 85, 83, 83, 35, 9,
851 85, 85, 74, 75, 83, 63, 83, 85, 98, 99,
852 83, 85, 83, 83, 98, 99, 83, 75, 83, 83,
853 98, 99, 83, 83, 83, 83, 83, 85, 10, 54,
854 55, 56, 57, 58, 59, 17, 18, 19, 20, 21,
855 83, 66, 24, 25, 26, 27, 28, 83, 85, 83,
856 32, 33, 34, 35, 36, 37, 38, 39, 84, 41,
857 42, 43, 205, 45, 46, 48, 49, 50, 51, 52,
858 53, 43, 54, 55, 66, 84, 84, 60, 61, 62,
859 84, 63, 84, 84, 67, 68, 69, 70, 71, 72,
860 73, 74, 75, 75, 56, 57, 58, 59, 84, 83,
861 45, 83, 83, 85, 66, 71, 72, 73, 74, 75,
862 83, 66, 83, 83, 83, 205, 83, 66, 83, 209,
863 83, 205, 212, 83, 45, 209, 65, 205, 212, 82,
864 84, 209, 83, 83, 212, 65, 84, 84, 84, 229,
865 230, 65, 84, 84, 84, 229, 230, 65, 68, 65,
866 65, 229, 230, 65, 45, 84, 84, 84, 84, 45,
867 45, 84, 305, 43, 83, 65, 83, 65, 65, 45,
868 84, 84, 209, 84, 84, 212, 84, 58, 59, 60,
869 61, 62, 84, 45, 65, 84, 67, 68, 66, 82,
870 84, 7, 229, 230, 75, 76, 77, 78, 44, 65,
871 84, 84, 43, 47, 47, 84, 65, 84, 47, 84,
872 84, 84, 84, 84, 84, 305, 84, 84, 65, 84,
873 310, 305, 7, 84, 84, 7, 310, 305, 84, 84,
874 84, 65, 310, 65, 84, 40, 305, -1, 328, 329,
875 -1, -1, -1, -1, 328, 329, -1, -1, -1, -1,
876 328, 329, 342, -1, -1, 345, 346, 347, 342, -1,
877 -1, 345, 346, 347, 342, 355, 356, 345, 346, 347,
878 -1, 355, 356, 310, -1, -1, -1, 355, 356, 160,
879 -1, 162, 163, 164, 165, 166, 167, 168, 169, -1,
880 -1, 328, 329, 37, -1, -1, -1, -1, -1, -1,
881 -1, -1, -1, -1, -1, 342, -1, -1, 345, 346,
882 347, -1, -1, -1, -1, -1, -1, -1, 355, 356,
883 -1, -1, -1, -1, -1, 206, 207, -1, -1, 210,
884 -1, -1, 213, -1, -1, 216, -1, -1, 219, -1,
885 221, 222, 10, 11, 12, 13, 14, 15, 16, -1,
886 -1, -1, -1, -1, 22, 23, 100, 101, 102, -1,
887 -1, -1, 30, 31, -1, -1, -1, -1, -1, -1,
888 114, 115, 116, 117, 118, 43, 44, 45, 46, -1,
889 124, -1, -1, -1, 128, -1, 54, 55, -1, -1,
890 -1, -1, -1, -1, 275, 63, -1, -1, -1, -1,
891 -1, -1, -1, -1, -1, 73, -1, 75, 76, -1,
892 -1, 292, -1, -1, 295, 83, -1, 85, -1, -1,
893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
894 -1, -1, 313, 314, 178, 179, 180, 181, 182, 183,
895 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
896 194, -1, -1, 197, -1, -1, -1, -1, -1, 340,
897 -1, -1, -1, -1, -1, -1, -1, -1, 349, -1,
898 -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
899 -1, -1, -1, 364, -1, 366, 60, 61, 62, -1,
900 -1, -1, -1, 67, -1, 69, 70, 71, 72, 73,
901 74, 75, -1, -1, -1, -1, -1, -1, -1, -1,
902 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
903 -1, 265, 266, 267, 268, 269, -1, 3, 4, 5,
904 6, -1, 8, 9, 10, -1, -1, -1, -1, -1,
905 -1, 17, 18, 19, 20, 21, -1, -1, 24, 25,
906 26, 27, 28, -1, -1, 299, 32, 33, 34, 35,
907 36, 37, 38, 39, -1, 41, 42, 43, -1, 45,
908 46, 48, 49, 50, 51, 52, 53, -1, 54, 55,
909 -1, -1, -1, 60, 61, 62, -1, 63, -1, -1,
910 67, -1, 69, 70, 71, 72, 73, 74, 75, 75,
911 -1, -1, -1, -1, 80, 81, 82, 83, -1, 85,
912 3, 4, 5, 6, -1, 8, 9, 10, -1, -1,
913 -1, -1, -1, -1, 17, 18, 19, 20, 21, -1,
914 -1, 24, 25, 26, 27, 28, -1, -1, -1, 32,
915 33, 34, 35, 36, 37, 38, 39, -1, 41, 42,
916 43, -1, 45, 46, 48, 49, 50, 51, -1, -1,
917 -1, 54, 55, -1, -1, -1, 60, 61, 62, -1,
918 63, -1, -1, -1, -1, 69, 70, 71, 72, 73,
919 74, 75, 75, -1, -1, -1, -1, 80, 81, 82,
920 83, -1, 85, 3, 4, 5, 6, -1, 8, 9,
921 10, -1, -1, -1, -1, -1, -1, 17, 18, 19,
922 20, 21, -1, -1, 24, 25, 26, 27, 28, -1,
923 -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
924 -1, 41, 42, 43, -1, 45, 46, -1, -1, -1,
925 -1, -1, -1, -1, 54, 55, 10, 11, 12, 13,
926 14, 15, 16, 63, -1, -1, -1, -1, 22, 23,
927 -1, -1, -1, -1, -1, 75, 30, 31, -1, -1,
928 80, -1, 82, 83, -1, 85, 40, -1, -1, 43,
929 44, 45, 46, -1, -1, -1, -1, -1, -1, -1,
930 54, 55, -1, -1, -1, -1, -1, -1, -1, 63,
931 -1, -1, 10, 11, 12, 13, 14, 15, 16, 73,
932 -1, 75, 76, -1, 22, 23, -1, -1, -1, 83,
933 -1, 85, 30, 31, -1, -1, -1, -1, -1, -1,
934 -1, -1, 40, -1, -1, 43, 44, 45, 46, -1,
935 -1, -1, -1, -1, -1, -1, 54, 55, -1, -1,
936 -1, -1, -1, -1, -1, 63, -1, -1, 10, 11,
937 12, 13, 14, 15, 16, 73, -1, 75, 76, -1,
938 22, 23, -1, -1, -1, 83, -1, 85, 30, 31,
939 -1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
940 -1, 43, 44, 45, 46, -1, -1, -1, -1, -1,
941 -1, -1, 54, 55, -1, -1, -1, -1, -1, -1,
942 -1, 63, -1, -1, 10, 11, 12, 13, 14, 15,
943 16, 73, -1, 75, 76, -1, 22, 23, -1, -1,
944 -1, 83, -1, 85, 30, 31, -1, -1, -1, -1,
945 10, 11, 12, 13, 14, 15, 16, 43, 44, 45,
946 46, -1, 22, 23, -1, -1, -1, -1, 54, 55,
947 30, 31, -1, -1, -1, -1, -1, 63, -1, -1,
948 -1, -1, -1, 43, 44, 45, 46, 73, -1, 75,
949 76, -1, -1, -1, 54, 55, -1, 83, -1, 85,
950 -1, -1, -1, 63, -1, -1, 10, 11, 12, 13,
951 14, 15, 16, 73, -1, 75, 76, -1, 22, 23,
952 -1, -1, -1, 83, -1, 85, 30, 31, -1, -1,
953 -1, -1, 10, 11, 12, 13, 14, 15, 16, 43,
954 44, 45, 46, -1, 22, 23, -1, -1, -1, -1,
955 54, 55, 30, 31, -1, -1, -1, -1, -1, 63,
956 -1, -1, -1, -1, -1, 43, 44, 45, 46, 73,
957 -1, 75, 76, -1, -1, -1, 54, 55, -1, 83,
958 -1, 85, -1, -1, -1, 63, -1, -1, 10, 11,
959 12, 13, 14, 15, 16, 73, -1, 75, 76, -1,
960 22, 23, -1, -1, -1, 83, -1, 85, 30, 31,
961 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15,
962 16, 43, 44, 45, 46, -1, 22, 23, -1, -1,
963 -1, -1, 54, 55, 30, 31, -1, -1, -1, -1,
964 -1, 63, -1, -1, -1, -1, -1, 43, 44, 45,
965 46, 73, -1, 75, 76, -1, -1, -1, 54, 55,
966 -1, 83, -1, 85, -1, -1, -1, 63, -1, -1,
967 10, 11, 12, 13, 14, 15, 16, 73, -1, 75,
968 76, -1, 22, 23, -1, -1, -1, 83, -1, 85,
969 30, 31, -1, -1, -1, -1, -1, -1, -1, -1,
970 -1, -1, -1, 43, 44, 45, 46, -1, -1, -1,
971 -1, -1, -1, -1, 54, 55, -1, -1, -1, -1,
972 -1, -1, -1, 63, -1, 48, 49, 50, 51, 52,
973 53, -1, -1, 73, -1, 75, 76, 60, 61, 62,
974 -1, -1, -1, 83, 67, 85, 69, 70, 71, 72,
975 73, 74, 75, -1, -1, -1, -1, -1, -1, -1,
979 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
980 symbol of state STATE-NUM. */
981 static const unsigned char yystos[] =
983 0, 3, 4, 5, 6, 8, 9, 10, 17, 18,
984 19, 20, 21, 24, 25, 26, 27, 28, 32, 33,
985 34, 35, 36, 37, 38, 39, 41, 42, 43, 45,
986 46, 54, 55, 63, 75, 80, 82, 83, 85, 87,
987 88, 89, 90, 93, 95, 97, 98, 99, 101, 103,
988 104, 105, 106, 82, 83, 82, 83, 90, 83, 83,
989 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
990 83, 83, 83, 83, 83, 83, 83, 83, 83, 104,
991 105, 104, 105, 81, 90, 92, 11, 12, 13, 14,
992 15, 16, 22, 23, 30, 31, 43, 44, 54, 55,
993 73, 76, 83, 100, 102, 103, 104, 105, 0, 89,
994 68, 85, 54, 55, 56, 57, 58, 59, 66, 82,
995 91, 96, 106, 40, 76, 102, 107, 9, 76, 107,
996 107, 107, 107, 107, 84, 43, 103, 104, 107, 43,
997 107, 107, 84, 84, 84, 84, 84, 84, 43, 44,
998 107, 107, 43, 107, 43, 107, 85, 85, 81, 90,
999 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
1000 104, 105, 104, 105, 44, 102, 102, 102, 48, 49,
1001 50, 51, 52, 53, 60, 61, 62, 67, 69, 70,
1002 71, 72, 73, 74, 75, 84, 85, 66, 45, 45,
1003 102, 102, 102, 102, 102, 65, 82, 83, 40, 84,
1004 83, 40, 84, 65, 84, 84, 65, 84, 84, 65,
1005 65, 65, 65, 84, 84, 84, 84, 84, 84, 84,
1006 84, 45, 45, 107, 84, 107, 107, 107, 107, 107,
1007 107, 107, 107, 85, 85, 84, 102, 102, 102, 102,
1008 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
1009 102, 102, 102, 45, 102, 56, 57, 58, 59, 66,
1010 106, 94, 107, 44, 107, 83, 90, 107, 83, 90,
1011 107, 107, 107, 43, 107, 107, 90, 90, 84, 84,
1012 84, 84, 65, 84, 84, 65, 65, 45, 45, 68,
1013 102, 102, 102, 102, 102, 82, 84, 84, 44, 107,
1014 7, 84, 44, 65, 65, 84, 65, 84, 84, 65,
1015 84, 65, 84, 107, 107, 43, 102, 96, 84, 84,
1016 84, 84, 90, 84, 107, 107, 47, 47, 47, 84,
1017 65, 84, 84, 90, 90, 84, 84, 84, 84, 65,
1018 84, 84, 84, 107, 90, 7, 7, 90, 90, 90,
1019 107, 84, 90, 90, 65, 107, 65, 107, 84
1022 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1023 # define YYSIZE_T __SIZE_TYPE__
1025 #if ! defined (YYSIZE_T) && defined (size_t)
1026 # define YYSIZE_T size_t
1028 #if ! defined (YYSIZE_T)
1029 # if defined (__STDC__) || defined (__cplusplus)
1030 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1031 # define YYSIZE_T size_t
1034 #if ! defined (YYSIZE_T)
1035 # define YYSIZE_T unsigned int
1038 #define yyerrok (yyerrstatus = 0)
1039 #define yyclearin (yychar = YYEMPTY)
1040 #define YYEMPTY (-2)
1043 #define YYACCEPT goto yyacceptlab
1044 #define YYABORT goto yyabortlab
1045 #define YYERROR goto yyerrlab1
1048 /* Like YYERROR except do call yyerror. This remains here temporarily
1049 to ease the transition to the new meaning of YYERROR, for GCC.
1050 Once GCC version 2 has supplanted version 1, this can go. */
1052 #define YYFAIL goto yyerrlab
1054 #define YYRECOVERING() (!!yyerrstatus)
1056 #define YYBACKUP(Token, Value) \
1058 if (yychar == YYEMPTY && yylen == 1) \
1062 yytoken = YYTRANSLATE (yychar); \
1068 yyerror ("syntax error: cannot back up");\
1074 #define YYERRCODE 256
1076 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1079 #ifndef YYLLOC_DEFAULT
1080 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1081 Current.first_line = Rhs[1].first_line; \
1082 Current.first_column = Rhs[1].first_column; \
1083 Current.last_line = Rhs[N].last_line; \
1084 Current.last_column = Rhs[N].last_column;
1087 /* YYLEX -- calling `yylex' with the right arguments. */
1090 # define YYLEX yylex (YYLEX_PARAM)
1092 # define YYLEX yylex ()
1095 /* Enable debugging if requested. */
1099 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1100 # define YYFPRINTF fprintf
1103 # define YYDPRINTF(Args) \
1109 # define YYDSYMPRINT(Args) \
1115 # define YYDSYMPRINTF(Title, Token, Value, Location) \
1119 YYFPRINTF (stderr, "%s ", Title); \
1120 yysymprint (stderr, \
1122 YYFPRINTF (stderr, "\n"); \
1126 /*------------------------------------------------------------------.
1127 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1129 `------------------------------------------------------------------*/
1131 #if defined (__STDC__) || defined (__cplusplus)
1133 yy_stack_print (short *bottom, short *top)
1136 yy_stack_print (bottom, top)
1141 YYFPRINTF (stderr, "Stack now");
1142 for (/* Nothing. */; bottom <= top; ++bottom)
1143 YYFPRINTF (stderr, " %d", *bottom);
1144 YYFPRINTF (stderr, "\n");
1147 # define YY_STACK_PRINT(Bottom, Top) \
1150 yy_stack_print ((Bottom), (Top)); \
1154 /*------------------------------------------------.
1155 | Report that the YYRULE is going to be reduced. |
1156 `------------------------------------------------*/
1158 #if defined (__STDC__) || defined (__cplusplus)
1160 yy_reduce_print (int yyrule)
1163 yy_reduce_print (yyrule)
1168 unsigned int yylineno = yyrline[yyrule];
1169 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
1170 yyrule - 1, yylineno);
1171 /* Print the symbols being reduced, and their result. */
1172 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1173 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
1174 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
1177 # define YY_REDUCE_PRINT(Rule) \
1180 yy_reduce_print (Rule); \
1183 /* Nonzero means print parse trace. It is left uninitialized so that
1184 multiple parsers can coexist. */
1186 #else /* !YYDEBUG */
1187 # define YYDPRINTF(Args)
1188 # define YYDSYMPRINT(Args)
1189 # define YYDSYMPRINTF(Title, Token, Value, Location)
1190 # define YY_STACK_PRINT(Bottom, Top)
1191 # define YY_REDUCE_PRINT(Rule)
1192 #endif /* !YYDEBUG */
1195 /* YYINITDEPTH -- initial size of the parser's stacks. */
1197 # define YYINITDEPTH 200
1200 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1201 if the built-in stack extension method is used).
1203 Do not make this value too large; the results are undefined if
1204 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1205 evaluated with infinite-precision integer arithmetic. */
1212 # define YYMAXDEPTH 10000
1220 # if defined (__GLIBC__) && defined (_STRING_H)
1221 # define yystrlen strlen
1223 /* Return the length of YYSTR. */
1225 # if defined (__STDC__) || defined (__cplusplus)
1226 yystrlen (const char *yystr)
1232 register const char *yys = yystr;
1234 while (*yys++ != '\0')
1237 return yys - yystr - 1;
1243 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1244 # define yystpcpy stpcpy
1246 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1249 # if defined (__STDC__) || defined (__cplusplus)
1250 yystpcpy (char *yydest, const char *yysrc)
1252 yystpcpy (yydest, yysrc)
1257 register char *yyd = yydest;
1258 register const char *yys = yysrc;
1260 while ((*yyd++ = *yys++) != '\0')
1268 #endif /* !YYERROR_VERBOSE */
1273 /*--------------------------------.
1274 | Print this symbol on YYOUTPUT. |
1275 `--------------------------------*/
1277 #if defined (__STDC__) || defined (__cplusplus)
1279 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1282 yysymprint (yyoutput, yytype, yyvaluep)
1288 /* Pacify ``unused variable'' warnings. */
1291 if (yytype < YYNTOKENS)
1293 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1295 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1299 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1306 YYFPRINTF (yyoutput, ")");
1309 #endif /* ! YYDEBUG */
1310 /*-----------------------------------------------.
1311 | Release the memory associated to this symbol. |
1312 `-----------------------------------------------*/
1314 #if defined (__STDC__) || defined (__cplusplus)
1316 yydestruct (int yytype, YYSTYPE *yyvaluep)
1319 yydestruct (yytype, yyvaluep)
1324 /* Pacify ``unused variable'' warnings. */
1336 /* Prevent warnings from -Wmissing-prototypes. */
1338 #ifdef YYPARSE_PARAM
1339 # if defined (__STDC__) || defined (__cplusplus)
1340 int yyparse (void *YYPARSE_PARAM);
1344 #else /* ! YYPARSE_PARAM */
1345 #if defined (__STDC__) || defined (__cplusplus)
1350 #endif /* ! YYPARSE_PARAM */
1354 /* The lookahead symbol. */
1357 /* The semantic value of the lookahead symbol. */
1360 /* Number of syntax errors so far. */
1369 #ifdef YYPARSE_PARAM
1370 # if defined (__STDC__) || defined (__cplusplus)
1371 int yyparse (void *YYPARSE_PARAM)
1373 int yyparse (YYPARSE_PARAM)
1374 void *YYPARSE_PARAM;
1376 #else /* ! YYPARSE_PARAM */
1377 #if defined (__STDC__) || defined (__cplusplus)
1388 register int yystate;
1391 /* Number of tokens to shift before error messages enabled. */
1393 /* Lookahead token as an internal (translated) token number. */
1396 /* Three stacks and their tools:
1397 `yyss': related to states,
1398 `yyvs': related to semantic values,
1399 `yyls': related to locations.
1401 Refer to the stacks thru separate pointers, to allow yyoverflow
1402 to reallocate them elsewhere. */
1404 /* The state stack. */
1405 short yyssa[YYINITDEPTH];
1406 short *yyss = yyssa;
1407 register short *yyssp;
1409 /* The semantic value stack. */
1410 YYSTYPE yyvsa[YYINITDEPTH];
1411 YYSTYPE *yyvs = yyvsa;
1412 register YYSTYPE *yyvsp;
1416 #define YYPOPSTACK (yyvsp--, yyssp--)
1418 YYSIZE_T yystacksize = YYINITDEPTH;
1420 /* The variables used to return semantic value and location from the
1425 /* When reducing, the number of symbols on the RHS of the reduced
1429 YYDPRINTF ((stderr, "Starting parse\n"));
1434 yychar = YYEMPTY; /* Cause a token to be read. */
1436 /* Initialize stack pointers.
1437 Waste one element of value and location stack
1438 so that they stay on the same level as the state stack.
1439 The wasted elements are never initialized. */
1446 /*------------------------------------------------------------.
1447 | yynewstate -- Push a new state, which is found in yystate. |
1448 `------------------------------------------------------------*/
1450 /* In all cases, when you get here, the value and location stacks
1451 have just been pushed. so pushing a state here evens the stacks.
1458 if (yyss + yystacksize - 1 <= yyssp)
1460 /* Get the current used size of the three stacks, in elements. */
1461 YYSIZE_T yysize = yyssp - yyss + 1;
1465 /* Give user a chance to reallocate the stack. Use copies of
1466 these so that the &'s don't force the real ones into
1468 YYSTYPE *yyvs1 = yyvs;
1469 short *yyss1 = yyss;
1472 /* Each stack pointer address is followed by the size of the
1473 data in use in that stack, in bytes. This used to be a
1474 conditional around just the two extra args, but that might
1475 be undefined if yyoverflow is a macro. */
1476 yyoverflow ("parser stack overflow",
1477 &yyss1, yysize * sizeof (*yyssp),
1478 &yyvs1, yysize * sizeof (*yyvsp),
1485 #else /* no yyoverflow */
1486 # ifndef YYSTACK_RELOCATE
1489 /* Extend the stack our own way. */
1490 if (YYMAXDEPTH <= yystacksize)
1493 if (YYMAXDEPTH < yystacksize)
1494 yystacksize = YYMAXDEPTH;
1497 short *yyss1 = yyss;
1498 union yyalloc *yyptr =
1499 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1502 YYSTACK_RELOCATE (yyss);
1503 YYSTACK_RELOCATE (yyvs);
1505 # undef YYSTACK_RELOCATE
1507 YYSTACK_FREE (yyss1);
1510 #endif /* no yyoverflow */
1512 yyssp = yyss + yysize - 1;
1513 yyvsp = yyvs + yysize - 1;
1516 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1517 (unsigned long int) yystacksize));
1519 if (yyss + yystacksize - 1 <= yyssp)
1523 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1532 /* Do appropriate processing given the current state. */
1533 /* Read a lookahead token if we need one and don't already have one. */
1536 /* First try to decide what to do without reference to lookahead token. */
1538 yyn = yypact[yystate];
1539 if (yyn == YYPACT_NINF)
1542 /* Not known => get a lookahead token if don't already have one. */
1544 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1545 if (yychar == YYEMPTY)
1547 YYDPRINTF ((stderr, "Reading a token: "));
1551 if (yychar <= YYEOF)
1553 yychar = yytoken = YYEOF;
1554 YYDPRINTF ((stderr, "Now at end of input.\n"));
1558 yytoken = YYTRANSLATE (yychar);
1559 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1562 /* If the proper action on seeing token YYTOKEN is to reduce or to
1563 detect an error, take that action. */
1565 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1570 if (yyn == 0 || yyn == YYTABLE_NINF)
1579 /* Shift the lookahead token. */
1580 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1582 /* Discard the token being shifted unless it is eof. */
1583 if (yychar != YYEOF)
1589 /* Count tokens shifted since error; after three, turn off error
1598 /*-----------------------------------------------------------.
1599 | yydefault -- do the default action for the current state. |
1600 `-----------------------------------------------------------*/
1602 yyn = yydefact[yystate];
1608 /*-----------------------------.
1609 | yyreduce -- Do a reduction. |
1610 `-----------------------------*/
1612 /* yyn is the number of a rule to reduce with. */
1615 /* If YYLEN is nonzero, implement the default value of the action:
1618 Otherwise, the following line sets YYVAL to garbage.
1619 This behavior is undocumented and Bison
1620 users should not rely upon it. Assigning to YYVAL
1621 unconditionally makes the parser a bit smaller, and it avoids a
1622 GCC warning that YYVAL may be used uninitialized. */
1623 yyval = yyvsp[1-yylen];
1626 YY_REDUCE_PRINT (yyn);
1630 #line 145 "swf4compiler.y"
1631 { *((Buffer *)buffer) = yyvsp[0].action; ;}
1635 #line 152 "swf4compiler.y"
1636 { bufferConcat(yyvsp[-1].action, yyvsp[0].action); ;}
1640 #line 160 "swf4compiler.y"
1641 { yyval.action = NULL; ;}
1645 #line 161 "swf4compiler.y"
1646 { yyval.action = yyvsp[-1].action; ;}
1650 #line 162 "swf4compiler.y"
1651 { yyval.action = NULL; ;}
1655 #line 172 "swf4compiler.y"
1656 { bufferConcat(yyvsp[-2].action, yyvsp[0].action); ;}
1660 #line 176 "swf4compiler.y"
1661 { yyval.action = NULL; ;}
1665 #line 179 "swf4compiler.y"
1666 { bufferConcat(yyvsp[-1].action, yyvsp[0].action); ;}
1670 #line 186 "swf4compiler.y"
1671 { yyval.action = newBuffer();
1672 bufferWriteU8(yyval.action, SWFACTION_WAITFORFRAME);
1673 bufferWriteS16(yyval.action, 3);
1674 bufferWriteS16(yyval.action, atoi(yyvsp[-5].str));
1675 free(yyvsp[-5].str);
1676 bufferWriteU8(yyval.action, 1); /* if not loaded, jump to.. */
1677 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1678 bufferWriteS16(yyval.action, 2);
1679 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+5);
1680 bufferConcat(yyval.action, yyvsp[0].action); /* ..here */
1681 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1682 bufferWriteS16(yyval.action, 2);
1683 bufferWriteS16(yyval.action, bufferLength(yyvsp[-2].action));
1684 bufferConcat(yyval.action, yyvsp[-2].action); ;}
1688 #line 202 "swf4compiler.y"
1689 { yyval.action = newBuffer();
1690 bufferWriteU8(yyval.action, SWFACTION_WAITFORFRAME);
1691 bufferWriteS16(yyval.action, 3);
1692 bufferWriteS16(yyval.action, atoi(yyvsp[-3].str));
1693 free(yyvsp[-3].str);
1694 bufferWriteU8(yyval.action, 1); /* if not loaded, jump to.. */
1695 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1696 bufferWriteS16(yyval.action, 2);
1697 bufferWriteS16(yyval.action, 5);
1698 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS); /* ..here */
1699 bufferWriteS16(yyval.action, 2);
1700 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)); /* ..and then out */
1701 bufferConcat(yyval.action, yyvsp[0].action); ;}
1705 #line 218 "swf4compiler.y"
1706 { yyval.action = newBuffer();
1707 bufferWriteU8(yyval.action, SWFACTION_WAITFORFRAME);
1708 bufferWriteS16(yyval.action, 3);
1709 bufferWriteS16(yyval.action, atoi(yyvsp[-3].str));
1710 free(yyvsp[-3].str);
1711 bufferWriteU8(yyval.action, 1); /* if not loaded, jump to.. */
1712 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1713 bufferWriteS16(yyval.action, 2);
1714 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action));
1715 bufferConcat(yyval.action, yyvsp[0].action); ;}
1719 #line 230 "swf4compiler.y"
1720 { yyval.action = yyvsp[-5].action;
1721 bufferWriteU8(yyval.action, SWFACTION_WAITFORFRAMEEXPRESSION);
1722 bufferWriteS16(yyval.action, 1);
1723 bufferWriteU8(yyval.action, 1); /* if not loaded, jump to.. */
1724 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1725 bufferWriteS16(yyval.action, 2);
1726 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+5);
1727 bufferConcat(yyval.action, yyvsp[0].action); /* ..here */
1728 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1729 bufferWriteS16(yyval.action, 2);
1730 bufferWriteS16(yyval.action, bufferLength(yyvsp[-2].action));
1731 bufferConcat(yyval.action, yyvsp[-2].action); ;}
1735 #line 244 "swf4compiler.y"
1736 { yyval.action = yyvsp[-3].action;
1737 bufferWriteU8(yyval.action, SWFACTION_WAITFORFRAMEEXPRESSION);
1738 bufferWriteS16(yyval.action, 1);
1739 bufferWriteU8(yyval.action, 1); /* if not loaded, jump to.. */
1740 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1741 bufferWriteS16(yyval.action, 2);
1742 bufferWriteS16(yyval.action, 5);
1743 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS); /* ..here */
1744 bufferWriteS16(yyval.action, 2);
1745 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)); /* ..and then out */
1746 bufferConcat(yyval.action, yyvsp[0].action); ;}
1750 #line 258 "swf4compiler.y"
1751 { yyval.action = yyvsp[-3].action;
1752 bufferWriteU8(yyval.action, SWFACTION_WAITFORFRAMEEXPRESSION);
1753 bufferWriteS16(yyval.action, 1);
1754 bufferWriteU8(yyval.action, 1); /* if not loaded, jump to.. */
1755 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1756 bufferWriteS16(yyval.action, 2);
1757 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action));
1758 bufferConcat(yyval.action, yyvsp[0].action); ;}
1762 #line 268 "swf4compiler.y"
1763 { bufferWriteU8(yyvsp[-4].action, SWFACTION_BRANCHIFTRUE);
1764 bufferWriteS16(yyvsp[-4].action, 2);
1765 bufferWriteS16(yyvsp[-4].action, bufferLength(yyvsp[0].action)+5);
1766 bufferConcat(yyvsp[-4].action, yyvsp[0].action);
1767 bufferWriteU8(yyvsp[-4].action, SWFACTION_BRANCHALWAYS);
1768 bufferWriteS16(yyvsp[-4].action, 2);
1769 bufferWriteS16(yyvsp[-4].action, bufferLength(yyvsp[-2].action));
1770 bufferConcat(yyvsp[-4].action, yyvsp[-2].action);
1771 yyval.action = yyvsp[-4].action; ;}
1775 #line 279 "swf4compiler.y"
1776 { bufferWriteU8(yyvsp[-2].action, SWFACTION_LOGICALNOT);
1777 bufferWriteU8(yyvsp[-2].action, SWFACTION_BRANCHIFTRUE);
1778 bufferWriteS16(yyvsp[-2].action, 2);
1779 bufferWriteS16(yyvsp[-2].action, bufferLength(yyvsp[0].action));
1780 bufferConcat(yyvsp[-2].action, yyvsp[0].action);
1781 yyval.action = yyvsp[-2].action; ;}
1785 #line 288 "swf4compiler.y"
1786 { yyval.action = NULL; ;}
1790 #line 289 "swf4compiler.y"
1791 { yyval.action = yyvsp[0].action; ;}
1795 #line 314 "swf4compiler.y"
1796 { yyval.action = newBuffer();
1797 bufferWriteU8(yyval.action, SWFACTION_WAITFORFRAME);
1798 bufferWriteS16(yyval.action, 3);
1799 bufferWriteS16(yyval.action, atoi(yyvsp[-3].str));
1800 free(yyvsp[-3].str);
1801 bufferWriteU8(yyval.action, 1); /* if not loaded, jump to.. */
1802 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1803 bufferWriteS16(yyval.action, 2);
1804 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+5);
1805 bufferConcat(yyval.action, yyvsp[0].action); /* ..here */
1806 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1807 bufferWriteS16(yyval.action, 2);
1808 bufferWriteS16(yyval.action, -(bufferLength(yyval.action)+2)); ;}
1812 #line 329 "swf4compiler.y"
1813 { yyval.action = yyvsp[-2].action;
1814 bufferWriteU8(yyval.action, SWFACTION_LOGICALNOT);
1815 bufferWriteU8(yyval.action, SWFACTION_BRANCHIFTRUE);
1816 bufferWriteS16(yyval.action, 2);
1817 bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+5);
1818 bufferConcat(yyval.action, yyvsp[0].action);
1819 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1820 bufferWriteS16(yyval.action, 2);
1821 bufferWriteS16(yyval.action, -(bufferLength(yyval.action)+2));
1822 bufferResolveJumps(yyval.action); ;}
1826 #line 341 "swf4compiler.y"
1827 { yyval.action = yyvsp[-4].action;
1828 bufferConcat(yyval.action, yyvsp[-1].action);
1829 bufferWriteU8(yyval.action, SWFACTION_BRANCHIFTRUE);
1830 bufferWriteS16(yyval.action, 2);
1831 bufferWriteS16(yyval.action, -(bufferLength(yyval.action)+2));
1832 bufferResolveJumps(yyval.action); ;}
1836 #line 349 "swf4compiler.y"
1837 { if (!yyvsp[-4].action)
1838 yyvsp[-4].action = newBuffer();
1840 bufferWriteU8(yyvsp[-4].action, SWFACTION_LOGICALNOT);
1841 bufferWriteU8(yyvsp[-4].action, SWFACTION_BRANCHIFTRUE);
1842 bufferWriteS16(yyvsp[-4].action, 2);
1843 bufferWriteS16(yyvsp[-4].action, bufferLength(yyvsp[0].action)+bufferLength(yyvsp[-2].action)+5);
1845 bufferConcat(yyvsp[-4].action, yyvsp[0].action);
1846 bufferConcat(yyvsp[-4].action, yyvsp[-2].action);
1847 bufferWriteU8(yyvsp[-4].action, SWFACTION_BRANCHALWAYS);
1848 bufferWriteS16(yyvsp[-4].action, 2);
1849 bufferWriteS16(yyvsp[-4].action, -(bufferLength(yyvsp[-4].action)+2));
1850 bufferResolveJumps(yyvsp[-4].action);
1851 yyval.action = yyvsp[-6].action;
1852 if(!yyval.action) yyval.action = newBuffer();
1853 bufferConcat(yyval.action, yyvsp[-4].action);
1858 #line 370 "swf4compiler.y"
1859 { yyval.action = NULL; ;}
1863 #line 376 "swf4compiler.y"
1864 { yyval.action = newBuffer();
1865 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1866 bufferWriteS16(yyval.action, 2);
1867 bufferWriteS16(yyval.action, MAGIC_CONTINUE_NUMBER); ;}
1871 #line 384 "swf4compiler.y"
1872 { yyval.action = newBuffer();
1873 bufferWriteU8(yyval.action, SWFACTION_BRANCHALWAYS);
1874 bufferWriteS16(yyval.action, 2);
1875 bufferWriteS16(yyval.action, MAGIC_BREAK_NUMBER); ;}
1879 #line 392 "swf4compiler.y"
1880 { yyval.action = newBuffer();
1881 bufferWriteU8(yyval.action, SWFACTION_STOPDRAGMOVIE); ;}
1885 #line 396 "swf4compiler.y"
1886 { yyval.action = newBuffer();
1887 bufferWriteString(yyval.action, yyvsp[-1].str, strlen(yyvsp[-1].str)+1);
1888 bufferWriteU8(yyval.action, SWFACTION_CALLFRAME);
1889 bufferWriteS16(yyval.action, 0);
1890 free(yyvsp[-1].str); ;}
1894 #line 403 "swf4compiler.y"
1895 { yyval.action = newBuffer();
1896 bufferWriteString(yyval.action, yyvsp[-1].str, strlen(yyvsp[-1].str)+1);
1897 bufferWriteU8(yyval.action, SWFACTION_CALLFRAME);
1898 bufferWriteS16(yyval.action, 0);
1899 free(yyvsp[-1].str); ;}
1903 #line 410 "swf4compiler.y"
1904 { yyval.action = yyvsp[-1].action;
1905 bufferWriteU8(yyval.action, SWFACTION_REMOVECLIP); ;}
1909 #line 414 "swf4compiler.y"
1910 { yyval.action = yyvsp[-1].action;
1911 bufferWriteU8(yyval.action, SWFACTION_TRACE); ;}
1915 #line 419 "swf4compiler.y"
1916 { yyval.action = yyvsp[-3].action;
1917 bufferConcat(yyval.action, yyvsp[-1].action);
1918 bufferWriteU8(yyval.action, SWFACTION_GETURL2);
1919 bufferWriteS16(yyval.action, 1);
1920 bufferWriteU8(yyval.action, GETURL_METHOD_NOSEND); ;}
1924 #line 426 "swf4compiler.y"
1925 { yyval.action = yyvsp[-5].action;
1926 bufferConcat(yyval.action, yyvsp[-3].action);
1927 bufferWriteU8(yyval.action, SWFACTION_GETURL2);
1928 bufferWriteS16(yyval.action, 1);
1929 bufferWriteU8(yyval.action, yyvsp[-1].getURLMethod); ;}
1933 #line 433 "swf4compiler.y"
1934 { yyval.action = newBuffer();
1935 bufferWriteU8(yyval.action, SWFACTION_GETURL);
1936 bufferWriteS16(yyval.action, strlen(yyvsp[-3].str) + strlen(yyvsp[-1].str) + 2);
1937 bufferWriteHardString(yyval.action, (byte*)yyvsp[-3].str, strlen(yyvsp[-3].str));
1938 bufferWriteU8(yyval.action, 0);
1939 bufferWriteHardString(yyval.action, (byte*)yyvsp[-1].str, strlen(yyvsp[-1].str));
1940 bufferWriteU8(yyval.action, 0); ;}
1944 #line 442 "swf4compiler.y"
1945 { yyval.action = yyvsp[-3].action;
1946 bufferConcat(yyval.action, yyvsp[-1].action);
1947 bufferWriteU8(yyval.action, SWFACTION_GETURL2);
1948 bufferWriteS16(yyval.action, 1);
1949 bufferWriteU8(yyval.action, GETURL_METHOD_NOSEND | GETURL_LOADMOVIE); ;}
1953 #line 449 "swf4compiler.y"
1954 { yyval.action = yyvsp[-5].action;
1955 bufferConcat(yyval.action, yyvsp[-3].action);
1956 bufferWriteU8(yyval.action, SWFACTION_GETURL2);
1957 bufferWriteS16(yyval.action, 1);
1958 bufferWriteU8(yyval.action, yyvsp[-1].getURLMethod | GETURL_LOADMOVIE); ;}
1962 #line 456 "swf4compiler.y"
1963 { yyval.action = yyvsp[-3].action;
1964 bufferConcat(yyval.action, yyvsp[-1].action);
1965 bufferWriteU8(yyval.action, SWFACTION_GETURL2);
1966 bufferWriteS16(yyval.action, 1);
1967 bufferWriteU8(yyval.action, GETURL_METHOD_NOSEND | GETURL_LOADVARIABLES); ;}
1971 #line 463 "swf4compiler.y"
1972 { yyval.action = yyvsp[-5].action;
1973 bufferConcat(yyval.action, yyvsp[-3].action);
1974 bufferWriteU8(yyval.action, SWFACTION_GETURL2);
1975 bufferWriteS16(yyval.action, 1);
1976 bufferWriteU8(yyval.action, yyvsp[-1].getURLMethod | GETURL_LOADVARIABLES); ;}
1980 #line 471 "swf4compiler.y"
1981 { yyval.action = newBuffer();
1982 bufferWriteString(yyval.action, "0", 2); /* no constraint */
1983 bufferConcat(yyval.action, yyvsp[-1].action);
1984 bufferConcat(yyval.action, yyvsp[-3].action);
1985 bufferWriteU8(yyval.action, SWFACTION_STARTDRAGMOVIE); ;}
1989 #line 478 "swf4compiler.y"
1990 { yyval.action = newBuffer();
1991 bufferConcat(yyval.action, yyvsp[-7].action);
1992 bufferConcat(yyval.action, yyvsp[-3].action);
1993 bufferConcat(yyval.action, yyvsp[-5].action);
1994 bufferConcat(yyval.action, yyvsp[-1].action);
1995 bufferWriteString(yyval.action, "1", 2); /* has constraint */
1996 bufferConcat(yyval.action, yyvsp[-9].action);
1997 bufferConcat(yyval.action, yyvsp[-11].action);
1998 bufferWriteU8(yyval.action, SWFACTION_STARTDRAGMOVIE); ;}
2002 #line 490 "swf4compiler.y"
2003 { yyval.action = yyvsp[-5].action;
2004 bufferConcat(yyval.action, yyvsp[-3].action);
2005 bufferConcat(yyval.action, yyvsp[-1].action);
2006 bufferWriteWTHITProperty(yyval.action);
2007 bufferWriteU8(yyval.action, SWFACTION_ADD); /* see docs for explanation */
2008 bufferWriteU8(yyval.action, SWFACTION_DUPLICATECLIP); ;}
2012 #line 499 "swf4compiler.y"
2013 { yyval.action = newBuffer();
2014 bufferWriteU8(yyval.action, SWFACTION_NEXTFRAME); ;}
2018 #line 503 "swf4compiler.y"
2019 { yyval.action = newBuffer();
2020 bufferWriteU8(yyval.action, SWFACTION_PREVFRAME); ;}
2024 #line 507 "swf4compiler.y"
2025 { yyval.action = newBuffer();
2026 bufferWriteU8(yyval.action, SWFACTION_PLAY); ;}
2030 #line 511 "swf4compiler.y"
2031 { yyval.action = newBuffer();
2032 bufferWriteU8(yyval.action, SWFACTION_STOP); ;}
2036 #line 515 "swf4compiler.y"
2037 { yyval.action = newBuffer();
2038 bufferWriteU8(yyval.action, SWFACTION_TOGGLEQUALITY); ;}
2042 #line 519 "swf4compiler.y"
2043 { yyval.action = newBuffer();
2044 bufferWriteU8(yyval.action, SWFACTION_STOPSOUNDS); ;}
2048 #line 523 "swf4compiler.y"
2049 { yyval.action = newBuffer();
2050 bufferWriteU8(yyval.action, SWFACTION_GOTOFRAME);
2051 bufferWriteS16(yyval.action, 2);
2052 bufferWriteS16(yyval.action, atoi(yyvsp[-1].str));
2053 free(yyvsp[-1].str); ;}
2057 #line 530 "swf4compiler.y"
2058 { yyval.action = newBuffer();
2059 bufferWriteU8(yyval.action, SWFACTION_GOTOLABEL);
2060 bufferWriteS16(yyval.action, strlen(yyvsp[-1].str)+1);
2061 bufferWriteHardString(yyval.action, (byte*)yyvsp[-1].str, strlen(yyvsp[-1].str)+1);
2062 free(yyvsp[-1].str); ;}
2066 #line 537 "swf4compiler.y"
2067 { yyval.action = yyvsp[-1].action;
2068 bufferWriteU8(yyval.action, SWFACTION_GOTOEXPRESSION);
2069 bufferWriteS16(yyval.action, 1);
2070 bufferWriteU8(yyval.action, 0); ;}
2074 #line 543 "swf4compiler.y"
2075 { yyval.action = yyvsp[-1].action;
2076 bufferWriteU8(yyval.action, SWFACTION_GOTOEXPRESSION);
2077 bufferWriteS16(yyval.action, 1);
2078 bufferWriteU8(yyval.action, 1); ;}
2082 #line 549 "swf4compiler.y"
2083 { yyval.action = newBuffer();
2084 bufferWriteU8(yyval.action, SWFACTION_SETTARGET);
2085 bufferWriteS16(yyval.action, strlen(yyvsp[-1].str)+1);
2086 bufferWriteHardString(yyval.action, (byte*)yyvsp[-1].str, strlen(yyvsp[-1].str)+1);
2087 free(yyvsp[-1].str); ;}
2091 #line 556 "swf4compiler.y"
2092 { yyval.action = yyvsp[-1].action;
2093 bufferWriteU8(yyval.action, SWFACTION_SETTARGETEXPRESSION); ;}
2097 #line 560 "swf4compiler.y"
2098 { yyval.action = newBuffer();
2099 /* SetTarget(STRING) */
2100 bufferWriteU8(yyval.action, SWFACTION_SETTARGET);
2101 bufferWriteS16(yyval.action, strlen(yyvsp[-2].str)+1);
2102 bufferWriteHardString(yyval.action, (byte*)yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2104 bufferConcat(yyval.action, yyvsp[0].action);
2106 bufferWriteU8(yyval.action, SWFACTION_SETTARGET);
2107 bufferWriteS16(yyval.action, 1);
2108 bufferWriteU8(yyval.action, 0);
2109 free(yyvsp[-2].str); ;}
2113 #line 574 "swf4compiler.y"
2114 { yyval.action = yyvsp[-2].action;
2115 /* SetTarget(expr) */
2116 bufferWriteU8(yyval.action, SWFACTION_SETTARGETEXPRESSION);
2118 bufferConcat(yyval.action, yyvsp[0].action);
2120 bufferWriteU8(yyval.action, SWFACTION_SETTARGET);
2121 bufferWriteS16(yyval.action, 1);
2122 bufferWriteU8(yyval.action, 0); ;}
2126 #line 587 "swf4compiler.y"
2127 { yyval.action = yyvsp[-1].action;
2128 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE); ;}
2132 #line 591 "swf4compiler.y"
2133 { yyval.action = newBuffer();
2134 bufferWriteU8(yyval.action, SWFACTION_GETTIMER); ;}
2138 #line 595 "swf4compiler.y"
2139 { yyval.action = yyvsp[-1].action;
2140 bufferWriteU8(yyval.action, SWFACTION_RANDOM); ;}
2144 #line 599 "swf4compiler.y"
2145 { yyval.action = yyvsp[-1].action;
2146 bufferWriteU8(yyval.action, SWFACTION_STRINGLENGTH); ;}
2150 #line 603 "swf4compiler.y"
2151 { yyval.action = yyvsp[-1].action;
2152 bufferWriteU8(yyval.action, SWFACTION_INT); ;}
2156 #line 607 "swf4compiler.y"
2157 { yyval.action = yyvsp[-1].action;
2158 bufferWriteU8(yyval.action, SWFACTION_ORD); ;}
2162 #line 611 "swf4compiler.y"
2163 { yyval.action = yyvsp[-1].action;
2164 bufferWriteU8(yyval.action, SWFACTION_CHR); ;}
2168 #line 615 "swf4compiler.y"
2169 { yyval.action = yyvsp[-3].action;
2170 bufferConcat(yyval.action, yyvsp[-1].action);
2171 bufferWriteU8(yyval.action, SWFACTION_STRINGCONCAT); ;}
2175 #line 620 "swf4compiler.y"
2176 { yyval.action = yyvsp[-5].action;
2177 bufferConcat(yyval.action, yyvsp[-3].action);
2178 bufferConcat(yyval.action, yyvsp[-1].action);
2179 bufferWriteU8(yyval.action, SWFACTION_SUBSTRING); ;}
2183 #line 626 "swf4compiler.y"
2184 { yyval.action = newBuffer();
2185 bufferConcat(yyval.action, yyvsp[-3].action);
2186 bufferWriteGetProperty(yyval.action, yyvsp[-1].str);
2187 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2188 free(yyvsp[-1].str); ;}
2192 #line 635 "swf4compiler.y"
2193 { yyval.action = newBuffer();
2194 bufferWriteBuffer(yyval.action, yyvsp[-1].action);
2195 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2196 bufferWriteBuffer(yyval.action, yyvsp[-1].action);
2197 bufferConcat(yyval.action, yyvsp[-1].action);
2198 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2199 bufferWriteString(yyval.action, "1", 2);
2200 bufferWriteU8(yyval.action, SWFACTION_ADD);
2201 bufferWriteU8(yyval.action, SWFACTION_SETVARIABLE); ;}
2205 #line 646 "swf4compiler.y"
2206 { yyval.action = newBuffer();
2207 bufferWriteBuffer(yyval.action, yyvsp[-1].action);
2208 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2209 bufferWriteBuffer(yyval.action, yyvsp[-1].action);
2210 bufferConcat(yyval.action, yyvsp[-1].action);
2211 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2212 bufferWriteString(yyval.action, "1", 2);
2213 bufferWriteU8(yyval.action, SWFACTION_SUBTRACT);
2214 bufferWriteU8(yyval.action, SWFACTION_SETVARIABLE); ;}
2218 #line 662 "swf4compiler.y"
2219 { yyval.action = yyvsp[-1].action; ;}
2223 #line 665 "swf4compiler.y"
2224 { yyval.action = newBuffer();
2225 bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
2226 free(yyvsp[0].str); ;}
2230 #line 670 "swf4compiler.y"
2231 { yyval.action = newBuffer();
2232 bufferWriteString(yyval.action, "-", 2);
2233 bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
2234 free(yyvsp[0].str); ;}
2238 #line 676 "swf4compiler.y"
2239 { yyval.action = newBuffer();
2240 bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
2241 free(yyvsp[0].str); ;}
2245 #line 681 "swf4compiler.y"
2246 { yyval.action = newBuffer();
2247 bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
2248 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2249 free(yyvsp[0].str); ;}
2253 #line 687 "swf4compiler.y"
2254 { yyval.action = newBuffer();
2255 bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
2256 free(yyvsp[0].str); ;}
2260 #line 692 "swf4compiler.y"
2261 { yyval.action = newBuffer();
2262 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2263 bufferWriteGetProperty(yyval.action, yyvsp[0].str);
2264 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2266 free(yyvsp[-2].str); ;}
2270 #line 700 "swf4compiler.y"
2271 { yyval.action = newBuffer();
2272 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2273 bufferWriteGetProperty(yyval.action, yyvsp[0].str);
2274 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2275 bufferWriteSetProperty(yyval.action, yyvsp[0].str);
2276 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2277 bufferWriteGetProperty(yyval.action, yyvsp[0].str);
2278 bufferWriteString(yyval.action, "1", 2);
2279 bufferWriteU8(yyval.action, SWFACTION_ADD);
2280 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2281 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2282 free(yyvsp[-2].str);
2283 free(yyvsp[0].str); ;}
2287 #line 715 "swf4compiler.y"
2288 { yyval.action = yyvsp[0].action;
2289 bufferWriteU8(yyval.action, SWFACTION_DUP);
2290 bufferWriteU8(yyval.action, SWFACTION_DUP);
2291 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2292 bufferWriteString(yyval.action, "1", 2);
2293 bufferWriteU8(yyval.action, SWFACTION_ADD);
2294 bufferWriteU8(yyval.action, SWFACTION_SETVARIABLE);
2295 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE); ;}
2299 #line 725 "swf4compiler.y"
2300 { yyval.action = newBuffer();
2301 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2302 bufferWriteGetProperty(yyval.action, yyvsp[0].str);
2303 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2304 bufferWriteSetProperty(yyval.action, yyvsp[0].str);
2305 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2306 bufferWriteGetProperty(yyval.action, yyvsp[0].str);
2307 bufferWriteString(yyval.action, "1", 2);
2308 bufferWriteU8(yyval.action, SWFACTION_ADD);
2309 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2310 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2311 free(yyvsp[-2].str);
2312 free(yyvsp[0].str); ;}
2316 #line 740 "swf4compiler.y"
2317 { yyval.action = yyvsp[0].action;
2318 bufferWriteU8(yyval.action, SWFACTION_DUP);
2319 bufferWriteU8(yyval.action, SWFACTION_DUP);
2320 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2321 bufferWriteString(yyval.action, "1", 2);
2322 bufferWriteU8(yyval.action, SWFACTION_SUBTRACT);
2323 bufferWriteU8(yyval.action, SWFACTION_SETVARIABLE);
2324 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE); ;}
2328 #line 750 "swf4compiler.y"
2329 { yyval.action = yyvsp[0].action;
2330 bufferWriteString(yyvsp[0].action, "-1", 3);
2331 bufferWriteU8(yyvsp[0].action, SWFACTION_MULTIPLY); ;}
2335 #line 755 "swf4compiler.y"
2336 { yyval.action = yyvsp[0].action;
2337 bufferWriteU8(yyvsp[0].action, SWFACTION_LOGICALNOT); ;}
2341 #line 759 "swf4compiler.y"
2342 { yyval.action = yyvsp[-2].action;
2343 bufferConcat(yyval.action, yyvsp[0].action);
2344 bufferWriteU8(yyval.action, SWFACTION_DUP);
2345 bufferWriteU8(yyval.action, SWFACTION_SETVARIABLE); ;}
2349 #line 765 "swf4compiler.y"
2350 { yyval.action = yyvsp[-2].action;
2351 bufferConcat(yyval.action, yyvsp[0].action);
2352 bufferWriteU8(yyval.action, SWFACTION_MULTIPLY); ;}
2356 #line 770 "swf4compiler.y"
2357 { yyval.action = yyvsp[-2].action;
2358 bufferConcat(yyval.action, yyvsp[0].action);
2359 bufferWriteU8(yyval.action, SWFACTION_DIVIDE); ;}
2363 #line 775 "swf4compiler.y"
2364 { yyval.action = yyvsp[-2].action;
2365 bufferConcat(yyval.action, yyvsp[0].action);
2366 bufferWriteU8(yyval.action, SWFACTION_ADD); ;}
2370 #line 780 "swf4compiler.y"
2371 { yyval.action = yyvsp[-2].action;
2372 bufferConcat(yyval.action, yyvsp[0].action);
2373 bufferWriteU8(yyval.action, SWFACTION_SUBTRACT); ;}
2377 #line 785 "swf4compiler.y"
2378 { yyval.action = yyvsp[-2].action;
2379 bufferConcat(yyval.action, yyvsp[0].action);
2380 bufferWriteU8(yyval.action, SWFACTION_STRINGCONCAT); ;}
2384 #line 790 "swf4compiler.y"
2385 { yyval.action = yyvsp[-2].action;
2386 bufferConcat(yyval.action, yyvsp[0].action);
2387 bufferWriteU8(yyval.action, SWFACTION_LESSTHAN); ;}
2391 #line 795 "swf4compiler.y"
2392 { yyval.action = yyvsp[0].action;
2393 bufferConcat(yyval.action, yyvsp[-2].action);
2394 bufferWriteU8(yyval.action, SWFACTION_LESSTHAN); ;}
2398 #line 800 "swf4compiler.y"
2399 { yyval.action = yyvsp[0].action;
2400 bufferConcat(yyval.action, yyvsp[-2].action);
2401 bufferWriteU8(yyval.action, SWFACTION_LESSTHAN);
2402 bufferWriteU8(yyval.action, SWFACTION_LOGICALNOT); ;}
2406 #line 806 "swf4compiler.y"
2407 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2408 bufferWriteU8(yyvsp[-2].action, SWFACTION_LESSTHAN);
2409 bufferWriteU8(yyvsp[-2].action, SWFACTION_LOGICALNOT); ;}
2413 #line 811 "swf4compiler.y"
2414 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2415 bufferWriteU8(yyvsp[-2].action, SWFACTION_STRINGEQ);
2416 bufferWriteU8(yyvsp[-2].action, SWFACTION_LOGICALNOT); ;}
2420 #line 816 "swf4compiler.y"
2421 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2422 bufferWriteU8(yyvsp[-2].action, SWFACTION_STRINGEQ); ;}
2426 #line 820 "swf4compiler.y"
2427 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2428 bufferWriteU8(yyvsp[-2].action, SWFACTION_STRINGCOMPARE); ;}
2432 #line 824 "swf4compiler.y"
2433 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2434 bufferWriteU8(yyvsp[-2].action, SWFACTION_EQUAL); ;}
2438 #line 828 "swf4compiler.y"
2439 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2440 bufferWriteU8(yyvsp[-2].action, SWFACTION_EQUAL);
2441 bufferWriteU8(yyvsp[-2].action, SWFACTION_LOGICALNOT); ;}
2445 #line 833 "swf4compiler.y"
2446 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2447 bufferWriteU8(yyvsp[-2].action, SWFACTION_LOGICALAND); ;}
2451 #line 837 "swf4compiler.y"
2452 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2453 bufferWriteU8(yyvsp[-2].action, SWFACTION_LOGICALOR); ;}
2457 #line 841 "swf4compiler.y"
2458 { bufferWriteU8(yyvsp[-4].action, SWFACTION_BRANCHIFTRUE);
2459 bufferWriteS16(yyvsp[-4].action, 2);
2460 bufferWriteS16(yyvsp[-4].action, bufferLength(yyvsp[0].action)+5);
2461 bufferConcat(yyvsp[-4].action, yyvsp[0].action);
2462 bufferWriteU8(yyvsp[-4].action, SWFACTION_BRANCHALWAYS);
2463 bufferWriteS16(yyvsp[-4].action, 2);
2464 bufferWriteS16(yyvsp[-4].action, bufferLength(yyvsp[-2].action));
2465 bufferConcat(yyvsp[-4].action, yyvsp[-2].action); ;}
2469 #line 855 "swf4compiler.y"
2470 { yyval.str = yyvsp[-2].str;
2471 yyval.str = stringConcat(yyval.str, strdup(":"));
2472 yyval.str = stringConcat(yyval.str, yyvsp[0].str); ;}
2476 #line 862 "swf4compiler.y"
2477 { yyval.str = strdup(""); ;}
2481 #line 865 "swf4compiler.y"
2482 { yyval.str = strdup(""); ;}
2486 #line 868 "swf4compiler.y"
2487 { yyval.str = strdup("/"); ;}
2491 #line 871 "swf4compiler.y"
2492 { yyval.str = strdup(".."); ;}
2496 #line 874 "swf4compiler.y"
2497 { yyval.str = yyvsp[0].str; ;}
2501 #line 877 "swf4compiler.y"
2502 { yyval.str = yyvsp[0].str; ;}
2506 #line 882 "swf4compiler.y"
2507 { yyval.action = newBuffer();
2508 bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
2509 free(yyvsp[0].str); ;}
2513 #line 887 "swf4compiler.y"
2514 { yyval.action = newBuffer();
2515 bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
2516 free(yyvsp[0].str); ;}
2520 #line 891 "swf4compiler.y"
2521 { yyval.action = yyvsp[-1].action; ;}
2525 #line 900 "swf4compiler.y"
2526 { yyval.action = yyvsp[0].action;
2527 bufferWriteBuffer(yyval.action, yyvsp[0].action);
2528 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2529 bufferWriteString(yyval.action, "1", 2);
2530 bufferWriteU8(yyval.action, SWFACTION_ADD);
2531 bufferWriteU8(yyval.action, SWFACTION_SETVARIABLE); ;}
2535 #line 908 "swf4compiler.y"
2536 { yyval.action = yyvsp[0].action;
2537 bufferWriteBuffer(yyval.action, yyvsp[0].action);
2538 bufferWriteU8(yyval.action, SWFACTION_GETVARIABLE);
2539 bufferWriteString(yyval.action, "1", 2);
2540 bufferWriteU8(yyval.action, SWFACTION_SUBTRACT);
2541 bufferWriteU8(yyval.action, SWFACTION_SETVARIABLE); ;}
2545 #line 916 "swf4compiler.y"
2546 { yyval.action = newBuffer();
2547 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2548 bufferWriteGetProperty(yyval.action, yyvsp[0].str);
2549 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2550 bufferWriteString(yyval.action, "1", 2);
2551 bufferWriteU8(yyval.action, SWFACTION_ADD);
2552 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2553 bufferWriteSetProperty(yyval.action, yyvsp[0].str);
2554 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2555 free(yyvsp[-2].str);
2556 free(yyvsp[0].str); ;}
2560 #line 929 "swf4compiler.y"
2561 { yyval.action = newBuffer();
2562 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2563 bufferWriteGetProperty(yyval.action, yyvsp[0].str);
2564 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2565 bufferWriteString(yyval.action, "1", 2);
2566 bufferWriteU8(yyval.action, SWFACTION_SUBTRACT);
2567 bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
2568 bufferWriteSetProperty(yyval.action, yyvsp[0].str);
2569 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2570 free(yyvsp[-2].str);
2571 free(yyvsp[0].str); ;}
2575 #line 942 "swf4compiler.y"
2576 { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2577 bufferWriteU8(yyvsp[-2].action, SWFACTION_SETVARIABLE); ;}
2581 #line 946 "swf4compiler.y"
2582 { bufferWriteBuffer(yyvsp[-2].action, yyvsp[-2].action);
2583 bufferWriteU8(yyvsp[-2].action, SWFACTION_GETVARIABLE);
2584 bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2585 bufferWriteU8(yyvsp[-2].action, SWFACTION_MULTIPLY);
2586 bufferWriteU8(yyvsp[-2].action, SWFACTION_SETVARIABLE); ;}
2590 #line 953 "swf4compiler.y"
2591 { bufferWriteBuffer(yyvsp[-2].action, yyvsp[-2].action);
2592 bufferWriteU8(yyvsp[-2].action, SWFACTION_GETVARIABLE);
2593 bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2594 bufferWriteU8(yyvsp[-2].action, SWFACTION_DIVIDE);
2595 bufferWriteU8(yyvsp[-2].action, SWFACTION_SETVARIABLE); ;}
2599 #line 960 "swf4compiler.y"
2600 { bufferWriteBuffer(yyvsp[-2].action, yyvsp[-2].action);
2601 bufferWriteU8(yyvsp[-2].action, SWFACTION_GETVARIABLE);
2602 bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2603 bufferWriteU8(yyvsp[-2].action, SWFACTION_ADD);
2604 bufferWriteU8(yyvsp[-2].action, SWFACTION_SETVARIABLE); ;}
2608 #line 967 "swf4compiler.y"
2609 { bufferWriteBuffer(yyvsp[-2].action, yyvsp[-2].action);
2610 bufferWriteU8(yyvsp[-2].action, SWFACTION_GETVARIABLE);
2611 bufferConcat(yyvsp[-2].action, yyvsp[0].action);
2612 bufferWriteU8(yyvsp[-2].action, SWFACTION_SUBTRACT);
2613 bufferWriteU8(yyvsp[-2].action, SWFACTION_SETVARIABLE); ;}
2617 #line 974 "swf4compiler.y"
2618 { yyval.action = newBuffer();
2619 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2620 bufferWriteSetProperty(yyval.action, yyvsp[-2].str);
2621 bufferConcat(yyval.action,yyvsp[0].action);
2622 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2623 free(yyvsp[-4].str);
2624 free(yyvsp[-2].str); ;}
2628 #line 983 "swf4compiler.y"
2629 { yyval.action = newBuffer();
2630 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2631 bufferWriteSetProperty(yyval.action, yyvsp[-2].str);
2632 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2633 bufferWriteGetProperty(yyval.action, yyvsp[-2].str);
2634 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2635 bufferConcat(yyval.action, yyvsp[0].action);
2636 bufferWriteU8(yyval.action, SWFACTION_MULTIPLY);
2637 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2638 free(yyvsp[-4].str);
2639 free(yyvsp[-2].str); ;}
2643 #line 996 "swf4compiler.y"
2644 { yyval.action = newBuffer();
2645 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2646 bufferWriteSetProperty(yyval.action, yyvsp[-2].str);
2647 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2648 bufferWriteGetProperty(yyval.action, yyvsp[-2].str);
2649 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2650 bufferConcat(yyval.action, yyvsp[0].action);
2651 bufferWriteU8(yyval.action, SWFACTION_DIVIDE);
2652 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2653 free(yyvsp[-4].str);
2654 free(yyvsp[-2].str); ;}
2658 #line 1009 "swf4compiler.y"
2659 { yyval.action = newBuffer();
2660 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2661 bufferWriteSetProperty(yyval.action, yyvsp[-2].str);
2662 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2663 bufferWriteGetProperty(yyval.action, yyvsp[-2].str);
2664 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2665 bufferConcat(yyval.action, yyvsp[0].action);
2666 bufferWriteU8(yyval.action, SWFACTION_ADD);
2667 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2668 free(yyvsp[-4].str);
2669 free(yyvsp[-2].str); ;}
2673 #line 1022 "swf4compiler.y"
2674 { yyval.action = newBuffer();
2675 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2676 bufferWriteSetProperty(yyval.action, yyvsp[-2].str);
2677 bufferWriteString(yyval.action, yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
2678 bufferWriteGetProperty(yyval.action, yyvsp[-2].str);
2679 bufferWriteU8(yyval.action, SWFACTION_GETPROPERTY);
2680 bufferConcat(yyval.action, yyvsp[0].action);
2681 bufferWriteU8(yyval.action, SWFACTION_SUBTRACT);
2682 bufferWriteU8(yyval.action, SWFACTION_SETPROPERTY);
2683 free(yyvsp[-4].str);
2684 free(yyvsp[-2].str); ;}
2690 /* Line 999 of yacc.c. */
2691 #line 2691 "swf4compiler.tab.c"
2697 YY_STACK_PRINT (yyss, yyssp);
2702 /* Now `shift' the result of the reduction. Determine what state
2703 that goes to, based on the state we popped back to and the rule
2704 number reduced by. */
2708 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2709 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2710 yystate = yytable[yystate];
2712 yystate = yydefgoto[yyn - YYNTOKENS];
2717 /*------------------------------------.
2718 | yyerrlab -- here on detecting error |
2719 `------------------------------------*/
2721 /* If not already recovering from an error, report this error. */
2726 yyn = yypact[yystate];
2728 if (YYPACT_NINF < yyn && yyn < YYLAST)
2730 YYSIZE_T yysize = 0;
2731 int yytype = YYTRANSLATE (yychar);
2736 /* Start YYX at -YYN if negative to avoid negative indexes in
2738 for (yyx = yyn < 0 ? -yyn : 0;
2739 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
2740 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2741 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
2742 yysize += yystrlen ("syntax error, unexpected ") + 1;
2743 yysize += yystrlen (yytname[yytype]);
2744 yymsg = (char *) YYSTACK_ALLOC (yysize);
2747 char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
2748 yyp = yystpcpy (yyp, yytname[yytype]);
2753 for (yyx = yyn < 0 ? -yyn : 0;
2754 yyx < (int) (sizeof (yytname) / sizeof (char *));
2756 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2758 const char *yyq = ! yycount ? ", expecting " : " or ";
2759 yyp = yystpcpy (yyp, yyq);
2760 yyp = yystpcpy (yyp, yytname[yyx]);
2765 YYSTACK_FREE (yymsg);
2768 yyerror ("syntax error; also virtual memory exhausted");
2771 #endif /* YYERROR_VERBOSE */
2772 yyerror ("syntax error");
2777 if (yyerrstatus == 3)
2779 /* If just tried and failed to reuse lookahead token after an
2780 error, discard it. */
2782 /* Return failure if at end of input. */
2783 if (yychar == YYEOF)
2785 /* Pop the error token. */
2787 /* Pop the rest of the stack. */
2788 while (yyss < yyssp)
2790 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2791 yydestruct (yystos[*yyssp], yyvsp);
2797 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
2798 yydestruct (yytoken, &yylval);
2803 /* Else will try to reuse lookahead token after shifting the error
2808 /*----------------------------------------------------.
2809 | yyerrlab1 -- error raised explicitly by an action. |
2810 `----------------------------------------------------*/
2812 yyerrstatus = 3; /* Each real token shifted decrements this. */
2816 yyn = yypact[yystate];
2817 if (yyn != YYPACT_NINF)
2820 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2828 /* Pop the current state because it cannot handle the error token. */
2832 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2833 yydestruct (yystos[yystate], yyvsp);
2837 YY_STACK_PRINT (yyss, yyssp);
2843 YYDPRINTF ((stderr, "Shifting error token, "));
2852 /*-------------------------------------.
2853 | yyacceptlab -- YYACCEPT comes here. |
2854 `-------------------------------------*/
2859 /*-----------------------------------.
2860 | yyabortlab -- YYABORT comes here. |
2861 `-----------------------------------*/
2867 /*----------------------------------------------.
2868 | yyoverflowlab -- parser overflow comes here. |
2869 `----------------------------------------------*/
2871 yyerror ("parser stack overflow");
2879 YYSTACK_FREE (yyss);
2885 #line 1039 "swf4compiler.y"