public function GetStandardType(
        \Peg\Lib\Definitions\Element\VariableType $type
    )
    {
        $standard_type = "";

        switch($type->type)
        {
            case    "bool":
                $standard_type = StandardType::BOOLEAN;
                break;

            case    "unsigned int":
            case    "unsigned long":
            case    "long":
            case    "long int":
            case    "int":
            case    "size_t":
            case    "unsigned":
            case    "unsigned short":
            case    "unsigned char":
                $standard_type = StandardType::INTEGER;
                break;

            case    "float":
            case    "double":
                $standard_type = StandardType::REAL;
                break;

            case    "char":
                $standard_type = StandardType::CHARACTER;
                break;

            case    "void":
                $standard_type = StandardType::VOID;
                break;

            default:
                //Match object or const object
                if($this->HasClass($type->type))
                {
                    $standard_type = StandardType::OBJECT;
                }
                //Check if enumartion of class
                elseif($this->HasClassEnum($type->type))
                {
                    $standard_type = StandardType::CLASS_ENUM;
                }
                //Check if global enumertion
                elseif($this->HasEnumeration($type->type))
                {
                    $standard_type = StandardType::ENUM;
                }
                //Check if typedef
                elseif($typedef = $this->HasTypeDef($type->type))
                {
                    $standard_type = $this->GetStandardType($typedef);
                }
                else
                {
                    $standard_type = StandardType::UNKNOWN;
                }
        }
        
        return $standard_type;
    }