filename = strdup(&text[i1]);
}
- char*fullfilename = find_file(filename);
+ char*fullfilename = find_file(filename, 1);
enter_file2(filename, fullfilename, YY_CURRENT_BUFFER);
yyin = fopen(fullfilename, "rb");
if (!yyin) {
}
break;
}
- default:
- syntaxerror("unknown escape sequence: \"\\%c\"", *s);
+ default: {
+ if(o) {
+ o[len+0] = '\\';
+ o[len+1] = *s;
+ }
+ s++;
+ len+=2;
+ break;
+ }
}
}
if(o) o[len]=0;
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;
s++;len-=2;
}
else syntaxerror("String incorrectly terminated");
-
a3_lval.str = string_unescape(s, len);
}
{
trie_put(&namespaces, id);
}
+void tokenizer_unregister_namespace(const char*id)
+{
+ trie_remove(namespaces, id);
+}
static inline tokenizer_is_namespace(const char*id)
{
return trie_lookup(namespaces, id);
\.\. {c();BEGIN(REGEXPOK);return m(T_DOTDOT);}
\. {c();BEGIN(REGEXPOK);return m('.');}
:: {c();BEGIN(REGEXPOK);return m(T_COLONCOLON);}
-: {c();BEGIN(INITIAL);return m(':');}
+: {c();BEGIN(REGEXPOK);return m(':');}
instanceof {c();BEGIN(REGEXPOK);return m(KW_INSTANCEOF);}
implements {c();BEGIN(REGEXPOK);return m(KW_IMPLEMENTS);}
interface {c();BEGIN(INITIAL);return m(KW_INTERFACE);}