X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Ftokenizer.h;h=0da4f129fbf486bebcd82d320366b303c30bbc9a;hb=71b5bc980e9f3fa962167da70043f0b16e253906;hp=bc81e96bc14c5153daddcca60e0877dc65813316;hpb=4784170f7da61e48d19f42962bb5a5a431cf1ca0;p=swftools.git diff --git a/lib/as3/tokenizer.h b/lib/as3/tokenizer.h index bc81e96..0da4f12 100644 --- a/lib/as3/tokenizer.h +++ b/lib/as3/tokenizer.h @@ -27,24 +27,22 @@ #include "registry.h" #include "code.h" #include "opcodes.h" +#include "ast.h" DECLARE(token); DECLARE_LIST(token); DECLARE(param); DECLARE_LIST(param); DECLARE(params); -DECLARE(typedcode); +DECLARE(modifiers); +DECLARE(namespace_decl); +DECLARE_LIST(namespace_decl); DECLARE_LIST(typedcode); -struct _token { - int type; - char*text; - token_list_t*tokens; -}; - struct _param { char*name; classinfo_t*type; + constant_t*value; }; struct _params { @@ -52,23 +50,45 @@ struct _params { char varargs; }; -struct _typedcode { - code_t*c; - classinfo_t*t; - - /* if t == TYPE_FUNCTION */ - memberinfo_t*f; +struct _modifiers { + int flags; + char*ns; }; +struct _namespace_decl { + const char*name; + const char*url; +}; + +/* small helper structs: */ +typedef struct _codeandnumber { + code_t*cc; + int number; +} codeandnumber_t; +typedef struct _for_start { + char*name; + char each; +} for_start_t; +typedef struct _regexp { + char*pattern; + char*options; +} regexp_t; extern char start_of_expression; typedef token_t*tokenptr_t; +extern trie_t*active_namespaces; + #include "parser.tab.h" -void syntaxerror(const char*format, ...); -void warning(const char*format, ...); +extern unsigned int as3_tokencount; + +void as3_buffer_input(void*buffer, int len); +void as3_file_input(FILE*fi); #define T_EOF 0 +extern int avm2_lex(); +extern int avm2_lex_destroy(); + #endif