def __Select(self):
    """Consume the SELECT clause and everything that follows it.

    Assumes SELECT * to start.
    Transitions to a FROM clause.

    Returns:
      True if parsing completed okay.
    """
    self.__Expect('SELECT')
    if ('DISTINCT' in self.__active_reserved_words
        and self.__Accept('DISTINCT')):
      self.__distinct = True
    if not self.__Accept('*'):
      props = [self.__ExpectIdentifier()]
      while self.__Accept(','):
        props.append(self.__ExpectIdentifier())
      if props == ['__key__']:
        self._keys_only = True
      else:
        self.__projection = tuple(props)
    return self.__From()
dataset/ETHPy150Open AppScale/appscale/AppServer/google/appengine/ext/gql/__init__.py/GQL.__Select/original