else syntaxerror("String incorrectly terminated");
- avm2_lval.str = string_unescape(s, len);
+ a3_lval.str = string_unescape(s, len);
}
char*s = malloc(yyleng+1);
memcpy(s, yytext, yyleng);
s[yyleng]=0;
- avm2_lval.id = s;
+ a3_lval.id = s;
return type;
}
static inline int m(int type)
{
- avm2_lval.token = type;
+ a3_lval.token = type;
return type;
}
static inline int setint(int v)
{
- avm2_lval.number_int = v;
+ a3_lval.number_int = v;
if(v>-128)
return T_BYTE;
else if(v>=-32768)
}
static inline int setuint(unsigned int v)
{
- avm2_lval.number_uint = v;
+ a3_lval.number_uint = v;
if(v<128)
return T_BYTE;
else if(v<32768)
}
static inline int setfloat(double v)
{
- avm2_lval.number_float = v;
+ a3_lval.number_float = v;
return T_FLOAT;
}
static inline int handlefloat()
{
char*s = nrbuf();
- avm2_lval.number_float = atof(s);
+ a3_lval.number_float = atof(s);
return T_FLOAT;
}
char*s = malloc(t+1);
memcpy(s, yytext, t);
s[t]=0;
- avm2_lval.id = s;
+ a3_lval.id = s;
}
static int handleregexp()
break;
}
}
- avm2_lval.regexp.pattern = s;
+ a3_lval.regexp.pattern = s;
if(t==len) {
- avm2_lval.regexp.options = 0;
+ a3_lval.regexp.options = 0;
} else {
- avm2_lval.regexp.options = s+t+1;
+ a3_lval.regexp.options = s+t+1;
}
return T_REGEXP;
}
<BEGINNING,REGEXPOK>{
{REGEXP} {c(); BEGIN(INITIAL);return handleregexp();}
{HEXWITHSIGN} {c(); BEGIN(INITIAL);return handlehex();}
-{HEXFLOATWITHSIGN} {c(); BEGIN(INITIAL);return handlehexfloat();}
+{HEXFLOATWITHSIGN} {c(); BEGIN(INITIAL);return handlehexfloat();}
{INTWITHSIGN} {c(); BEGIN(INITIAL);return handleint();}
{FLOATWITHSIGN} {c(); BEGIN(INITIAL);return handlefloat();}
}
{NAME}{S}*:{S}*do/{_} {l();handleLabel(yytext, yyleng-2);return T_DO;}
{NAME}{S}*:{S}*while/{_} {l();handleLabel(yytext, yyleng-5);return T_WHILE;}
{NAME}{S}*:{S}*switch/{_} {l();handleLabel(yytext, yyleng-6);return T_SWITCH;}
-for {c();avm2_lval.id="";return T_FOR;}
-do {c();avm2_lval.id="";return T_DO;}
-while {c();avm2_lval.id="";return T_WHILE;}
-switch {c();avm2_lval.id="";return T_SWITCH;}
+for {c();a3_lval.id="";return T_FOR;}
+do {c();a3_lval.id="";return T_DO;}
+while {c();a3_lval.id="";return T_WHILE;}
+switch {c();a3_lval.id="";return T_SWITCH;}
[&][&] {c();BEGIN(REGEXPOK);return m(T_ANDAND);}
[|][|] {c();BEGIN(REGEXPOK);return m(T_OROR);}