private:
BasicType(const std::string& name)
- {
+ {
this->name = name;
- }
+ }
};
class Type {
public:
- Type()
+ Type()
: atomic_type(0), _unsigned(false), _const(false), _static(false),
pointer(0), ref(0)
{ }
void write_c_type(std::ostream& out)
{
if(_static)
- out << "static ";
+ out << "static ";
if(_const)
out << "const ";
atomic_type->write_c(out);
int ref;
};
+class SQIntegerType : public AtomicType {
+public:
+ SQIntegerType()
+ {
+ this->name = "SQInteger";
+ assert(_instance == 0);
+ _instance = this;
+ }
+ virtual ~SQIntegerType()
+ {
+ assert(_instance == this);
+ _instance = NULL;
+ }
+
+ static SQIntegerType* instance()
+ {
+ return _instance;
+ }
+private:
+ static SQIntegerType* _instance;
+};
+
class HSQUIRRELVMType : public AtomicType {
public:
HSQUIRRELVMType()
virtual ~HSQUIRRELVMType()
{
assert(_instance == this);
- _instance = 0;
+ _instance = NULL;
}
static HSQUIRRELVMType* instance()
}
private:
- static StringType* _instance;
+ static StringType* _instance;
};
class Parameter {
virtual ~ClassMember()
{ }
- enum Visbility {
+ enum Visibility {
PUBLIC,
PROTECTED,
PRIVATE
};
- Visbility visibility;
+ Visibility visibility;
};
class Function : public ClassMember {
Function() {
type = FUNCTION;
suspend = false;
+ custom = false;
}
-
+
enum FuncType {
FUNCTION,
CONSTRUCTOR,
DESTRUCTOR
};
FuncType type;
+ /// function should suspend squirrel VM after execution
bool suspend;
+ /// a custom wrapper (just pass along HSQUIRRELVM)
+ bool custom;
std::string docu_comment;
std::string name;
Type return_type;
{
has_const_value = false;
}
-
+
Type* type;
std::string docu_comment;
std::string name;
i != members.end(); ++i)
delete *i;
}
-
+
std::vector<ClassMember*> members;
std::vector<Class*> super_classes;
std::vector<Class*> sub_classes;
return ret;
}
-
+
std::vector<Function*> functions;
std::vector<Field*> fields;
std::vector<AtomicType*> types;
};
#endif
-