parameters: (file_path, file_exists_check, root_dir_path)
docstring: Returns the BUILD.gn file responsible for file_path.
  
    Args:
      file_path: the absolute path to the .h file to check.
      file_exists_check: a function that defines how to check if a file exists
        on the file system.
      root_dir_path: the absolute path of the root of project.
  
    Returns:
      A string with the absolute path to the BUILD.gn file responsible to include
      file_path in a target.
docstring_summary: Returns the BUILD.gn file responsible for file_path.
docstring_tokens: Returns the BUILD . gn file responsible for file_path .
function: def GetBuildGnPathFromFilePath(file_path, file_exists_check, root_dir_path):
      """Returns the BUILD.gn file responsible for file_path.
  
    Args:
      file_path: the absolute path to the .h file to check.
      file_exists_check: a function that defines how to check if a file exists
        on the file system.
      root_dir_path: the absolute path of the root of project.
  
    Returns:
      A string with the absolute path to the BUILD.gn file responsible to include
      file_path in a target.
    """
      if not file_path.endswith('.h'):
          raise WrongFileTypeError(
              'File {} is not an header file (.h)'.format(file_path))
      candidate_dir = os.path.dirname(file_path)
      while candidate_dir.startswith(root_dir_path):
          candidate_build_gn_path = os.path.join(candidate_dir, 'BUILD.gn')
          if file_exists_check(candidate_build_gn_path):
              return candidate_build_gn_path
          else:
              candidate_dir = os.path.abspath(
                  os.path.join(candidate_dir, os.pardir))
      raise NoBuildGnFoundError(
          'No BUILD.gn file found for file: `{}`'.format(file_path))
function_tokens: def GetBuildGnPathFromFilePath ( file_path , file_exists_check , root_dir_path ) : if not file_path . endswith ( '.h' ) : raise WrongFileTypeError ( 'File {} is not an header file (.h)' . format ( file_path ) ) candidate_dir = os . path . dirname ( file_path ) while candidate_dir . startswith ( root_dir_path ) : candidate_build_gn_path = os . path . join ( candidate_dir , 'BUILD.gn' ) if file_exists_check ( candidate_build_gn_path ) : return candidate_build_gn_path else : candidate_dir = os . path . abspath ( os . path . join ( candidate_dir , os . pardir ) ) raise NoBuildGnFoundError ( 'No BUILD.gn file found for file: `{}`' . format ( file_path ) )