CONSTANT_NAMESPACE_EXPLICIT=0x19,
CONSTANT_NAMESPACE_STATICPROTECTED=0x1A,
CONSTANT_NAMESPACE_PRIVATE=0x05,
+CONSTANT_UNKNOWN=0x55, /*used internally */
} contant_type_t;
+#define NS_TYPE(x) ((x) == 0x08 || (x) == 0x16 || (x) == 0x17 || (x) == 0x18 || (x) == 0x19 || (x) == 0x1a || (x) == 0x05)
+
struct _constant {
+ int type;
union {
+ string_t* s;
+ namespace_t*ns;
double f;
int i;
unsigned int u;
- string_t* s;
- namespace_t*ns;
};
- int type;
};
+constant_t* constant_clone();
constant_t* constant_new_int(int x);
constant_t* constant_new_uint(unsigned int x);
constant_t* constant_new_float(double x);
-constant_t* constant_new_string(char*s);
+constant_t* constant_new_string(const char*s);
constant_t* constant_new_string2(const char*s, int len);
constant_t* constant_new_namespace(namespace_t*ns);
constant_t* constant_new_true();
struct _namespace {
U8 access;
- char*name;
+ const char*name;
};
struct _namespace_set {
namespace_list_t*namespaces;
/* creation */
namespace_t* namespace_new(U8 access, const char*name);
+namespace_t* namespace_new_namespace(const char*name);
namespace_t* namespace_new_package(const char*name);
namespace_t* namespace_new_packageinternal(const char*name);
namespace_t* namespace_new_protected(const char*name);