#define __parser_h__
#include "../q.h"
+#include "abc.h"
#include "pool.h"
+#include "files.h"
+#include "tokenizer.h"
+#include "registry.h"
+#include "code.h"
+#include "opcodes.h"
DECLARE(token);
DECLARE_LIST(token);
+DECLARE(param);
+DECLARE_LIST(param);
+DECLARE(params);
+DECLARE(typedcode);
+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 {
+ param_list_t*list;
+ char varargs;
+};
+
+struct _typedcode {
+ code_t*c;
+ classinfo_t*t;
+
+ /* if t == TYPE_FUNCTION */
+ memberinfo_t*f;
+};
+
+#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
+
extern char start_of_expression;
typedef token_t*tokenptr_t;
-//#define YYSTYPE tokenptr_t
-
#include "parser.tab.h"
void syntaxerror(const char*format, ...);
+void warning(const char*format, ...);
#define T_EOF 0