parameters: (type_)
return_statement: return nake_type.base
docstring: removes pointer from the type definition
  
      If type is not pointer type, it will be returned as is.
docstring_summary: removes pointer from the type definition
docstring_tokens: removes pointer from the type definition
function: def remove_pointer(type_):
      """removes pointer from the type definition
  
      If type is not pointer type, it will be returned as is.
      """
      nake_type = remove_alias(type_)
      if not is_pointer(nake_type):
          return type_
      elif isinstance(nake_type, cpptypes.volatile_t) and \
              isinstance(nake_type.base, cpptypes.pointer_t):
          return cpptypes.volatile_t(nake_type.base.base)
      elif isinstance(nake_type, cpptypes.const_t) and \
              isinstance(nake_type.base, cpptypes.pointer_t):
          return cpptypes.const_t(nake_type.base.base)
      elif isinstance(nake_type, cpptypes.volatile_t) \
              and isinstance(nake_type.base, cpptypes.const_t) \
              and isinstance(nake_type.base.base, cpptypes.pointer_t):
          return (
              cpptypes.volatile_t(cpptypes.const_t(nake_type.base.base.base))
          )
  
      return nake_type.base
function_tokens: def remove_pointer ( type_ ) : nake_type = remove_alias ( type_ ) if not is_pointer ( nake_type ) : return type_ elif isinstance ( nake_type , cpptypes . volatile_t ) and isinstance ( nake_type . base , cpptypes . pointer_t ) : return cpptypes . volatile_t ( nake_type . base . base ) elif isinstance ( nake_type , cpptypes . const_t ) and isinstance ( nake_type . base , cpptypes . pointer_t ) : return cpptypes . const_t ( nake_type . base . base ) elif isinstance ( nake_type , cpptypes . volatile_t ) and isinstance ( nake_type . base , cpptypes . const_t ) and isinstance ( nake_type . base . base , cpptypes . pointer_t ) : return ( cpptypes . volatile_t ( cpptypes . const_t ( nake_type . base . base . base ) ) ) return nake_type . base