code: def split_field_path(path):
      
      if not path:
          return []
  
      elements = []
      want_dot = False
  
      for element in _tokenize_field_path(path):
          if want_dot:
              if element != ".":
                  raise ValueError("Invalid path: {}".format(path))
              else:
                  want_dot = False
          else:
              if element == ".":
                  raise ValueError("Invalid path: {}".format(path))
              elements.append(element)
              want_dot = True
  
      if not want_dot or not elements:
          raise ValueError("Invalid path: {}".format(path))
  
      return elements
docs: Split a field path into valid elements (without dots).
  
      Args:
          path (str): field path to be lexed.
      Returns:
          List(str): tokens
      Raises:
          ValueError: if the path does not match the elements-interspersed-
                      with-dots pattern.