#define FLAG_STATIC 2
#define FLAG_OVERRIDE 8
#define FLAG_NATIVE 16
+#define FLAG_CONST 32
/* class flags */
#define FLAG_DYNAMIC 8
#define FLAG_INTERFACE 16
-#define INFOTYPE_SLOT 1
+#define INFOTYPE_VAR 1
#define INFOTYPE_METHOD 2
#define INFOTYPE_CLASS 3
#define INFOTYPE_UNRESOLVED 4
};
classinfo_t*parent;
};
-struct _methodinfo {
+struct _methodinfo /*extends memberinfo*/ {
U8 kind,subtype,flags,access;
const char*package;
const char*name;
classinfo_t*parent;
classinfo_list_t*params;
};
-struct _varinfo {
+struct _varinfo /*extends memberinfo*/ {
U8 kind,subtype,flags,access;
const char*package;
const char*name;
memberinfo_t* registry_findmember_nsset(classinfo_t*cls, namespace_list_t*ns, const char*name, char superclasses);
void registry_fill_multiname(multiname_t*m, namespace_t*n, slotinfo_t*c);
+#define MULTINAME(m,x) \
+ multiname_t m;\
+ namespace_t m##_ns;\
+ (x)->package; \
+ registry_fill_multiname(&m, &m##_ns, (slotinfo_t*)(x));
+
multiname_t* classinfo_to_multiname(slotinfo_t*cls);
char registry_isfunctionclass();
classinfo_t* registry_getnamespaceclass();
char* infotypename(slotinfo_t*s);
+void slotinfo_dump(slotinfo_t*s);
/* convenience functions */
#define sig2mname(x) (x->superclass,classinfo_to_multiname((slotinfo_t*)(x)))
-#define TYPE_ANY registry_getanytype()
-#define TYPE_IS_ANY(t) ((t) == registry_getanytype())
+#define TYPE_ANY (0)
+#define TYPE_IS_ANY(t) ((t) == 0)
#define TYPE_INT registry_getintclass()
#define TYPE_IS_INT(t) ((t) == registry_getintclass())
#define TYPE_UINT registry_getuintclass()