code: func readFiles(basePath, innerPath string, opts *Options) (*source, error) {
  	// Read the base file.
  	base, err := readFile(basePath, opts)
  	if err != nil {
  		return nil, err
  	}
  
  	// Read the inner file.
  	inner, err := readFile(innerPath, opts)
  	if err != nil {
  		return nil, err
  	}
  
  	var includes []*File
  
  	// Find include files from the base file.
  	if err := findIncludes(base.data, opts, &includes, base); err != nil {
  		return nil, err
  	}
  
  	// Find include files from the inner file.
  	if err := findIncludes(inner.data, opts, &includes, inner); err != nil {
  		return nil, err
  	}
  
  	return NewSource(base, inner, includes), nil
  }
docs: // readFiles reads files and returns source for the parsing process.