Exemplo n.º 1
0
ITypeBuilder* TypeBuilder::create( TypeKind kind, INamespace* ns, const std::string& name )
{
	TypeBuilder* tb = NULL;
	switch( kind )
	{
	case TK_ENUM:			tb = new EnumBuilder;			break;
	case TK_EXCEPTION:		tb = new ExceptionTypeBuilder;	break;
	case TK_STRUCT:			tb = new StructBuilder;			break;
	case TK_NATIVECLASS:	tb = new NativeClassBuilder;	break;
	case TK_INTERFACE:		tb = new InterfaceBuilder;		break;
	case TK_COMPONENT:		tb = new ComponentBuilder;		break;
	default:
		assert( false );
	}

	assert( tb );
	tb->initialize( ns, name );

	return tb;
}