An extract from the FPC MakeSkel program, with some extensions.
TFPDocMaker extends FPDoc TFPDocCreator, with ability to update the XML files.

Emit declaration for elements (--emit-declaration).
Specifies the MakeSkel engine mode (create skeleton or update file).
Sorts the Element nodes when True.
Do not create nodes for override methods.
Suppress Errors sections?
Suppress SeeAlso sections?
Suppress subroutine parameter entries?
Suppress Elements for protected class members?
Suppress Elements for private class members?
Suppress Elements for function results?
Generate class separator comment?
The MakeSkel engine, used to create documentation skeleton or update files.
It is based on TFPDocEngine, used by FPDoc.
Provides dummy modules for all external units.
Writes the skeleton or update elements for AFileName into the XML text file.
The general commandline options for MakeSkel.
Type of an OnOption handler for unknown commanline options.
The action to perform after all FPDoc commandline options have been parsed.
Values returned by the option parsers for every single option. In this case caInvalid indicates an unhandled option.
Default processing, option parsed successfully.
DryRun option (-n) found.
Show usage, after option errors.
Unhandled option found.
Write project file instead of documents.
FPDoc and MakeSkel functionality as a class.
Parses options common to FPDoc and MakeSkel. Returns caInvalid for unknown options.
Raw options, where Cmd contains name=value, are splitted into Cmd and Arg. Quotes around/in Arg are removed, needed to process scripts.
Creates or updates XML documentation sources (MakeSkel emulation)
Creates final documentation, for a package or a single unit (FPDoc emulation).
When an description file exists already for a unit, an /upd..xml file is created, containing all updates. Empty files are destroyed afterwards. Otherwise a skeleton file is created in the descriptions directory.
Update only AUnit if not empty, else the entire package.
Adds files in a directory to a stringlist, using a filename mask.
Adds lines from an file to a stringlist.
Returns the full input specification (command options) for a unit in the selected package.
Returns the package name from an Imports specifier.
Standard OnLog handler, writing to stdout.
Standard OnLog handler, writing to stderr.
Parses and stores an FPDoc commanline option.
Parses and stores an MakeSkel commanline option.
Sanity check before starting a MakeSkel operation (DocumentPackage).
Return True and (try) kill file if no element tag found in it.
Used to remove empty update files after DocumentPackage.
Returns the currently selected package.
When no package was specified, a message is logged.
The currently selected package.
Action to perform after commandline arguments have been parsed.
Allows to perform syntax checks of documentation source files, instead of creating final documentation.
True when a project file has been read (--project option)
The name of an project file to create (--write-project argument)
User supplied handler for unknown commandline options.
The directory containing Inputs files. Writing adds all source files in the directory to Inputs[].
Can be written more than once, to specify multiple input directories (cumulative).
The directory containing Description files. Writing adds all XML files in the directory to Descriptions[].
Can be written more than once, to specify multiple Description directories (cumulative). The first[?] directory is assumed the default directory, for creating and searching description files. [intended to merge files from multiple packages]
Holds all parsed FPDoc and MakeSkel commandline options.
Extracts next commandline option from an string.
Get package name from an Imports specifier.
Get an filename from an Inputs or Descriptions list.
Get the unit name from Inputs or Descriptions, or from an string containing such an element.
Combined FPDoc and MakeSkel options. Writing copies the given object into both option sets.