From: Matthias Kramm Date: Tue, 3 Feb 2009 18:52:10 +0000 (+0100) Subject: new global variable as3_tokencount X-Git-Tag: release-0-9-0~158 X-Git-Url: http://git.asbjorn.it/?a=commitdiff_plain;h=a2d6b7c11bbfa6b6e947e0ca64a40c097e57b8a2;p=swftools.git new global variable as3_tokencount --- diff --git a/lib/as3/tokenizer.h b/lib/as3/tokenizer.h index 632c149..149ccd0 100644 --- a/lib/as3/tokenizer.h +++ b/lib/as3/tokenizer.h @@ -74,6 +74,7 @@ typedef token_t*tokenptr_t; extern int as3_verbosity; extern int as3_pass; +extern unsigned int as3_tokencount; #define syntaxerror as3_error void as3_error(const char*format, ...); void as3_warning(const char*format, ...); diff --git a/lib/as3/tokenizer.lex b/lib/as3/tokenizer.lex index 11b1162..bffdc93 100644 --- a/lib/as3/tokenizer.lex +++ b/lib/as3/tokenizer.lex @@ -32,8 +32,9 @@ #include "files.h" int as3_pass = 0; - int as3_verbosity = 1; +unsigned int as3_tokencount = 0; + void as3_error(const char*format, ...) { char buf[1024]; @@ -246,6 +247,12 @@ static string_t string_unescape(const char*in, int l) static void handleString(char*s, int len) { + if(as3_pass < 2) { + // don't bother decoding strings in pass 1 + memset(&a3_lval, 0, sizeof(a3_lval)); + return; + } + if(s[0]=='"') { if(s[len-1]!='"') syntaxerror("String doesn't end with '\"'"); s++;len-=2; @@ -625,7 +632,8 @@ as {c();return m(KW_AS);} [+-\/*^~@$!%&\(=\[\]\{\}|?:;,<>] {c();BEGIN(REGEXPOK);return m(yytext[0]);} [\)\]] {c();BEGIN(INITIAL);return m(yytext[0]);} -. {char c1=yytext[0]; +. {/* ERROR */ + char c1=yytext[0]; char buf[128]; buf[0] = yytext[0]; int t;