From ea87e32fc17cce0b6633b88df1855f538efe9652 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Sat, 14 Nov 2009 18:55:02 -0800 Subject: [PATCH] fixed some compiler warnings, fixed as3compile spec for-in.as --- lib/MD5.c | 48 ++-- lib/as3/Makefile | 2 +- lib/as3/common.h | 2 +- lib/as3/expr.c | 17 +- lib/as3/expr.h | 1 + lib/as3/optimizations.txt | 19 ++ lib/as3/parser.tab.c | 542 +++++++++++++++++++++++++++++++++++++++++---- lib/as3/parser.tab.h | 23 +- lib/as3/parser.y | 30 ++- lib/as3/pool.c | 6 +- lib/as3/scripts.c | 11 +- lib/as3/tokenizer.h | 1 + lib/as3/tokenizer.lex | 2 +- lib/as3/tokenizer.yy.c | 2 +- lib/q.c | 10 +- 15 files changed, 606 insertions(+), 110 deletions(-) create mode 100644 lib/as3/optimizations.txt diff --git a/lib/MD5.c b/lib/MD5.c index 42bd0a9..23ada81 100644 --- a/lib/MD5.c +++ b/lib/MD5.c @@ -32,6 +32,7 @@ #include "../config.h" +#include #include #include @@ -54,17 +55,16 @@ #endif #endif -typedef long unsigned int u_int32_t; -typedef long long unsigned int u_int64_t; -typedef unsigned char u_int8_t; +#include "types.h" + typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned char u_char; typedef struct { union { - u_int32_t md5_state32[4]; - u_int8_t md5_state8[16]; + U32 md5_state32[4]; + U8 md5_state8[16]; } md5_st; #define md5_sta md5_st.md5_state32[0] @@ -74,20 +74,20 @@ typedef struct { #define md5_st8 md5_st.md5_state8 union { - u_int64_t md5_count64; - u_int8_t md5_count8[8]; + U64 md5_count64; + U8 md5_count8[8]; } md5_count; #define md5_n md5_count.md5_count64 #define md5_n8 md5_count.md5_count8 u_int md5_i; - u_int8_t md5_buf[MD5_BUFLEN]; + U8 md5_buf[MD5_BUFLEN]; } md5_ctxt; static void md5_init(md5_ctxt *); -static void md5_loop(md5_ctxt *, const u_int8_t *, u_int); +static void md5_loop(md5_ctxt *, const U8 *, u_int); static void md5_pad(md5_ctxt *); -static void md5_result(u_int8_t *, md5_ctxt *); +static void md5_result(U8 *, md5_ctxt *); /* compatibility */ #define MD5_CTX md5_ctxt @@ -391,7 +391,7 @@ char * crypt_md5(const char *pw, const char *salt) #define MD5_D0 0x10325476 /* Integer part of 4294967296 times abs(sin(i)), where i is in radians. */ -static const u_int32_t T[65] = { +static const U32 T[65] = { 0, 0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501, @@ -414,7 +414,7 @@ static const u_int32_t T[65] = { 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391, }; -static const u_int8_t md5_paddat[MD5_BUFLEN] = { +static const U8 md5_paddat[MD5_BUFLEN] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -425,7 +425,7 @@ static const u_int8_t md5_paddat[MD5_BUFLEN] = { 0, 0, 0, 0, 0, 0, 0, 0, }; -static void md5_calc(u_int8_t *, md5_ctxt *); +static void md5_calc(U8 *, md5_ctxt *); static void md5_init(md5_ctxt *ctxt) { @@ -438,7 +438,7 @@ static void md5_init(md5_ctxt *ctxt) bzero(ctxt->md5_buf, sizeof(ctxt->md5_buf)); } -static void md5_loop(md5_ctxt *ctxt, const u_int8_t *input, u_int len) +static void md5_loop(md5_ctxt *ctxt, const U8 *input, u_int len) { u_int gap, i; @@ -451,7 +451,7 @@ static void md5_loop(md5_ctxt *ctxt, const u_int8_t *input, u_int len) md5_calc(ctxt->md5_buf, ctxt); for (i = gap; i + MD5_BUFLEN <= len; i += MD5_BUFLEN) { - md5_calc((u_int8_t *)(input + i), ctxt); + md5_calc((U8 *)(input + i), ctxt); } ctxt->md5_i = len - i; @@ -501,7 +501,7 @@ static void md5_pad(md5_ctxt *ctxt) md5_calc(ctxt->md5_buf, ctxt); } -static void md5_result(u_int8_t *digest, md5_ctxt *ctxt) +static void md5_result(U8 *digest, md5_ctxt *ctxt) { /* 4 byte words */ #if BYTE_ORDER == LITTLE_ENDIAN @@ -519,20 +519,20 @@ static void md5_result(u_int8_t *digest, md5_ctxt *ctxt) #endif } -static void md5_calc(u_int8_t *b64, md5_ctxt *ctxt) +static void md5_calc(U8 *b64, md5_ctxt *ctxt) { - u_int32_t A = ctxt->md5_sta; - u_int32_t B = ctxt->md5_stb; - u_int32_t C = ctxt->md5_stc; - u_int32_t D = ctxt->md5_std; + U32 A = ctxt->md5_sta; + U32 B = ctxt->md5_stb; + U32 C = ctxt->md5_stc; + U32 D = ctxt->md5_std; #if BYTE_ORDER == LITTLE_ENDIAN - u_int32_t *X = (u_int32_t *)b64; + U32 *X = (U32 *)b64; #endif #if BYTE_ORDER == BIG_ENDIAN - u_int32_t X[16]; + U32 X[16]; /* 4 byte words */ /* what a brute force but fast! */ - u_int8_t *y = (u_int8_t *)X; + U8 *y = (U8 *)X; y[ 0] = b64[ 3]; y[ 1] = b64[ 2]; y[ 2] = b64[ 1]; y[ 3] = b64[ 0]; y[ 4] = b64[ 7]; y[ 5] = b64[ 6]; y[ 6] = b64[ 5]; y[ 7] = b64[ 4]; y[ 8] = b64[11]; y[ 9] = b64[10]; y[10] = b64[ 9]; y[11] = b64[ 8]; diff --git a/lib/as3/Makefile b/lib/as3/Makefile index 865ddbe..be18901 100644 --- a/lib/as3/Makefile +++ b/lib/as3/Makefile @@ -20,7 +20,7 @@ main.o: main.c parser.tab.h parser.h mklib.o: mklib.c parser.tab.h parser.h $(C) mklib.c -o mklib.o -parser: main.o tokenizer.yy.o ../librfxswf.a ../libbase.a parser.tab.h +parser: main.o tokenizer.yy.c ../librfxswf.a ../libbase.a parser.tab.h $(L) main.o ../librfxswf.a ../libbase.a -o parser -lz rfxswf_modules=../drawer.o ../rfxswf.o ../modules/*.o ../lame/*.o ../action/*.o ../MD5.o $(MODULES) diff --git a/lib/as3/common.h b/lib/as3/common.h index 35601cc..d0b4adf 100644 --- a/lib/as3/common.h +++ b/lib/as3/common.h @@ -24,7 +24,7 @@ #ifndef __as3_common_h__ #define __as3_common_h__ - +extern int as3_lex(); extern int as3_verbosity; extern int as3_pass; #define syntaxerror as3_error diff --git a/lib/as3/expr.c b/lib/as3/expr.c index 33491d3..7a6d32c 100644 --- a/lib/as3/expr.c +++ b/lib/as3/expr.c @@ -2636,7 +2636,16 @@ exec: node_const_exec typedcode_t node_code_write(node_t*n) { - syntaxerror("not implemented yet"); + typedcode_t t; + t.c = 0; + int tmp = gettempvar(); + t.c = abc_setlocal(t.c, tmp); + code_t*w = toreadwrite(n->code.c, abc_getlocal(0,tmp), 1, 0, 0); + t.c = code_append(t.c, w); + t.c = abc_kill(t.c, tmp); + n->code.c=0; + t.t = n->code.t; + return t; } typedcode_t node_code_read(node_t*n) { @@ -2822,6 +2831,12 @@ typedcode_t node_read(node_t*n) return t; } } +typedcode_t node_write(node_t*n) +{ + typedcode_t t = n->type->write(n); + node_free(n); + return t; +} code_t* node_exec(node_t*n) { code_t*c = n->type->exec(n); diff --git a/lib/as3/expr.h b/lib/as3/expr.h index 2125872..d216c2c 100644 --- a/lib/as3/expr.h +++ b/lib/as3/expr.h @@ -141,6 +141,7 @@ node_t* mknode2(nodetype_t*t, node_t*left, node_t*right); node_t* mknode3(nodetype_t*t, node_t*one, node_t*two, node_t*three); void node_free(node_t*n); typedcode_t node_read(node_t*n); //read and free +typedcode_t node_write(node_t*n); //write and free code_t* node_exec(node_t*n); //exec and free constant_t node_eval(node_t*n); //eval and free void node_dump(node_t*n); diff --git a/lib/as3/optimizations.txt b/lib/as3/optimizations.txt new file mode 100644 index 0000000..4c37b9f --- /dev/null +++ b/lib/as3/optimizations.txt @@ -0,0 +1,19 @@ +* "push;pop" can be removed (if there's no jumppoint) +* "push;coerce;pop" can be removed (if there's no jumppoint) +* "getlocal_i;pop" can be removed +* "goto next;next:" can be removed (if there's no jumppoint) +* "setlocal_i;getlocal_i" can be changed to "dup;setlocal_i" +* for a variable without any getlocal_i, all dup;setlocal_i can be removed +* getlocal can be changed to getlocal_i for i<4, same for setlocal +* greater followed by iftrue can be reduced to ifgt +* equals followed by iffalse can be reduced to ifne (etc.) +* callproperty;(coerce);pop can changed to callpropvoid +* label can be removed +* "getlocal_i;setlocal_i" can be removed +* "dup;xxx;pop" can be reduced to xxx (xxx=setlocal_i, setglobalslot, pushscope) +* "getlocal_i;increment;setlocal_i" can be replaced by inclocal_i +* [iffalse xx;jump yy;xx: -> iftrue yy] +* a jump to a jump can be redirected +* sort variable indices by usage +* coerce*;returnvalue can be reduced to returnvalue +* setlocal_i;getlocal_j;getlocal_i can be changed to dup;setlocal_i;getlocal_j,swap (makes it possible to remove i if not otherwise used) diff --git a/lib/as3/parser.tab.c b/lib/as3/parser.tab.c index b5ee375..5e6b060 100644 --- a/lib/as3/parser.tab.c +++ b/lib/as3/parser.tab.c @@ -1,21 +1,21 @@ -/* A Bison parser, made by GNU Bison 2.4.277-62c99-dirty. */ +/* A Bison parser, made by GNU Bison 2.4.1. */ /* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free - Software Foundation, Inc. - + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -28,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -46,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4.277-62c99-dirty" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "./skeleton.m4" @@ -74,6 +74,7 @@ /* Copy the first part of user declarations. */ + /* Line 198 of skeleton.m4 */ #line 23 "parser.y" @@ -95,12 +96,13 @@ extern int a3_lex(); + /* Line 198 of skeleton.m4 */ -#line 100 "parser.tab.c" +#line 102 "parser.tab.c" /* Enabling traces. */ #ifndef YYDEBUG -# define YYDEBUG b4_debug_flag +# define YYDEBUG 0 #endif /* Enabling verbose error messages. */ @@ -108,7 +110,7 @@ extern int a3_lex(); # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else -# define YYERROR_VERBOSE b4_error_verbose_flag +# define YYERROR_VERBOSE 1 #endif /* Enabling the token table. */ @@ -237,10 +239,12 @@ extern int a3_lex(); #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union /* Line 223 of skeleton.m4 */ +typedef union +/* Line 223 of skeleton.m4 */ #line 47 "parser.y" tokenunion { + /* Line 223 of skeleton.m4 */ #line 47 "parser.y" @@ -275,8 +279,9 @@ tokenunion } catch_list; + /* Line 223 of skeleton.m4 */ -#line 280 "parser.tab.c" +#line 285 "parser.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -285,6 +290,7 @@ tokenunion /* Copy the second part of user declarations. */ + /* Line 273 of skeleton.m4 */ #line 276 "parser.y" @@ -933,7 +939,7 @@ static namespace_t modifiers2access(modifiers_t*mod) syntaxerror("invalid combination of access levels and namespaces"); ns.access = ACCESS_NAMESPACE; state_t*s = state; - const char*url = (const char*)trie_lookup(active_namespaces, mod->ns); + const char*url = (const char*)trie_lookup(active_namespaces, (unsigned char*)mod->ns); if(!url) { /* shouldn't happen- the tokenizer only reports something as a namespace if it was already registered */ @@ -1974,9 +1980,11 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) #define PASS_ALWAYS }} {{ + /* Line 273 of skeleton.m4 */ -#line 1979 "parser.tab.c" +#line 1986 "parser.tab.c" /* Unqualified %code blocks. */ + /* Line 274 of skeleton.m4 */ #line 2077 "parser.y" @@ -1993,6 +2001,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) return 1; } + /* Line 274 of skeleton.m4 */ #line 2528 "parser.y" @@ -2015,6 +2024,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) free(s); } + /* Line 274 of skeleton.m4 */ #line 2667 "parser.y" @@ -2076,14 +2086,24 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) return trait_new_member(traits, 0, multiname_clone(&mname), 0); } + /* Line 274 of skeleton.m4 */ #line 2847 "parser.y" static int xml_level = 0; + /* Line 274 of skeleton.m4 */ #line 3655 "parser.y" + node_t* var_read(variable_t*v) + { + typedcode_t o; + o.c = abc_getlocal(0, v->index); + o.t = v->type; + return mkcodenode(o); + } + node_t* resolve_identifier(char*name) { typedcode_t o; @@ -2097,9 +2117,7 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) /* look at variables */ if((v = find_variable(state, name))) { // name is a local variable - o.c = abc_getlocal(o.c, v->index); - o.t = v->type; - return mkcodenode(o); + return var_read(v); } if((v = find_slot(state->method, name))) { o.c = abc_getscopeobject(o.c, 1); @@ -2197,8 +2215,9 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) } } + /* Line 274 of skeleton.m4 */ -#line 3795 "parser.y" +#line 3801 "parser.y" void add_active_url(const char*url) { @@ -2208,8 +2227,9 @@ code_t* insert_finally(code_t*c, code_t*finally, int tempvar) } + /* Line 274 of skeleton.m4 */ -#line 2213 "parser.tab.c" +#line 2233 "parser.tab.c" #ifdef short # undef short @@ -2487,15 +2507,157 @@ static const yytype_uint8 yytranslate[] = #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const int yyprhs[] = +static const yytype_uint16 yyprhs[] = { - b4_prhs + 0, 0, 3, 5, 6, 8, 10, 13, 15, 17, + 19, 21, 23, 25, 30, 32, 33, 35, 37, 40, + 42, 44, 46, 48, 50, 55, 60, 62, 64, 65, + 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, + 88, 90, 92, 94, 96, 100, 103, 105, 107, 109, + 111, 113, 115, 117, 122, 125, 127, 129, 130, 134, + 137, 138, 141, 144, 146, 150, 154, 155, 158, 159, + 162, 169, 170, 172, 174, 178, 180, 183, 187, 196, + 203, 209, 216, 218, 221, 223, 226, 227, 229, 231, + 234, 236, 239, 244, 248, 249, 258, 259, 269, 270, + 276, 278, 281, 283, 286, 288, 289, 296, 299, 301, + 306, 309, 311, 313, 315, 317, 319, 323, 325, 326, + 333, 334, 340, 343, 346, 351, 352, 354, 356, 359, + 361, 363, 365, 367, 369, 371, 373, 375, 377, 379, + 380, 383, 384, 387, 388, 391, 392, 402, 403, 412, + 413, 415, 417, 420, 422, 427, 429, 431, 433, 434, + 436, 438, 441, 443, 446, 455, 457, 459, 460, 465, + 467, 471, 475, 476, 479, 481, 483, 485, 487, 489, + 491, 493, 495, 497, 499, 501, 503, 504, 505, 510, + 511, 516, 517, 520, 523, 526, 529, 533, 535, 537, + 538, 540, 547, 558, 570, 572, 575, 577, 581, 585, + 589, 593, 594, 596, 599, 604, 608, 610, 615, 618, + 620, 622, 623, 624, 637, 639, 640, 641, 652, 654, + 658, 660, 662, 664, 668, 670, 672, 674, 677, 678, + 679, 683, 684, 686, 688, 690, 693, 696, 697, 702, + 707, 712, 715, 717, 720, 722, 724, 726, 730, 732, + 736, 737, 739, 741, 743, 745, 747, 749, 753, 759, + 761, 763, 765, 767, 769, 771, 773, 775, 777, 779, + 783, 787, 791, 795, 799, 803, 807, 811, 815, 819, + 823, 827, 830, 833, 837, 841, 845, 849, 853, 857, + 861, 865, 869, 873, 877, 881, 885, 889, 893, 896, + 899, 901, 905, 908, 913, 917, 921, 925, 929, 933, + 937, 941, 945, 949, 953, 957, 961, 967, 970, 973, + 976, 979, 983, 986, 987, 994, 996, 998, 1000, 1002, + 1004, 1010, 1014, 1020, 1025, 1030, 1037, 1044, 1048, 1050, + 1053, 1058, 1063, 1066, 1071 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const int yyrhs[] = +static const yytype_int16 yyrhs[] = { - b4_rhs + 137, 0, -1, 138, -1, -1, 139, -1, 140, -1, + 139, 140, -1, 188, -1, 200, -1, 198, -1, 234, + -1, 209, -1, 149, -1, 151, 128, 138, 134, -1, + 101, -1, -1, 142, -1, 143, -1, 142, 143, -1, + 200, -1, 198, -1, 234, -1, 209, -1, 149, -1, + 151, 128, 141, 134, -1, 126, 150, 261, 127, -1, + 101, -1, 145, -1, -1, 145, 147, -1, 147, -1, + 269, -1, 191, -1, 163, -1, 164, -1, 165, -1, + 166, -1, 173, -1, 159, -1, 185, -1, 181, -1, + 257, -1, 270, -1, 268, -1, 128, 145, 134, -1, + 128, 134, -1, 101, -1, 146, -1, 153, -1, 167, + -1, 168, -1, 253, -1, 183, -1, 151, 128, 145, + 134, -1, 147, 101, -1, 147, -1, 146, -1, -1, + 3, 91, 3, -1, 104, 261, -1, -1, 46, 154, + -1, 32, 154, -1, 155, -1, 154, 102, 155, -1, + 3, 244, 152, -1, -1, 157, 148, -1, -1, 66, + 156, -1, 65, 124, 255, 135, 156, 158, -1, -1, + 153, -1, 257, -1, 46, 3, 244, -1, 3, -1, + 11, 124, -1, 11, 50, 124, -1, 162, 160, 101, + 255, 101, 257, 135, 156, -1, 162, 161, 69, 255, + 135, 156, -1, 12, 124, 255, 135, 156, -1, 13, + 156, 12, 124, 255, 135, -1, 67, -1, 67, 3, + -1, 30, -1, 30, 3, -1, -1, 170, -1, 172, + -1, 170, 172, -1, 171, -1, 170, 171, -1, 34, + 261, 106, 144, -1, 62, 106, 144, -1, -1, 14, + 124, 174, 261, 135, 128, 169, 134, -1, -1, 33, + 124, 3, 244, 135, 176, 128, 144, 134, -1, -1, + 27, 128, 178, 144, 134, -1, 175, -1, 179, 175, + -1, 179, -1, 179, 177, -1, 177, -1, -1, 52, + 128, 182, 144, 134, 180, -1, 37, 255, -1, 37, + -1, 39, 124, 255, 135, -1, 184, 148, -1, 3, + -1, 17, -1, 16, -1, 29, -1, 4, -1, 187, + 129, 186, -1, 186, -1, -1, 17, 187, 128, 189, + 141, 134, -1, -1, 17, 128, 190, 141, 134, -1, + 41, 3, -1, 41, 240, -1, 41, 187, 129, 117, + -1, -1, 193, -1, 194, -1, 193, 194, -1, 20, + -1, 21, -1, 18, -1, 38, -1, 47, -1, 49, + -1, 48, -1, 25, -1, 23, -1, 4, -1, -1, + 54, 241, -1, -1, 54, 242, -1, -1, 15, 242, + -1, -1, 192, 31, 3, 195, 197, 128, 199, 202, + 134, -1, -1, 192, 44, 3, 196, 128, 201, 205, + 134, -1, -1, 203, -1, 204, -1, 203, 204, -1, + 101, -1, 151, 128, 202, 134, -1, 209, -1, 234, + -1, 146, -1, -1, 206, -1, 207, -1, 206, 207, + -1, 101, -1, 46, 3, -1, 192, 26, 233, 3, + 124, 230, 135, 244, -1, 46, -1, 32, -1, -1, + 192, 208, 210, 211, -1, 212, -1, 211, 102, 212, + -1, 3, 244, 152, -1, -1, 104, 261, -1, 8, + -1, 9, -1, 10, -1, 5, -1, 56, -1, 55, + -1, 45, -1, 28, -1, 29, -1, 227, -1, 111, + -1, 112, -1, -1, -1, 128, 261, 220, 134, -1, + -1, 128, 261, 222, 134, -1, -1, 223, 219, -1, + 223, 5, -1, 223, 112, -1, 227, 223, -1, 224, + 227, 223, -1, 3, -1, 221, -1, -1, 228, -1, + 216, 225, 226, 116, 218, 112, -1, 216, 225, 226, + 217, 223, 111, 116, 225, 218, 112, -1, 216, 225, + 226, 217, 223, 224, 111, 116, 225, 218, 112, -1, + 229, -1, 228, 229, -1, 221, -1, 221, 104, 5, + -1, 221, 104, 221, -1, 3, 104, 221, -1, 3, + 104, 5, -1, -1, 231, -1, 95, 232, -1, 231, + 102, 95, 232, -1, 231, 102, 232, -1, 232, -1, + 3, 106, 243, 213, -1, 3, 213, -1, 51, -1, + 35, -1, -1, -1, 192, 26, 233, 3, 124, 230, + 135, 244, 128, 235, 144, 134, -1, 3, -1, -1, + -1, 26, 236, 124, 230, 135, 244, 128, 238, 144, + 134, -1, 186, -1, 187, 129, 186, -1, 240, -1, + 239, -1, 241, -1, 242, 102, 241, -1, 241, -1, + 117, -1, 36, -1, 106, 243, -1, -1, -1, 124, + 246, 135, -1, -1, 247, -1, 248, -1, 254, -1, + 247, 102, -1, 248, 254, -1, -1, 24, 261, 249, + 245, -1, 261, 124, 246, 135, -1, 53, 124, 246, + 135, -1, 64, 261, -1, 42, -1, 42, 255, -1, + 261, -1, 256, -1, 261, -1, 256, 102, 261, -1, + 261, -1, 257, 102, 261, -1, -1, 260, -1, 3, + -1, 5, -1, 8, -1, 9, -1, 10, -1, 259, + 106, 254, -1, 260, 102, 259, 106, 254, -1, 237, + -1, 265, -1, 250, -1, 252, -1, 251, -1, 266, + -1, 214, -1, 215, -1, 6, -1, 19, -1, 126, + 246, 127, -1, 71, 258, 134, -1, 261, 111, 261, + -1, 261, 112, 261, -1, 261, 76, 261, -1, 261, + 77, 261, -1, 261, 72, 261, -1, 261, 73, 261, + -1, 261, 75, 261, -1, 261, 74, 261, -1, 261, + 89, 261, -1, 261, 90, 261, -1, 120, 261, -1, + 119, 261, -1, 261, 109, 261, -1, 261, 108, 261, + -1, 261, 107, 261, -1, 261, 98, 261, -1, 261, + 97, 261, -1, 261, 96, 261, -1, 261, 116, 261, + -1, 261, 118, 261, -1, 261, 115, 261, -1, 261, + 114, 261, -1, 261, 117, 261, -1, 261, 69, 261, + -1, 261, 70, 261, -1, 261, 40, 261, -1, 261, + 68, 261, -1, 43, 261, -1, 36, 261, -1, 36, + -1, 124, 256, 135, -1, 114, 261, -1, 261, 126, + 261, 127, -1, 261, 81, 261, -1, 261, 80, 261, + -1, 261, 87, 261, -1, 261, 86, 261, -1, 261, + 88, 261, -1, 261, 79, 261, -1, 261, 78, 261, + -1, 261, 85, 261, -1, 261, 82, 261, -1, 261, + 83, 261, -1, 261, 84, 261, -1, 261, 104, 261, + -1, 261, 105, 261, 106, 261, -1, 261, 93, -1, + 261, 92, -1, 93, 261, -1, 92, 261, -1, 53, + 129, 3, -1, 130, 3, -1, -1, 261, 129, 124, + 262, 261, 135, -1, 3, -1, 117, -1, 4, -1, + 186, -1, 117, -1, 261, 129, 263, 91, 264, -1, + 261, 94, 264, -1, 261, 129, 126, 261, 127, -1, + 261, 129, 130, 264, -1, 261, 94, 130, 264, -1, + 261, 129, 130, 126, 261, 127, -1, 261, 94, 130, + 126, 261, 127, -1, 261, 129, 264, -1, 3, -1, + 16, 3, -1, 16, 3, 104, 3, -1, 16, 3, + 104, 5, -1, 192, 267, -1, 63, 16, 104, 261, + -1, 22, 16, 241, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -2535,8 +2697,8 @@ static const yytype_uint16 yyrline[] = 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3425, 3426, 3427, 3428, 3430, 3445, 3453, 3453, 3507, 3508, 3509, 3510, 3511, - 3519, 3537, 3544, 3555, 3562, 3569, 3579, 3590, 3770, 3804, - 3811, 3818, 3825, 3847, 3853 + 3519, 3537, 3544, 3555, 3562, 3569, 3579, 3590, 3776, 3810, + 3817, 3824, 3831, 3853, 3859 }; #endif @@ -4151,6 +4313,7 @@ yydestruct (yymsg, yytype, yyvaluep) switch (yytype) { + default: break; } @@ -4158,15 +4321,13 @@ yydestruct (yymsg, yytype, yyvaluep) /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +#if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +#if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); @@ -4455,6 +4616,7 @@ yyreduce: case 13: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 1980 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} @@ -4465,6 +4627,7 @@ yyreduce: case 24: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 1992 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} @@ -4475,6 +4638,7 @@ yyreduce: case 25: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 1993 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(2) - (4)].number_int);PASS1 as3_warning("embed command ignored");} @@ -4485,6 +4649,7 @@ yyreduce: case 27: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 1996 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} @@ -4495,6 +4660,7 @@ yyreduce: case 28: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 1997 "parser.y" {(yyval.code)=code_new();} @@ -4505,6 +4671,7 @@ yyreduce: case 29: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 1999 "parser.y" { @@ -4517,6 +4684,7 @@ yyreduce: case 30: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2002 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} @@ -4527,6 +4695,7 @@ yyreduce: case 44: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2018 "parser.y" {(yyval.code)=(yyvsp[(2) - (3)].code);} @@ -4537,6 +4706,7 @@ yyreduce: case 45: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2019 "parser.y" {(yyval.code)=0;} @@ -4547,6 +4717,7 @@ yyreduce: case 46: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2022 "parser.y" {(yyval.code)=0;} @@ -4557,6 +4728,7 @@ yyreduce: case 53: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2029 "parser.y" { @@ -4575,6 +4747,7 @@ yyreduce: case 54: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2041 "parser.y" {(yyval.code)=(yyvsp[(1) - (2)].code);} @@ -4585,6 +4758,7 @@ yyreduce: case 55: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2042 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} @@ -4595,6 +4769,7 @@ yyreduce: case 56: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2046 "parser.y" { @@ -4612,6 +4787,7 @@ yyreduce: case 57: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2057 "parser.y" { @@ -4626,6 +4802,7 @@ yyreduce: case 58: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2065 "parser.y" { @@ -4644,6 +4821,7 @@ yyreduce: case 59: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2092 "parser.y" {(yyval.node)=(yyvsp[(2) - (2)].node);} @@ -4654,6 +4832,7 @@ yyreduce: case 60: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2093 "parser.y" {(yyval.node)=mkdummynode();} @@ -4664,6 +4843,7 @@ yyreduce: case 61: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2095 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} @@ -4674,6 +4854,7 @@ yyreduce: case 62: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2096 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} @@ -4684,6 +4865,7 @@ yyreduce: case 63: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2098 "parser.y" {(yyval.code) = (yyvsp[(1) - (1)].code);} @@ -4694,6 +4876,7 @@ yyreduce: case 64: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2099 "parser.y" {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));} @@ -4704,6 +4887,7 @@ yyreduce: case 65: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2102 "parser.y" { @@ -4770,6 +4954,7 @@ PASS2 case 66: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2162 "parser.y" {PASS12 new_state();} @@ -4780,6 +4965,7 @@ PASS2 case 67: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2162 "parser.y" { @@ -4793,6 +4979,7 @@ PASS2 case 68: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2166 "parser.y" {(yyval.code) = code_new();} @@ -4803,6 +4990,7 @@ PASS2 case 69: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2167 "parser.y" {(yyval.code)=(yyvsp[(2) - (2)].code);} @@ -4813,6 +5001,7 @@ PASS2 case 70: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2170 "parser.y" { @@ -4837,6 +5026,7 @@ PASS2 case 71: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2186 "parser.y" {(yyval.code)=code_new();} @@ -4847,6 +5037,7 @@ PASS2 case 74: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2193 "parser.y" { @@ -4860,6 +5051,7 @@ PASS2 case 75: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2197 "parser.y" { @@ -4873,6 +5065,7 @@ PASS2 case 76: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2202 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;} @@ -4883,6 +5076,7 @@ PASS2 case 77: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2203 "parser.y" {PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;} @@ -4893,6 +5087,7 @@ PASS2 case 78: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2205 "parser.y" { @@ -4921,13 +5116,13 @@ PASS2 case 79: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2225 "parser.y" { - variable_t*var = find_variable(state, (yyvsp[(2) - (6)].id)); - if(!var) { - syntaxerror("variable %s not known in this scope", (yyvsp[(2) - (6)].id)); - } + node_t*n = resolve_identifier((yyvsp[(2) - (6)].id)); + typedcode_t w = node_write(n); + int it = alloc_local(); int array = alloc_local(); @@ -4948,8 +5143,9 @@ PASS2 (yyval.code) = abc_nextname((yyval.code)); else (yyval.code) = abc_nextvalue((yyval.code)); - (yyval.code) = converttype((yyval.code), 0, var->type); - (yyval.code) = abc_setlocal((yyval.code), var->index); + + (yyval.code) = converttype((yyval.code), 0, w.t); + (yyval.code) = code_append((yyval.code), w.c); (yyval.code) = code_append((yyval.code), (yyvsp[(6) - (6)].code)); (yyval.code) = abc_jump((yyval.code), loopstart); @@ -4973,6 +5169,7 @@ PASS2 case 80: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2269 "parser.y" { @@ -4997,6 +5194,7 @@ PASS2 case 81: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2285 "parser.y" { @@ -5017,6 +5215,7 @@ PASS2 case 82: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2297 "parser.y" { @@ -5029,6 +5228,7 @@ PASS2 case 83: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2300 "parser.y" { @@ -5041,6 +5241,7 @@ PASS2 case 84: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2303 "parser.y" { @@ -5053,6 +5254,7 @@ PASS2 case 85: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2306 "parser.y" { @@ -5065,6 +5267,7 @@ PASS2 case 86: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2310 "parser.y" {(yyval.code)=0;} @@ -5075,6 +5278,7 @@ PASS2 case 87: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2311 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} @@ -5085,6 +5289,7 @@ PASS2 case 88: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2312 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} @@ -5095,6 +5300,7 @@ PASS2 case 89: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2313 "parser.y" {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));} @@ -5105,6 +5311,7 @@ PASS2 case 90: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2314 "parser.y" {(yyval.code)=(yyvsp[(1) - (1)].code);} @@ -5115,6 +5322,7 @@ PASS2 case 91: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2315 "parser.y" {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));} @@ -5125,6 +5333,7 @@ PASS2 case 92: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2317 "parser.y" { @@ -5145,6 +5354,7 @@ PASS2 case 93: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2328 "parser.y" { @@ -5157,6 +5367,7 @@ PASS2 case 94: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2331 "parser.y" {PASS12 new_state();state->switch_var=alloc_local();} @@ -5167,6 +5378,7 @@ PASS2 case 95: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2331 "parser.y" { @@ -5204,6 +5416,7 @@ PASS2 case 96: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2362 "parser.y" {PASS12 new_state(); @@ -5218,6 +5431,7 @@ PASS2 case 97: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2367 "parser.y" { @@ -5247,6 +5461,7 @@ PASS2 case 98: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2387 "parser.y" {PASS12 new_state();state->exception_name=0;} @@ -5257,6 +5472,7 @@ PASS2 case 99: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2387 "parser.y" { @@ -5281,6 +5497,7 @@ PASS2 case 100: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2403 "parser.y" {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));} @@ -5291,6 +5508,7 @@ PASS2 case 101: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2404 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));} @@ -5301,6 +5519,7 @@ PASS2 case 102: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2405 "parser.y" {(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);} @@ -5311,6 +5530,7 @@ PASS2 case 103: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2406 "parser.y" { @@ -5328,6 +5548,7 @@ PASS2 case 104: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2414 "parser.y" { @@ -5345,6 +5566,7 @@ PASS2 case 105: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2423 "parser.y" {PASS12 new_state(); @@ -5358,6 +5580,7 @@ PASS2 case 106: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2426 "parser.y" { @@ -5410,6 +5633,7 @@ PASS2 case 107: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2472 "parser.y" { @@ -5423,6 +5647,7 @@ PASS2 case 108: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2476 "parser.y" { @@ -5440,6 +5665,7 @@ PASS2 case 109: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2487 "parser.y" { @@ -5459,6 +5685,7 @@ PASS2 case 110: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2497 "parser.y" { @@ -5482,6 +5709,7 @@ PASS2 case 112: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2515 "parser.y" {PASS12 (yyval.id)="package";} @@ -5492,6 +5720,7 @@ PASS2 case 113: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2516 "parser.y" {PASS12 (yyval.id)="namespace";} @@ -5502,6 +5731,7 @@ PASS2 case 114: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2517 "parser.y" {PASS12 (yyval.id)="NaN";} @@ -5512,6 +5742,7 @@ PASS2 case 115: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2518 "parser.y" {PASS12 (yyval.id)=(yyvsp[(1) - (1)].id);} @@ -5522,6 +5753,7 @@ PASS2 case 116: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2520 "parser.y" {PASS12 (yyval.id) = concat3((yyvsp[(1) - (3)].id),".",(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;} @@ -5532,6 +5764,7 @@ PASS2 case 117: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2521 "parser.y" {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));} @@ -5542,6 +5775,7 @@ PASS2 case 118: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2523 "parser.y" {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;} @@ -5552,6 +5786,7 @@ PASS2 case 119: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2524 "parser.y" {PASS12 endpackage();(yyval.code)=0;} @@ -5562,6 +5797,7 @@ PASS2 case 120: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2525 "parser.y" {PASS12 startpackage("");} @@ -5572,6 +5808,7 @@ PASS2 case 121: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2526 "parser.y" {PASS12 endpackage();(yyval.code)=0;} @@ -5582,6 +5819,7 @@ PASS2 case 122: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2549 "parser.y" { @@ -5599,6 +5837,7 @@ PASS2 case 123: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2557 "parser.y" { @@ -5619,6 +5858,7 @@ PASS2 case 124: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2568 "parser.y" { @@ -5641,6 +5881,7 @@ PASS2 case 125: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2584 "parser.y" {PASS12 (yyval.flags).flags=0;(yyval.flags).ns=0;} @@ -5651,6 +5892,7 @@ PASS2 case 126: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2585 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} @@ -5661,6 +5903,7 @@ PASS2 case 127: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2586 "parser.y" {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);} @@ -5671,6 +5914,7 @@ PASS2 case 128: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2587 "parser.y" { @@ -5687,6 +5931,7 @@ PASS2 case 129: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2594 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PUBLIC;(yyval.flags).ns=0;} @@ -5697,6 +5942,7 @@ PASS2 case 130: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2595 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PRIVATE;(yyval.flags).ns=0;} @@ -5707,6 +5953,7 @@ PASS2 case 131: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2596 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PROTECTED;(yyval.flags).ns=0;} @@ -5717,6 +5964,7 @@ PASS2 case 132: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2597 "parser.y" {PASS12 (yyval.flags).flags=FLAG_STATIC;(yyval.flags).ns=0;} @@ -5727,6 +5975,7 @@ PASS2 case 133: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2598 "parser.y" {PASS12 (yyval.flags).flags=FLAG_DYNAMIC;(yyval.flags).ns=0;} @@ -5737,6 +5986,7 @@ PASS2 case 134: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2599 "parser.y" {PASS12 (yyval.flags).flags=FLAG_FINAL;(yyval.flags).ns=0;} @@ -5747,6 +5997,7 @@ PASS2 case 135: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2600 "parser.y" {PASS12 (yyval.flags).flags=FLAG_OVERRIDE;(yyval.flags).ns=0;} @@ -5757,6 +6008,7 @@ PASS2 case 136: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2601 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NATIVE;(yyval.flags).ns=0;} @@ -5767,6 +6019,7 @@ PASS2 case 137: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2602 "parser.y" {PASS12 (yyval.flags).flags=FLAG_PACKAGEINTERNAL;(yyval.flags).ns=0;} @@ -5777,6 +6030,7 @@ PASS2 case 138: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2603 "parser.y" {PASS12 (yyval.flags).flags=FLAG_NAMESPACE; @@ -5789,6 +6043,7 @@ PASS2 case 139: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2607 "parser.y" {PASS12 (yyval.classinfo)=0;} @@ -5799,6 +6054,7 @@ PASS2 case 140: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2608 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} @@ -5809,6 +6065,7 @@ PASS2 case 141: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2610 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} @@ -5819,6 +6076,7 @@ PASS2 case 142: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2611 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} @@ -5829,6 +6087,7 @@ PASS2 case 143: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2613 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();} @@ -5839,6 +6098,7 @@ PASS2 case 144: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2614 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);} @@ -5849,6 +6109,7 @@ PASS2 case 145: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2618 "parser.y" {PASS12 startclass(&(yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));} @@ -5859,6 +6120,7 @@ PASS2 case 146: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2620 "parser.y" {PASS12 endclass();(yyval.code)=0;} @@ -5869,6 +6131,7 @@ PASS2 case 147: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2624 "parser.y" {PASS12 (yyvsp[(1) - (5)].flags).flags|=FLAG_INTERFACE; @@ -5880,6 +6143,7 @@ PASS2 case 148: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2627 "parser.y" {PASS12 endclass();(yyval.code)=0;} @@ -5890,6 +6154,7 @@ PASS2 case 154: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2636 "parser.y" {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);} @@ -5900,6 +6165,7 @@ PASS2 case 157: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2640 "parser.y" { @@ -5914,6 +6180,7 @@ PASS2 case 163: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2651 "parser.y" { @@ -5926,6 +6193,7 @@ PASS2 case 164: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2654 "parser.y" { @@ -5945,6 +6213,7 @@ PASS2 case 167: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2729 "parser.y" {PASS12 setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));} @@ -5955,6 +6224,7 @@ PASS2 case 168: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2729 "parser.y" {PASS12 (yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);} @@ -5965,6 +6235,7 @@ PASS2 case 169: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2731 "parser.y" {PASS12 (yyval.code)=0;} @@ -5975,6 +6246,7 @@ PASS2 case 170: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2732 "parser.y" {PASS12 (yyval.code)=0;} @@ -5985,6 +6257,7 @@ PASS2 case 171: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2735 "parser.y" { @@ -6074,6 +6347,7 @@ PASS12 case 172: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2818 "parser.y" {(yyval.constant)=0;} @@ -6084,6 +6358,7 @@ PASS12 case 173: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2819 "parser.y" { @@ -6100,6 +6375,7 @@ PASS12 case 174: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2828 "parser.y" {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));} @@ -6110,6 +6386,7 @@ PASS12 case 175: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2829 "parser.y" { @@ -6122,6 +6399,7 @@ PASS12 case 176: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2832 "parser.y" {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));} @@ -6132,6 +6410,7 @@ PASS12 case 177: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2833 "parser.y" {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);free((char*)(yyvsp[(1) - (1)].str).str);} @@ -6142,6 +6421,7 @@ PASS12 case 178: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2834 "parser.y" {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));} @@ -6152,6 +6432,7 @@ PASS12 case 179: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2835 "parser.y" {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));} @@ -6162,6 +6443,7 @@ PASS12 case 180: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2836 "parser.y" {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));} @@ -6172,6 +6454,7 @@ PASS12 case 181: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2837 "parser.y" {(yyval.constant) = constant_new_undefined((yyvsp[(1) - (1)].token));} @@ -6182,6 +6465,7 @@ PASS12 case 182: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2838 "parser.y" {(yyval.constant) = constant_new_float(__builtin_nan(""));} @@ -6192,6 +6476,7 @@ PASS12 case 183: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2851 "parser.y" { @@ -6211,6 +6496,7 @@ PASS12 case 184: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2862 "parser.y" {PASS_ALWAYS if(!xml_level++) tokenizer_begin_xml();} @@ -6221,6 +6507,7 @@ PASS12 case 185: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2863 "parser.y" {PASS_ALWAYS tokenizer_begin_xmltext();} @@ -6231,6 +6518,7 @@ PASS12 case 186: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2864 "parser.y" {PASS_ALWAYS if(!--xml_level) tokenizer_end_xml(); else tokenizer_begin_xmltext();} @@ -6241,6 +6529,7 @@ PASS12 case 187: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2866 "parser.y" {PASS_ALWAYS tokenizer_begin_xmltext();} @@ -6251,6 +6540,7 @@ PASS12 case 188: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2866 "parser.y" { @@ -6263,6 +6553,7 @@ PASS12 case 189: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2869 "parser.y" {PASS_ALWAYS tokenizer_begin_xml();} @@ -6273,6 +6564,7 @@ PASS12 case 190: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2869 "parser.y" { @@ -6285,6 +6577,7 @@ PASS12 case 191: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2872 "parser.y" {(yyval.node)=mkstringnode("");} @@ -6295,6 +6588,7 @@ PASS12 case 192: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2873 "parser.y" { @@ -6307,6 +6601,7 @@ PASS12 case 193: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2876 "parser.y" { @@ -6321,6 +6616,7 @@ PASS12 case 194: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2881 "parser.y" { @@ -6333,6 +6629,7 @@ PASS12 case 195: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2884 "parser.y" { @@ -6345,6 +6642,7 @@ PASS12 case 196: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2887 "parser.y" { @@ -6357,6 +6655,7 @@ PASS12 case 197: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2890 "parser.y" { @@ -6369,6 +6668,7 @@ PASS12 case 198: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2893 "parser.y" { @@ -6381,6 +6681,7 @@ PASS12 case 199: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2897 "parser.y" { @@ -6393,6 +6694,7 @@ PASS12 case 200: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2900 "parser.y" { @@ -6405,6 +6707,7 @@ PASS12 case 201: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2904 "parser.y" { @@ -6418,6 +6721,7 @@ PASS12 case 202: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2908 "parser.y" { @@ -6432,6 +6736,7 @@ PASS12 case 203: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2913 "parser.y" { @@ -6446,6 +6751,7 @@ PASS12 case 204: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2919 "parser.y" { @@ -6458,6 +6764,7 @@ PASS12 case 205: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2922 "parser.y" { @@ -6470,6 +6777,7 @@ PASS12 case 206: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2925 "parser.y" { @@ -6482,6 +6790,7 @@ PASS12 case 207: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2928 "parser.y" { @@ -6496,6 +6805,7 @@ PASS12 case 208: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2933 "parser.y" { @@ -6508,6 +6818,7 @@ PASS12 case 209: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2936 "parser.y" { @@ -6520,6 +6831,7 @@ PASS12 case 210: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2939 "parser.y" { @@ -6535,6 +6847,7 @@ PASS12 case 211: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2949 "parser.y" { @@ -6548,6 +6861,7 @@ PASS12 case 212: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2953 "parser.y" { @@ -6561,6 +6875,7 @@ PASS12 case 213: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2959 "parser.y" { @@ -6576,6 +6891,7 @@ PASS12 case 214: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2965 "parser.y" { @@ -6591,6 +6907,7 @@ PASS12 case 215: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2973 "parser.y" { @@ -6605,6 +6922,7 @@ PASS12 case 216: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2978 "parser.y" { @@ -6619,6 +6937,7 @@ PASS12 case 217: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2984 "parser.y" { @@ -6636,6 +6955,7 @@ PASS12 case 218: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 2992 "parser.y" { @@ -6653,6 +6973,7 @@ PASS12 case 221: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3002 "parser.y" {PASS12 (yyval.token)=0;} @@ -6663,6 +6984,7 @@ PASS12 case 222: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3005 "parser.y" {PASS12 startfunction(&(yyvsp[(1) - (9)].flags),(yyvsp[(3) - (9)].token),(yyvsp[(4) - (9)].id),&(yyvsp[(6) - (9)].params),(yyvsp[(8) - (9)].classinfo));} @@ -6673,6 +6995,7 @@ PASS12 case 223: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3006 "parser.y" { @@ -6696,6 +7019,7 @@ PASS12 case 225: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3022 "parser.y" {PASS12 (yyval.id)=0;} @@ -6706,6 +7030,7 @@ PASS12 case 226: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3024 "parser.y" {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));} @@ -6716,6 +7041,7 @@ PASS12 case 227: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3025 "parser.y" { @@ -6743,6 +7069,7 @@ PASS12 case 228: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3047 "parser.y" { @@ -6770,6 +7097,7 @@ PASS12 case 229: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3066 "parser.y" { @@ -6792,6 +7120,7 @@ PASS12 case 232: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3083 "parser.y" {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));} @@ -6802,6 +7131,7 @@ PASS12 case 233: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3084 "parser.y" {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));} @@ -6812,6 +7142,7 @@ PASS12 case 234: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3086 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);} @@ -6822,6 +7153,7 @@ PASS12 case 235: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3087 "parser.y" {PASS12 (yyval.classinfo)=TYPE_ANY;} @@ -6832,6 +7164,7 @@ PASS12 case 236: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3088 "parser.y" {PASS12 (yyval.classinfo)=TYPE_VOID;} @@ -6842,6 +7175,7 @@ PASS12 case 237: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3097 "parser.y" {PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);} @@ -6852,6 +7186,7 @@ PASS12 case 238: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3098 "parser.y" {PASS12 (yyval.classinfo)=0;} @@ -6862,6 +7197,7 @@ PASS12 case 239: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3102 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} @@ -6872,6 +7208,7 @@ PASS12 case 240: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3103 "parser.y" {(yyval.value_list)=(yyvsp[(2) - (3)].value_list);} @@ -6882,6 +7219,7 @@ PASS12 case 241: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3105 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} @@ -6892,6 +7230,7 @@ PASS12 case 244: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3109 "parser.y" {(yyval.value_list).number=1; @@ -6904,6 +7243,7 @@ PASS12 case 245: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3113 "parser.y" {(yyval.value_list) = (yyvsp[(1) - (2)].value_list);} @@ -6914,6 +7254,7 @@ PASS12 case 246: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3114 "parser.y" { @@ -6927,6 +7268,7 @@ PASS12 case 248: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3120 "parser.y" { @@ -6978,6 +7320,7 @@ PASS12 case 249: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3167 "parser.y" { @@ -7036,6 +7379,7 @@ PASS12 case 250: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3217 "parser.y" { @@ -7065,6 +7409,7 @@ PASS12 case 251: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3238 "parser.y" { @@ -7095,6 +7440,7 @@ PASS12 case 252: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3260 "parser.y" { @@ -7107,6 +7453,7 @@ PASS12 case 253: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3263 "parser.y" { @@ -7120,6 +7467,7 @@ PASS12 case 254: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3270 "parser.y" { @@ -7132,6 +7480,7 @@ PASS12 case 255: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3273 "parser.y" { @@ -7144,6 +7493,7 @@ PASS12 case 256: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3276 "parser.y" { @@ -7156,6 +7506,7 @@ PASS12 case 257: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3279 "parser.y" { @@ -7168,6 +7519,7 @@ PASS12 case 258: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3282 "parser.y" { @@ -7180,6 +7532,7 @@ PASS12 case 259: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3285 "parser.y" { @@ -7193,6 +7546,7 @@ PASS12 case 260: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3290 "parser.y" {(yyval.value_list).cc=0;(yyval.value_list).number=0;} @@ -7203,6 +7557,7 @@ PASS12 case 261: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3291 "parser.y" {(yyval.value_list)=(yyvsp[(1) - (1)].value_list);} @@ -7213,6 +7568,7 @@ PASS12 case 262: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3293 "parser.y" {(yyval.code)=abc_pushstring(0,(yyvsp[(1) - (1)].id));} @@ -7223,6 +7579,7 @@ PASS12 case 263: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3294 "parser.y" {(yyval.code)=abc_pushstring2(0,&(yyvsp[(1) - (1)].str));} @@ -7233,6 +7590,7 @@ PASS12 case 264: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3295 "parser.y" {syntaxerror("dictionary keys must be strings");} @@ -7243,6 +7601,7 @@ PASS12 case 265: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3296 "parser.y" {syntaxerror("dictionary keys must be strings");} @@ -7253,6 +7612,7 @@ PASS12 case 266: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3297 "parser.y" {syntaxerror("dictionary keys must be strings");} @@ -7263,6 +7623,7 @@ PASS12 case 267: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3299 "parser.y" { @@ -7278,6 +7639,7 @@ PASS12 case 268: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3305 "parser.y" { @@ -7293,6 +7655,7 @@ PASS12 case 269: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3314 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} @@ -7303,6 +7666,7 @@ PASS12 case 270: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3315 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} @@ -7313,6 +7677,7 @@ PASS12 case 271: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3316 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} @@ -7323,6 +7688,7 @@ PASS12 case 272: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3317 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} @@ -7333,6 +7699,7 @@ PASS12 case 273: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3318 "parser.y" {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));} @@ -7343,6 +7710,7 @@ PASS12 case 274: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3319 "parser.y" {(yyval.node) = (yyvsp[(1) - (1)].node);} @@ -7353,6 +7721,7 @@ PASS12 case 275: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3321 "parser.y" { @@ -7365,6 +7734,7 @@ PASS12 case 276: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3325 "parser.y" { @@ -7377,6 +7747,7 @@ PASS12 case 277: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3330 "parser.y" { @@ -7403,6 +7774,7 @@ PASS12 case 278: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3348 "parser.y" { @@ -7421,6 +7793,7 @@ PASS12 case 279: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3359 "parser.y" { @@ -7438,6 +7811,7 @@ PASS12 case 280: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3369 "parser.y" { @@ -7455,6 +7829,7 @@ PASS12 case 281: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3378 "parser.y" {(yyval.node) = mknode2(&node_lt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7465,6 +7840,7 @@ PASS12 case 282: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3379 "parser.y" {(yyval.node) = mknode2(&node_gt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7475,6 +7851,7 @@ PASS12 case 283: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3380 "parser.y" {(yyval.node) = mknode2(&node_le,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7485,6 +7862,7 @@ PASS12 case 284: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3381 "parser.y" {(yyval.node) = mknode2(&node_ge,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7495,6 +7873,7 @@ PASS12 case 285: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3382 "parser.y" {(yyval.node) = mknode2(&node_eqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7505,6 +7884,7 @@ PASS12 case 286: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3383 "parser.y" {(yyval.node) = mknode2(&node_eqeqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7515,6 +7895,7 @@ PASS12 case 287: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3384 "parser.y" {(yyval.node) = mknode2(&node_noteqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7525,6 +7906,7 @@ PASS12 case 288: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3385 "parser.y" {(yyval.node) = mknode2(&node_noteq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7535,6 +7917,7 @@ PASS12 case 289: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3386 "parser.y" {(yyval.node) = mknode2(&node_oror,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7545,6 +7928,7 @@ PASS12 case 290: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3387 "parser.y" {(yyval.node) = mknode2(&node_andand,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));} @@ -7555,6 +7939,7 @@ PASS12 case 291: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3388 "parser.y" {(yyval.node) = mknode1(&node_not, (yyvsp[(2) - (2)].node));} @@ -7565,6 +7950,7 @@ PASS12 case 292: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3389 "parser.y" {(yyval.node) = mknode1(&node_bitnot, (yyvsp[(2) - (2)].node));} @@ -7575,6 +7961,7 @@ PASS12 case 293: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3390 "parser.y" {(yyval.node) = mknode2(&node_bitand, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7585,6 +7972,7 @@ PASS12 case 294: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3391 "parser.y" {(yyval.node) = mknode2(&node_bitxor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7595,6 +7983,7 @@ PASS12 case 295: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3392 "parser.y" {(yyval.node) = mknode2(&node_bitor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7605,6 +7994,7 @@ PASS12 case 296: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3393 "parser.y" {(yyval.node) = mknode2(&node_shr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7615,6 +8005,7 @@ PASS12 case 297: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3394 "parser.y" {(yyval.node) = mknode2(&node_ushr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7625,6 +8016,7 @@ PASS12 case 298: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3395 "parser.y" {(yyval.node) = mknode2(&node_shl, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7635,6 +8027,7 @@ PASS12 case 299: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3396 "parser.y" {(yyval.node) = mknode2(&node_div, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7645,6 +8038,7 @@ PASS12 case 300: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3397 "parser.y" {(yyval.node) = mknode2(&node_mod, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7655,6 +8049,7 @@ PASS12 case 301: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3398 "parser.y" {(yyval.node) = mknode2(&node_plus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7665,6 +8060,7 @@ PASS12 case 302: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3399 "parser.y" {(yyval.node) = mknode2(&node_minus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7675,6 +8071,7 @@ PASS12 case 303: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3400 "parser.y" {(yyval.node) = mknode2(&node_multiply, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7685,6 +8082,7 @@ PASS12 case 304: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3401 "parser.y" {(yyval.node) = mknode2(&node_in, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7695,6 +8093,7 @@ PASS12 case 305: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3402 "parser.y" {(yyval.node) = mknode2(&node_as, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7705,6 +8104,7 @@ PASS12 case 306: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3403 "parser.y" {(yyval.node) = mknode2(&node_instanceof, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7715,6 +8115,7 @@ PASS12 case 307: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3404 "parser.y" {(yyval.node) = mknode2(&node_is, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7725,6 +8126,7 @@ PASS12 case 308: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3405 "parser.y" {(yyval.node) = mknode1(&node_typeof, (yyvsp[(2) - (2)].node));} @@ -7735,6 +8137,7 @@ PASS12 case 309: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3406 "parser.y" {(yyval.node) = mknode1(&node_void, (yyvsp[(2) - (2)].node));} @@ -7745,6 +8148,7 @@ PASS12 case 310: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3407 "parser.y" { (yyval.node) = mkconstnode(constant_new_undefined());} @@ -7755,6 +8159,7 @@ PASS12 case 311: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3408 "parser.y" { (yyval.node)=(yyvsp[(2) - (3)].node);} @@ -7765,6 +8170,7 @@ PASS12 case 312: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3409 "parser.y" {(yyval.node) = mknode1(&node_neg, (yyvsp[(2) - (2)].node));} @@ -7775,6 +8181,7 @@ PASS12 case 313: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3410 "parser.y" {(yyval.node) = mknode2(&node_arraylookup, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node));} @@ -7785,6 +8192,7 @@ PASS12 case 314: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3411 "parser.y" {(yyval.node) = mknode2(&node_muleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7795,6 +8203,7 @@ PASS12 case 315: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3412 "parser.y" {(yyval.node) = mknode2(&node_modeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7805,6 +8214,7 @@ PASS12 case 316: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3413 "parser.y" {(yyval.node) = mknode2(&node_shleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7815,6 +8225,7 @@ PASS12 case 317: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3414 "parser.y" {(yyval.node) = mknode2(&node_shreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7825,6 +8236,7 @@ PASS12 case 318: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3415 "parser.y" {(yyval.node) = mknode2(&node_ushreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7835,6 +8247,7 @@ PASS12 case 319: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3416 "parser.y" { (yyval.node) = mknode2(&node_diveq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7845,6 +8258,7 @@ PASS12 case 320: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3417 "parser.y" { (yyval.node) = mknode2(&node_bitoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7855,6 +8269,7 @@ PASS12 case 321: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3418 "parser.y" { (yyval.node) = mknode2(&node_bitxoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7865,6 +8280,7 @@ PASS12 case 322: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3419 "parser.y" { (yyval.node) = mknode2(&node_bitandeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7875,6 +8291,7 @@ PASS12 case 323: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3420 "parser.y" { (yyval.node) = mknode2(&node_pluseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7885,6 +8302,7 @@ PASS12 case 324: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3421 "parser.y" { (yyval.node) = mknode2(&node_minuseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7895,6 +8313,7 @@ PASS12 case 325: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3422 "parser.y" { (yyval.node) = mknode2(&node_assign, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));} @@ -7905,6 +8324,7 @@ PASS12 case 326: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3423 "parser.y" { (yyval.node) = mknode3(&node_tenary, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));} @@ -7915,6 +8335,7 @@ PASS12 case 327: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3425 "parser.y" { (yyval.node) = mknode1(&node_rplusplus, (yyvsp[(1) - (2)].node));} @@ -7925,6 +8346,7 @@ PASS12 case 328: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3426 "parser.y" { (yyval.node) = mknode1(&node_rminusminus, (yyvsp[(1) - (2)].node));} @@ -7935,6 +8357,7 @@ PASS12 case 329: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3427 "parser.y" {(yyval.node) = mknode1(&node_lplusplus, (yyvsp[(2) - (2)].node)); } @@ -7945,6 +8368,7 @@ PASS12 case 330: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3428 "parser.y" {(yyval.node) = mknode1(&node_lminusminus, (yyvsp[(2) - (2)].node)); } @@ -7955,6 +8379,7 @@ PASS12 case 331: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3431 "parser.y" { if(!state->cls->info) @@ -7977,6 +8402,7 @@ PASS12 case 332: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3445 "parser.y" { @@ -7993,6 +8419,7 @@ PASS12 case 333: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3453 "parser.y" {PASS12 new_state();state->xmlfilter=1;} @@ -8003,6 +8430,7 @@ PASS12 case 334: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3453 "parser.y" { @@ -8065,6 +8493,7 @@ PASS12 case 335: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3507 "parser.y" {(yyval.id)=(yyvsp[(1) - (1)].id);} @@ -8075,6 +8504,7 @@ PASS12 case 336: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3508 "parser.y" {(yyval.id)="*";} @@ -8085,6 +8515,7 @@ PASS12 case 337: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3509 "parser.y" {(yyval.id)=(char*)(yyvsp[(1) - (1)].id);} @@ -8095,6 +8526,7 @@ PASS12 case 339: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3511 "parser.y" {(yyval.id)="*";} @@ -8105,6 +8537,7 @@ PASS12 case 340: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3519 "parser.y" { @@ -8132,6 +8565,7 @@ PASS12 case 341: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3537 "parser.y" { @@ -8148,6 +8582,7 @@ PASS12 case 342: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3544 "parser.y" { @@ -8167,6 +8602,7 @@ PASS12 case 343: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3555 "parser.y" { @@ -8183,6 +8619,7 @@ PASS12 case 344: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3562 "parser.y" { @@ -8199,6 +8636,7 @@ PASS12 case 345: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3569 "parser.y" { @@ -8218,6 +8656,7 @@ PASS12 case 346: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3579 "parser.y" { @@ -8237,6 +8676,7 @@ PASS12 case 347: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ #line 3590 "parser.y" { @@ -8310,8 +8750,9 @@ PASS12 case 348: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ -#line 3770 "parser.y" +#line 3776 "parser.y" { PASS1 /* Queue unresolved identifiers for checking against the parent @@ -8341,8 +8782,9 @@ PASS12 case 349: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ -#line 3804 "parser.y" +#line 3810 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8357,8 +8799,9 @@ PASS12 case 350: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ -#line 3811 "parser.y" +#line 3817 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8373,8 +8816,9 @@ PASS12 case 351: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ -#line 3818 "parser.y" +#line 3824 "parser.y" { PASS12 NEW(namespace_decl_t,n); @@ -8389,11 +8833,12 @@ PASS12 case 352: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ -#line 3825 "parser.y" +#line 3831 "parser.y" { PASS12 - trie_put(active_namespaces, (yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url); + trie_put(active_namespaces, (unsigned char*)(yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url); namespace_t access = modifiers2access(&(yyvsp[(1) - (2)].flags)); varinfo_t* var = varinfo_register_global(access.access, state->package, (yyvsp[(2) - (2)].namespace_decl)->name); @@ -8419,8 +8864,9 @@ PASS12 case 353: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ -#line 3848 "parser.y" +#line 3854 "parser.y" { as3_warning("default xml namespaces not supported yet"); (yyval.code) = 0; @@ -8432,8 +8878,9 @@ PASS12 case 354: if(as3_pass==2) { + /* Line 1464 of skeleton.m4 */ -#line 3853 "parser.y" +#line 3859 "parser.y" { PASS12 const char*url = (yyvsp[(3) - (3)].classinfo)->name; @@ -8451,7 +8898,7 @@ PASS12 syntaxerror("%s.%s is not a namespace", (yyvsp[(3) - (3)].classinfo)->package, (yyvsp[(3) - (3)].classinfo)->name); url = s->value->ns->name; - trie_put(active_namespaces, (yyvsp[(3) - (3)].classinfo)->name, (void*)url); + trie_put(active_namespaces, (unsigned char*)(yyvsp[(3) - (3)].classinfo)->name, (void*)url); add_active_url(url); (yyval.code)=0; } @@ -8460,8 +8907,9 @@ PASS12 + /* Line 1464 of skeleton.m4 */ -#line 8465 "parser.tab.c" +#line 8913 "parser.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/lib/as3/parser.tab.h b/lib/as3/parser.tab.h index 99a8fcb..d90479f 100644 --- a/lib/as3/parser.tab.h +++ b/lib/as3/parser.tab.h @@ -1,21 +1,21 @@ -/* A Bison parser, made by GNU Bison 2.4.277-62c99-dirty. */ +/* A Bison parser, made by GNU Bison 2.4.1. */ /* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free - Software Foundation, Inc. - + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -28,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -153,10 +153,12 @@ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union /* Line 1685 of skeleton.m4 */ +typedef union +/* Line 1685 of skeleton.m4 */ #line 47 "parser.y" tokenunion { + /* Line 1685 of skeleton.m4 */ #line 47 "parser.y" @@ -191,8 +193,9 @@ tokenunion } catch_list; + /* Line 1685 of skeleton.m4 */ -#line 196 "parser.tab.h" +#line 199 "parser.tab.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/lib/as3/parser.y b/lib/as3/parser.y index b377ba2..e93f73b 100644 --- a/lib/as3/parser.y +++ b/lib/as3/parser.y @@ -919,7 +919,7 @@ static namespace_t modifiers2access(modifiers_t*mod) syntaxerror("invalid combination of access levels and namespaces"); ns.access = ACCESS_NAMESPACE; state_t*s = state; - const char*url = (const char*)trie_lookup(active_namespaces, mod->ns); + const char*url = (const char*)trie_lookup(active_namespaces, (unsigned char*)mod->ns); if(!url) { /* shouldn't happen- the tokenizer only reports something as a namespace if it was already registered */ @@ -2223,10 +2223,9 @@ FOR : FOR_START FOR_INIT ';' EXPRESSION ';' VOIDEXPRESSION ')' IF_CODEBLOCK { } FOR_IN : FOR_START FOR_IN_INIT "in" EXPRESSION ')' IF_CODEBLOCK { - variable_t*var = find_variable(state, $2); - if(!var) { - syntaxerror("variable %s not known in this scope", $2); - } + node_t*n = resolve_identifier($2); + typedcode_t w = node_write(n); + int it = alloc_local(); int array = alloc_local(); @@ -2247,8 +2246,9 @@ FOR_IN : FOR_START FOR_IN_INIT "in" EXPRESSION ')' IF_CODEBLOCK { $$ = abc_nextname($$); else $$ = abc_nextvalue($$); - $$ = converttype($$, 0, var->type); - $$ = abc_setlocal($$, var->index); + + $$ = converttype($$, 0, w.t); + $$ = code_append($$, w.c); $$ = code_append($$, $6); $$ = abc_jump($$, loopstart); @@ -3653,6 +3653,14 @@ MEMBER : E '.' SUBNODE { } %code { + node_t* var_read(variable_t*v) + { + typedcode_t o; + o.c = abc_getlocal(0, v->index); + o.t = v->type; + return mkcodenode(o); + } + node_t* resolve_identifier(char*name) { typedcode_t o; @@ -3666,9 +3674,7 @@ MEMBER : E '.' SUBNODE { /* look at variables */ if((v = find_variable(state, name))) { // name is a local variable - o.c = abc_getlocal(o.c, v->index); - o.t = v->type; - return mkcodenode(o); + return var_read(v); } if((v = find_slot(state->method, name))) { o.c = abc_getscopeobject(o.c, 1); @@ -3824,7 +3830,7 @@ NAMESPACE_ID : "namespace" T_IDENTIFIER '=' T_STRING { } NAMESPACE_DECLARATION : MAYBE_MODIFIERS NAMESPACE_ID { PASS12 - trie_put(active_namespaces, $2->name, (void*)$2->url); + trie_put(active_namespaces, (unsigned char*)$2->name, (void*)$2->url); namespace_t access = modifiers2access(&$1); varinfo_t* var = varinfo_register_global(access.access, state->package, $2->name); @@ -3867,7 +3873,7 @@ USE_NAMESPACE : "use" "namespace" CLASS_SPEC { syntaxerror("%s.%s is not a namespace", $3->package, $3->name); url = s->value->ns->name; - trie_put(active_namespaces, $3->name, (void*)url); + trie_put(active_namespaces, (unsigned char*)$3->name, (void*)url); add_active_url(url); $$=0; } diff --git a/lib/as3/pool.c b/lib/as3/pool.c index 2402328..9568d5f 100644 --- a/lib/as3/pool.c +++ b/lib/as3/pool.c @@ -136,7 +136,7 @@ char*escape_string(const char*str) if(!str) return strdup("NULL"); int len=0; - unsigned const char*s=str; + unsigned const char*s=(unsigned const char*)str; while(*s) { if(*s<10) { len+=2; // \d @@ -151,7 +151,7 @@ char*escape_string(const char*str) } char*newstr = malloc(len+1); char*dest = newstr; - s=str; + s=(unsigned const char*)str; while(*s) { if(*s<9) { dest+=sprintf(dest, "\\%d", *s); @@ -1117,7 +1117,7 @@ void pool_read(pool_t*pool, TAG*tag) DEBUG printf("%d strings\n", num_strings); for(t=1;tdata[tag->pos], len); + string_t s = string_new((char*)&tag->data[tag->pos], len); swf_GetBlock(tag, 0, len); array_append(pool->x_strings, &s, 0); DEBUG printf("%d) \"%s\"\n", t, ((string_t*)array_getkey(pool->x_strings, t))->str); diff --git a/lib/as3/scripts.c b/lib/as3/scripts.c index 8bcd9de..57b2da1 100644 --- a/lib/as3/scripts.c +++ b/lib/as3/scripts.c @@ -47,8 +47,11 @@ void swf_AddButtonLinks(SWF*swf, char stop_each_frame, char events) unsigned char h[16]; unsigned char file_signature[33]; finish_md5(md5, h); - sprintf(file_signature, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", - h[0],h[1],h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9],h[10],h[11],h[12],h[13],h[14],h[15]); + sprintf((char*)file_signature, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", + h[0],h[1],h[2],h[3], + h[4],h[5],h[6],h[7], + h[8],h[9],h[10],h[11], + h[12],h[13],h[14],h[15]); char scenename1[80], scenename2[80]; sprintf(scenename1, "rfx.MainTimeline_%s", file_signature); @@ -174,7 +177,7 @@ void swf_AddButtonLinks(SWF*swf, char stop_each_frame, char events) __ findpropstrict(h,"flash.net::navigateToURL"); __ findpropstrict(h,"flash.net::URLRequest"); // TODO: target _blank - __ pushstring(h,oldaction->data); //url + __ pushstring(h,(char*)oldaction->data); //url __ constructprop(h,"flash.net::URLRequest", 1); __ callpropvoid(h,"flash.net::navigateToURL", 1); } else { @@ -183,7 +186,7 @@ void swf_AddButtonLinks(SWF*swf, char stop_each_frame, char events) __ pushstring(h, "link"); __ pushtrue(h); __ pushtrue(h); - __ pushstring(h,oldaction->data); //url + __ pushstring(h,(char*)oldaction->data); //url __ constructprop(h,"[package]flash.events::TextEvent", 4); __ callpropvoid(h,"[package]::dispatchEvent", 1); } diff --git a/lib/as3/tokenizer.h b/lib/as3/tokenizer.h index 6d6e147..e80ba61 100644 --- a/lib/as3/tokenizer.h +++ b/lib/as3/tokenizer.h @@ -81,6 +81,7 @@ extern trie_t*active_namespaces; #include "parser.tab.h" +extern char*token2string(enum yytokentype nr, YYSTYPE v); extern unsigned int as3_tokencount; void as3_buffer_input(void*buffer, int len); diff --git a/lib/as3/tokenizer.lex b/lib/as3/tokenizer.lex index ece94d0..c4de1e3 100644 --- a/lib/as3/tokenizer.lex +++ b/lib/as3/tokenizer.lex @@ -481,7 +481,7 @@ void tokenizer_unregister_namespace(const char*id) }*/ static inline char tokenizer_is_namespace(const char*id) { - return trie_contains(active_namespaces, id); + return trie_contains(active_namespaces, (const unsigned char*)id); } static inline int handleIdentifier() diff --git a/lib/as3/tokenizer.yy.c b/lib/as3/tokenizer.yy.c index e883194..782d3eb 100644 --- a/lib/as3/tokenizer.yy.c +++ b/lib/as3/tokenizer.yy.c @@ -1914,7 +1914,7 @@ void tokenizer_unregister_namespace(const char*id) }*/ static inline char tokenizer_is_namespace(const char*id) { - return trie_contains(active_namespaces, id); + return trie_contains(active_namespaces, (const unsigned char*)id); } static inline int handleIdentifier() diff --git a/lib/q.c b/lib/q.c index 63794e0..67597df 100644 --- a/lib/q.c +++ b/lib/q.c @@ -374,7 +374,7 @@ static char _trie_put(trielayer_t**t, unsigned const char*id, void*data) { if(!*t) { (*t) = rfx_calloc(sizeof(trielayer_t)); - (*t)->rest = (unsigned char*)strdup(id); + (*t)->rest = (unsigned char*)strdup((char*)id); (*t)->data = data; return 0; } @@ -389,7 +389,7 @@ static char _trie_put(trielayer_t**t, unsigned const char*id, void*data) char overwrite = 0; if((*t)->rest) overwrite = 1; - (*t)->rest = strdup(""); + (*t)->rest = (unsigned char*)strdup(""); (*t)->data = data; return overwrite; } @@ -397,7 +397,7 @@ static char _trie_put(trielayer_t**t, unsigned const char*id, void*data) static char _trie_remove(trielayer_t*t, unsigned const char*id) { while(t) { - if(t->rest && !strcmp(t->rest, id)) { + if(t->rest && !strcmp((char*)t->rest, (char*)id)) { free(t->rest); t->rest = 0; return 1; @@ -443,7 +443,7 @@ int trie_contains(trie_t*trie, unsigned const char*id) { trielayer_t*t = trie->start; while(t) { - if(t->rest && !strcmp(t->rest, id)) + if(t->rest && !strcmp((char*)t->rest, (char*)id)) return 1; if(!*id) return 0; @@ -455,7 +455,7 @@ void* trie_lookup(trie_t*trie, unsigned const char*id) { trielayer_t*t = trie->start; while(t) { - if(t->rest && !strcmp(t->rest, id)) + if(t->rest && !strcmp((char*)t->rest, (char*)id)) return t->data; if(!*id) return 0; -- 1.7.10.4