code: def get_undeclared_type(self, item):
          
          if item in self.done:
              return None
          if isinstance(item, typedesc.FundamentalType):
              return None
          if isinstance(item, typedesc.PointerType):
              return self.get_undeclared_type(item.typ)
          if isinstance(item, typedesc.ArrayType):
              return self.get_undeclared_type(item.typ)
          # else its an undeclared structure.
          return item
docs: Checks if a typed has already been declared in the python output
          or is a builtin python type.