docs: def parse_type(defn, preprocess=True):
      """
      Parse a simple type expression into a SimType
  
      >>> parse_type('int *')
      """
      if pycparser is None:
          raise ImportError("Please install pycparser in order to parse C definitions")
  
      defn = 'typedef ' + defn.strip('; \n\t\r') + ' QQQQ;'
  
      if preprocess:
          defn = do_preprocess(defn)
  
      node = pycparser.c_parser.CParser().parse(make_preamble()[0] + defn)
      if not isinstance(node, pycparser.c_ast.FileAST) or \
              not isinstance(node.ext[-1], pycparser.c_ast.Typedef):
          raise ValueError("Something went horribly wrong using pycparser")
  
      decl = node.ext[-1].type
      return _decl_to_type(decl)