as3_in = 0;
}
+//#undef BEGIN
+//#define BEGIN(x) {(yy_start) = 1 + 2 *x;dbg("entering state %d", x);}
+
#define YY_INPUT(buf,result,max_size) { \
if(!as3_buffer) { \
errno=0; \
<XML>{
{STRING} {l(); handleString(yytext, yyleng);return T_STRING;}
+[{] {c(); BEGIN(REGEXPOK);return m('{');}
[<] {c(); return m('<');}
[/] {c(); return m('/');}
[>] {c(); return m('>');}
}
<XMLTEXT>{
-[^<>]+ {l(); BEGIN(DEFAULT);handleRaw(yytext, yyleng);return T_STRING;}
+[^<>{]+ {l(); handleRaw(yytext, yyleng);return T_STRING;}
+[{] {c(); BEGIN(REGEXPOK);return m('{');}
[<] {c(); BEGIN(XML);return m('<');}
[>] {c(); return m('>');}
{XMLCOMMENT} {l(); handleRaw(yytext, yyleng);return T_STRING;}
namespace {c();BEGIN(DEFAULT);return m(KW_NAMESPACE);}
protected {c();BEGIN(DEFAULT);return m(KW_PROTECTED);}
undefined {c();BEGIN(DEFAULT);return m(KW_UNDEFINED);}
+arguments {c();BEGIN(DEFAULT);return m(KW_ARGUMENTS);}
continue {c();BEGIN(DEFAULT);return m(KW_CONTINUE);}
override {c();BEGIN(DEFAULT);return m(KW_OVERRIDE);}
internal {c();BEGIN(DEFAULT);return m(KW_INTERNAL);}
if(c1>='0' && c1<='9')
syntaxerror("syntax error: %s (identifiers must not start with a digit)");
else
- syntaxerror("syntax error: %s", buf);
+ syntaxerror("syntax error [%d]: %s", (yy_start-1)/2, buf);
printf("\n");
exit(1);
yyterminate();
void tokenizer_begin_xml()
{
+ dbg("begin reading xml");
BEGIN(XML);
}
void tokenizer_begin_xmltext()
{
+ dbg("begin reading xml text");
BEGIN(XMLTEXT);
}
void tokenizer_end_xmltext()
{
+ dbg("end reading xml text");
BEGIN(XML);
}
void tokenizer_end_xml()
{
+ dbg("end reading xml");
BEGIN(DEFAULT);
}