| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- enum{
- BBTYPE_END=0,
- BBTYPE_INT=1,BBTYPE_FLOAT=2,
- BBTYPE_STRING=3,BBTYPE_CSTR=4,
- BBTYPE_OBJECT=5,BBTYPE_VECTOR=6
- };
- typedef int bbInt;
- typedef float bbFloat;
- typedef bbStringhandle *bbString;
- typedef bbObjectHandle *bbObject;
- typedef bbVectorHandle *bbVector;
- typedef const char * bbCStr;
- union bbValue{
- bbInt INT;
- bbFloat FLOAT;
- bbString STRING;
- bbObject OBJECT;
- bbVector VECTOR;
- bbCStr CSTR;
- };
- struct bbType{
- int id;
- bbType( int n ):id(n(){}
- };
- struct bbInstance{
- bbValue value;
- };
- struct bbHandle{
- bbInstance *instance;
- int ref_cnt;
- bbType *type;
- };
- struct bbEnviron{
- bbVector *variables;
- };
- struct bbIntType : public bbType{
- bbInt():bbType( BBTYPE_INT ){}
- };
- struct bbFloatType : public bbType{
- bbFloat():bbType( BBTYPE_FLOAT ){}
- };
- struct bbCStrType : public bbType{
- bbCStrType():bbType( BBTYPE_CSTR ){}
- };
- struct bbStringType : public bbType{
- bbStringType():bbType( BBTYPE_STRING ){}
- };
- struct bbVectorType : public bbType{
- bbType *element_type;
- bbVectorType( bbType *e ):bbType( BBTYPE_VECTOR ),element_type( e ){}
- }
- struct bbObjectType : public bbType{
- bbEnviron *environ;
- bbObject *first_used,*last_used;
- bbObject *first_free,*last_free;
- bbObjectType( bbEnviron *e ):bbType( BBTYPE_OBJECT ),environ( e ){}
- };
- struct bbStringHandle : public bbHandle{
- };
- struct bbObjectHandle : public bbHandle{
- bbObject *next,*prev;
- };
- struct bbVectorHandle : public bbHandle{
- };
- void assign( bbHandleVariable dest,bbHandle src );
|