X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Ftokenizer.lex;h=7b576744594c6482deb15138d931ff0e05fac9ec;hb=0185c09ff339aaf744142f96d22e1b145334539d;hp=491a5f25af9ddacaae818ab62f0db4ac3fe39c98;hpb=639ac6b9f7a89f10d02c5d9ef41bca3bad4eaf2b;p=swftools.git diff --git a/lib/as3/tokenizer.lex b/lib/as3/tokenizer.lex index 491a5f2..7b57674 100644 --- a/lib/as3/tokenizer.lex +++ b/lib/as3/tokenizer.lex @@ -529,6 +529,8 @@ FLOATWITHSIGN [+-]?({FLOAT}) CDATA ])*\]*\]\]\> XMLCOMMENT XML <[^>]+{S}> +XMLID [A-Za-z0-9_\x80-\xff]+([:][A-Za-z0-9_\x80-\xff]+)? +XMLSTRING ["][^"]*["] STRING ["](\\[\x00-\xff]|[^\\"\n])*["]|['](\\[\x00-\xff]|[^\\'\n])*['] S [ \n\r\t] @@ -552,13 +554,13 @@ REGEXP [/]([^/\n]|\\[/])*[/][a-zA-Z]* } { -{STRING} {l(); handleString(yytext, yyleng);return T_STRING;} +{XMLSTRING} {l(); handleRaw(yytext, yyleng);return T_STRING;} [{] {c(); BEGIN(REGEXPOK);return m('{');} [<] {c(); return m('<');} [/] {c(); return m('/');} [>] {c(); return m('>');} [=] {c(); return m('=');} -{NAME} {c(); handleRaw(yytext, yyleng);return T_IDENTIFIER;} +{XMLID} {c(); handleRaw(yytext, yyleng);return T_IDENTIFIER;} {S} {l();} <> {syntaxerror("unexpected end of file");} } @@ -600,6 +602,7 @@ NaN {c(); BEGIN(DEFAULT);return m(KW_NAN);} {NAME}{S}*:{S}*do/{_} {l();BEGIN(DEFAULT);handleLabel(yytext, yyleng-2);return T_DO;} {NAME}{S}*:{S}*while/{_} {l();BEGIN(DEFAULT);handleLabel(yytext, yyleng-5);return T_WHILE;} {NAME}{S}*:{S}*switch/{_} {l();BEGIN(DEFAULT);handleLabel(yytext, yyleng-6);return T_SWITCH;} +default{S}xml {l();BEGIN(DEFAULT);return m(KW_DEFAULT_XML);} for {c();BEGIN(DEFAULT);a3_lval.id="";return T_FOR;} do {c();BEGIN(DEFAULT);a3_lval.id="";return T_DO;} while {c();BEGIN(DEFAULT);a3_lval.id="";return T_WHILE;} @@ -637,8 +640,8 @@ switch {c();BEGIN(DEFAULT);a3_lval.id="";return T_SWITCH;} instanceof {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);} implements {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);} interface {c();BEGIN(DEFAULT);return m(KW_INTERFACE);} -namespace {c();BEGIN(DEFAULT);return m(KW_NAMESPACE);} protected {c();BEGIN(DEFAULT);return m(KW_PROTECTED);} +namespace {c();BEGIN(DEFAULT);return m(KW_NAMESPACE);} undefined {c();BEGIN(DEFAULT);return m(KW_UNDEFINED);} arguments {c();BEGIN(DEFAULT);return m(KW_ARGUMENTS);} continue {c();BEGIN(DEFAULT);return m(KW_CONTINUE);}