#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];
return out;
}
+static void handleCData(char*s, int len)
+{
+ a3_lval.str.str = s+9; // <![CDATA[
+ a3_lval.str.len = len-9-3;// ]]>
+}
+
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;
INTWITHSIGN [+-]?({INT})
FLOATWITHSIGN [+-]?({FLOAT})
+CDATA <!\[CDATA\[([^]]|\][^]]|\]\][^>])*\]*\]\]\>
STRING ["](\\[\x00-\xff]|[^\\"\n])*["]|['](\\[\x00-\xff]|[^\\'\n])*[']
S [ \n\r\t]
MULTILINE_COMMENT [/][*]+([*][^/]|[^/*]|[^*][/]|[\x00-\x1f])*[*]+[/]
^include{S}+{STRING}{S}*/\n {l();handleInclude(yytext, yyleng, 1);}
^include{S}+[^" \t\r\n][\x20-\xff]*{S}*/\n {l();handleInclude(yytext, yyleng, 0);}
{STRING} {l(); BEGIN(INITIAL);handleString(yytext, yyleng);return T_STRING;}
+{CDATA} {l(); BEGIN(INITIAL);handleCData(yytext, yyleng);return T_STRING;}
<BEGINNING,REGEXPOK>{
{REGEXP} {c(); BEGIN(INITIAL);return handleregexp();}
[+-\/*^~@$!%&\(=\[\]\{\}|?:;,<>] {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;