DECLARE_LIST(param);
DECLARE(params);
DECLARE(typedcode);
+DECLARE(modifiers);
+DECLARE(namespace_decl);
+DECLARE_LIST(namespace_decl);
DECLARE_LIST(typedcode);
struct _param {
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;
};
-#define FLAG_PUBLIC 1
-#define FLAG_PRIVATE 2
-#define FLAG_PROTECTED 4
-#define FLAG_STATIC 8
-#define FLAG_DYNAMIC 16
-#define FLAG_FINAL 32
-#define FLAG_OVERRIDE 64
-#define FLAG_NATIVE 128
-#define FLAG_INTERNAL 256
+/* 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 int as3_verbosity;
+extern int as3_pass;
+extern unsigned int as3_tokencount;
+#define syntaxerror as3_error
+void as3_error(const char*format, ...);
+void as3_warning(const char*format, ...);
+void as3_softwarning(const char*format, ...);
+
+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