Copyright (C) 1996-2018 Manuel Hermenegildo and José Francisco Morales.

This document may be freely read, stored, reproduced, disseminated,
translated or quoted by any means and on any medium provided the
following conditions are met:

  1. Every reader or user of this document acknowledges that is aware
     that no guarantee is given regarding its contents, on any account,
     and specifically concerning veracity, accuracy and fitness for any
     purpose.

  2. No modification is made other than cosmetic, change of
     representation format, translation, correction of obvious syntactic
     errors, or as permitted by the clauses below.

  3. Comments and other additions may be inserted, provided they clearly
     appear as such; translations or fragments must clearly refer to an
     original complete version, preferably one that is easily accessed
     whenever possible.

  4. Translations, comments and other additions or modifications must be
     dated and their author(s) must be identifiable (possibly via an
     alias).

  5. This licence is preserved and applies to the whole document with
     modifications and additions (except for brief quotes),
     independently of the representation format.

  6. Any reference to the "official version", "original version" or "how
     to obtain original versions" of the document is preserved verbatim.
     Any copyright notice in the document is preserved verbatim.  Also,
     the title and author(s) of the original document should be clearly
     mentioned as such.

  7. In the case of translations, verbatim sentences mentioned in (6.)
     are preserved in the language of the original document accompanied
     by verbatim translations to the language of the traslated document.
     All translations state clearly that the author is not responsible
     for the translated work.  This license is included, at least in the
     language in which it is referenced in the original version.

  8. Whatever the mode of storage, reproduction or dissemination, anyone
     able to access a digitized version of this document must be able to
     make a digitized copy in a format directly usable, and if possible
     editable, according to accepted, and publicly documented, public
     standards.

  9. Redistributing this document to a third party requires simultaneous
     redistribution of this licence, without modification, and in
     particular without any further condition or restriction, expressed
     or implied, related or not to this redistribution.  In particular,
     in case of inclusion in a database or collection, the owner or the
     manager of the database or the collection renounces any right
     related to this inclusion and concerning the possible uses of the
     document after extraction from the database or the collection,
     whether alone or in relation with other documents.

Any incompatibility of the above clauses with legal, contractual or
judiciary decisions or constraints implies a corresponding limitation of
reading, usage, or redistribution rights for this document, verbatim or
modified.

The LPdoc Internals Manual
**************************

This is the LPdoc internals manual, providing information on the
different internal parts of 'lpdoc' are their connections, which can be
useful if new capabilities need to be added to the system or its
libraries are used for other purposes.

Indexes

Introduction
************

This is the LPdoc internals manual, providing information on the
different internal parts of 'lpdoc' are their connections, which can be
useful if new capabilities need to be added to the system or its
libraries are used for other purposes.

Driver for documentation generation
***********************************

Author(s): Manuel Hermenegildo, Jose F. Morales.

This module implements the main driver for documentation generation.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(docmaker)).'
   * Exports:

        - Predicates:

          'doc_cmd/3'.
        - Multifiles:

          'fsmemo.key/2', 'fsmemo.deps/2', 'fsmemo.run/1'.

Documentation on exports
========================

 -- PREDICATE: doc_cmd/3:

     Usage: 'doc_cmd(InFile,Opts,Cmd)'

     Treat according to 'Cmd' 'InFile' (which can be a 'doccfg'-file or
     standalone file).  'Opts' is the list of options (see
     'autodoc_option/1').

Documentation on multifiles
===========================

 -- PREDICATE: fsmemo.key/2:

     The predicate is multifile.

     Module entry condition: 'fsmemo.key(Action,Arg2)'

        - The following properties hold at call time:

          'Action' is currently ground (it contains no variables).  (
          'ground/1')

 -- PREDICATE: fsmemo.deps/2:

     The predicate is multifile.

     Module entry condition: 'fsmemo.deps(Action,Arg2)'

        - The following properties hold at call time:

          'Action' is currently ground (it contains no variables).  (
          'ground/1')

 -- PREDICATE: fsmemo.run/1:

     The predicate is multifile.

     Module entry condition: 'fsmemo.run(Action)'

        - The following properties hold at call time:

          'Action' is currently ground (it contains no variables).  (
          'ground/1')

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc', 'autodoc_state', 'autodoc_images', 'autodoc_structure',
     'autodoc_settings', 'autodoc_filesystem', 'autodoc_texinfo',
     'autodoc_messages', 'docmod_holder'.
   - System library modules:

     'format', 'aggregates', 'compiler', 'lists', 'stream_utils',
     'pathnames', 'fsmemo_rt', 'port_reify', 'system', 'opendoc',
     'read'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt', 'internals', 'stream_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'dcg', 'basicmodes',
     'fsyntax', 'fsmemo'.

Documentation generation library
********************************

Author(s): Manuel Hermenegildo, Jose F. Morales.

This library provides some predicates which generate documentation
automatically for a given documenation component (module, package,
application, etc.), using the declarations and assertions used in the
source itself as input (see the 'assertions' library).

The output format in which the documentation is generated is defined by
the backend modules ( 'autodoc_texinfo', 'autodoc_html', 'autodoc_man',
etc.).

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc)).'
   * Exports:

        - Predicates:

          'reset_output_dir_db/0', 'ensure_output_dir_prepared/2',
          'get_autodoc_opts/3', 'autodoc_gen_doctree/5',
          'fmt_infodir_entry/3', 'autodoc_compute_grefs/3',
          'autodoc_translate_doctree/3', 'autodoc_is_operational/2',
          'autodoc_finish/1', 'autodoc_gen_alternative/2'.
        - Multifiles:

          'autodoc_is_operational_hook/2', 'autodoc_finish_hook/1',
          'autodoc_gen_alternative_hook/2'.

Documentation on exports
========================

 -- PREDICATE: reset_output_dir_db/0:
     No further documentation available for this predicate.

 -- PREDICATE: ensure_output_dir_prepared/2:

     Usage: 'ensure_output_dir_prepared(Backend,Opts)'

     Ensure that the output directories for backend 'Backend' are
     prepared.

 -- PREDICATE: get_autodoc_opts/3:

     Usage: 'get_autodoc_opts(Backend,Mod,Opts)'

     Get the list of documentation options 'Opts' for the 'FileBase'
     file.
        - The following properties should hold at call time:

          'Backend' is an atom.  ( 'atm/1')

          'Mod' is an atom.  ( 'atm/1')

          'Opts' is any term.  ( 'term/1')
        - The following properties should hold upon exit:

          'Backend' is an atom.  ( 'atm/1')

          'Mod' is an atom.  ( 'atm/1')

          'Opts' is a list of 'supported_option's.  ( 'list/2')

 -- PREDICATE: autodoc_gen_doctree/5:

     Usage: 'autodoc_gen_doctree(Backend,FileBase,FileExt,Opts,Mod)'

     'FileBase' is the module specifier of the source file being
     documented (without extension, 'FileExt' is the source extension).
     The output is a file whose contents document the main file, based
     on any assertions present in that file.  The documentation is
     produced in the format given by 'Backend' (the name of the output
     file also depends on 'Backend').  The formats supported are given
     by 'backend_id/1'.
        - Call and exit should be compatible with:

          'Backend' is a supported backend.  ( 'backend_id/1')

          'FileBase' is the base name of a file (without extension).  (
          'filename_noext/1')

          'FileExt' is an atom.  ( 'atm/1')

          'Opts' is a list of 'supported_option's.  ( 'list/2')

          'Mod' is an atom.  ( 'atm/1')

 -- PREDICATE: fmt_infodir_entry/3:

     Usage: 'fmt_infodir_entry(DocSt,Version,Mod)'

     Generates a one line description (ASCII) of the application or
     library in a file for the directory of 'emacs info' manuals.
        - The following properties should hold at call time:

          'docstate(DocSt)' ( 'docstate/1')

          'Version' is any term.  ( 'term/1')

          'Mod' is the base name of a file (without extension).  (
          'filename_noext/1')

 -- PREDICATE: autodoc_compute_grefs/3:

     Usage:

     Compute the globally resolved references (including bibliography)

 -- PREDICATE: autodoc_translate_doctree/3:

     Usage:

     Translate the doctree using the specific backend

 -- PREDICATE: autodoc_is_operational/2:
     No further documentation available for this predicate.

 -- PREDICATE: autodoc_finish/1:
     No further documentation available for this predicate.

 -- PREDICATE: autodoc_gen_alternative/2:
     No further documentation available for this predicate.

Documentation on multifiles
===========================

 -- PREDICATE: autodoc_is_operational_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_finish_hook/1:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_gen_alternative_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'doccfg_props', 'autodoc_state', 'autodoc_settings',
     'autodoc_filesystem', 'autodoc_structure', 'autodoc_doctree',
     'autodoc_refsdb', 'autodoc_parse', 'autodoc_index', 'comments',
     'autodoc_messages', 'autodoc_html_assets', 'autodoc_texinfo',
     'autodoc_aux'.
   - System library modules:

     'datafacts_rt', 'format', 'read', 'aggregates', 'compiler',
     'assrt_lib', 'c_itf', 'pathnames', 'lists', 'terms',
     'assertions_props', 'system', 'bundle_paths'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt', 'stream_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'dcg', 'basicmodes',
     'fsyntax', 'datafacts'.

Internal state for documentation generation
*******************************************

Author(s): Manuel Hermenegildo, Jose F. Morales.

This module defines the internal state of the documentation generation
(for a single module).

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_state)).'
   * Exports:

        - Predicates:

          'backend_ignores_components/1', 'backend_alt_format/2',
          'parent_format/2', 'docst_backend/2', 'docst_currmod/2',
          'docst_set_currmod/3', 'docst_opts/2', 'docst_set_opts/3',
          'docst_inputfile/2', 'docst_pragma/2', 'docst_new_no_src/4',
          'docst_new_with_src/5', 'docst_new_sub/3', 'docst_opt/2',
          'docst_currmod_is_main/1', 'docst_no_components/1',
          'docst_modname/2', 'labgen_init/1', 'labgen_clean/1',
          'labgen_get/2', 'docst_mvar_lookup/3', 'docst_mvar_replace/4',
          'docst_mvar_get/3', 'docst_mdata_clean/1',
          'docst_mdata_assertz/2', 'docst_mdata_save/1',
          'docst_gdata/3', 'docst_gdata_query/2', 'docst_gdata_query/3',
          'docst_gdata_restore/1', 'docst_gdata_clean/1',
          'docst_gvar_save/2', 'docst_gvar_restore/2',
          'docst_has_index/2', 'all_indices/2', 'get_doc/4',
          'get_doc_changes/3', 'get_doc_pred_varnames/2',
          'custom_doc/2', 'doc_assertion_read/9', 'get_docdecl/4',
          'bind_dict_varnames/1', 'get_mod_doc/3', 'pred_has_docprop/2',
          'docst_filetype/2', 'get_first_loc_for_pred/3'.
        - Regular Types:

          'backend_id/1', 'docstate/1'.

Documentation on exports
========================

 -- REGTYPE: backend_id/1:

     Usage: 'backend_id(Id)'

     'Id' is a supported backend.

 -- PREDICATE: backend_ignores_components/1:

     Usage: 'backend_ignores_components(Id)'

     'Id' does not take into account components (only documents the
     mainfile)

 -- PREDICATE: backend_alt_format/2:

     Usage: 'backend_alt_format(Id,Ext)'

     'Ext' is an alternative file format that can be generated by the
     backend 'Id'

 -- PREDICATE: parent_format/2:

     Usage: 'parent_format(Format,Parent)'

     'Parent' is the parent format that will generate the file with
     'Format' format.

 -- REGTYPE: docstate/1:
     A regular type, defined as follows:
          docstate(docstate(Backend,Name,Opts,MVarDic,I)) :-
              backend_id(Backend),
              atom(Name),
              list(Opts,supported_option),
              dictionary(MVarDic),
              filename(I).

 -- PREDICATE: docst_backend/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_currmod/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_set_currmod/3:
     No further documentation available for this predicate.

 -- PREDICATE: docst_opts/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_set_opts/3:
     No further documentation available for this predicate.

 -- PREDICATE: docst_inputfile/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_pragma/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_new_no_src/4:
     No further documentation available for this predicate.

 -- PREDICATE: docst_new_with_src/5:
     No further documentation available for this predicate.

 -- PREDICATE: docst_new_sub/3:
     No further documentation available for this predicate.

 -- PREDICATE: docst_opt/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_currmod_is_main/1:
     No further documentation available for this predicate.

 -- PREDICATE: docst_no_components/1:

     Usage: 'docst_no_components(DocSt)'

     'DocSt' specify an empty list of components

 -- PREDICATE: docst_modname/2:

     Usage: 'docst_modname(DocSt,ModName)'

     'ModName' is the name of the module that we are documenting.

 -- PREDICATE: labgen_init/1:
     No further documentation available for this predicate.

 -- PREDICATE: labgen_clean/1:
     No further documentation available for this predicate.

 -- PREDICATE: labgen_get/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_mvar_lookup/3:
     No further documentation available for this predicate.

 -- PREDICATE: docst_mvar_replace/4:
     No further documentation available for this predicate.

 -- PREDICATE: docst_mvar_get/3:
     No further documentation available for this predicate.

 -- PREDICATE: docst_mdata_clean/1:
     No further documentation available for this predicate.

 -- PREDICATE: docst_mdata_assertz/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_mdata_save/1:
     No further documentation available for this predicate.

 -- PREDICATE: docst_gdata/3:
     No further documentation available for this predicate.  The
     predicate is of type data.

 -- PREDICATE: docst_gdata_query/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_gdata_query/3:
     No further documentation available for this predicate.

 -- PREDICATE: docst_gdata_restore/1:
     No further documentation available for this predicate.

 -- PREDICATE: docst_gdata_clean/1:
     No further documentation available for this predicate.

 -- PREDICATE: docst_gvar_save/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_gvar_restore/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_has_index/2:
     No further documentation available for this predicate.

 -- PREDICATE: all_indices/2:
     No further documentation available for this predicate.

 -- PREDICATE: get_doc/4:
     No further documentation available for this predicate.

 -- PREDICATE: get_doc_changes/3:
     No further documentation available for this predicate.

 -- PREDICATE: get_doc_pred_varnames/2:
     No further documentation available for this predicate.

 -- PREDICATE: custom_doc/2:
     No further documentation available for this predicate.  The
     predicate is of type data.

 -- PREDICATE: doc_assertion_read/9:
     No further documentation available for this predicate.

 -- PREDICATE: get_docdecl/4:
     No further documentation available for this predicate.

 -- PREDICATE: bind_dict_varnames/1:

     Usage: 'bind_dict_varnames(Dict)'

     Binds the variables in 'Dict' to the corresponding names (i.e., the
     names that appeared in the source during read.

 -- PREDICATE: get_mod_doc/3:
     No further documentation available for this predicate.

 -- PREDICATE: pred_has_docprop/2:
     No further documentation available for this predicate.

 -- PREDICATE: docst_filetype/2:
     No further documentation available for this predicate.

 -- PREDICATE: get_first_loc_for_pred/3:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'doccfg_props', 'autodoc_settings', 'autodoc_filesystem',
     'autodoc_structure', 'autodoc_doctree', 'autodoc_refsdb',
     'autodoc_parse', 'autodoc_index', 'comments', 'autodoc_messages',
     'autodoc_aux'.
   - System library modules:

     'datafacts_rt', 'aggregates', 'compiler', 'assrt_lib', 'c_itf',
     'assertions_props', 'pathnames', 'lists', 'terms', 'dict', 'write',
     'read', 'system'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt', 'runtime_control', 'stream_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'basicmodes', 'fsyntax',
     'datafacts'.

Documentation abstract syntax tree
**********************************

Author(s): Manuel Hermenegildo (original version), Jose F. Morales.

This module defines the intermediate tree representation 'doctree/1' for
documentation and its related operations.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_doctree)).'
   * Exports:

        - Predicates:

          'cmd_type/1', 'doctree_is_empty/1', 'is_nonempty_doctree/1',
          'empty_doctree/1', 'doctree_insert_end/3',
          'doctree_insert_before_subfile_section/3', 'doctree_concat/3',
          'doclink_at/2', 'doclink_is_local/1', 'section_prop/2',
          'section_select_prop/3', 'doctree_save/2',
          'doctree_restore/2', 'doctree_simplify/2',
          'doctree_putvars/5', 'doctree_scan_and_save_refs/2',
          'doctree_prepare_docst_translate_and_write/3',
          'doctree_to_rawtext/3', 'doctree_translate_and_write/3',
          'escape_string/4', 'is_version/1', 'version_patch/2',
          'version_date/2', 'version_numstr/2', 'version_string/2',
          'insert_show_toc/3'.
        - Regular Types:

          'doctree/1', 'doclink/1', 'doclabel/1', 'doctokens/1'.
        - Multifiles:

          'doc_cmd_type/1', 'doc_cmd_rw/2', 'autodoc_rw_command_hook/4',
          'autodoc_escape_string_hook/5'.

Documentation on exports
========================

 -- PREDICATE: cmd_type/1:
     No further documentation available for this predicate.

 -- REGTYPE: doctree/1:

     Usage:

     Intermediate tree representation for documentation

 -- PREDICATE: doctree_is_empty/1:

     Usage: 'doctree_is_empty(R)'

     Emptiness test
        - The following properties should hold at call time:

          'R' is currently a term which is not a free variable.  (
          'nonvar/1')

          Intermediate tree representation for documentation (
          'doctree/1')

 -- PREDICATE: is_nonempty_doctree/1:

     Usage: 'is_nonempty_doctree(R)'

     Not empty test
        - The following properties should hold at call time:

          'R' is currently a term which is not a free variable.  (
          'nonvar/1')

          Intermediate tree representation for documentation (
          'doctree/1')

 -- PREDICATE: empty_doctree/1:

     Usage: 'empty_doctree(R)'

     Empty
        - The following properties should hold at call time:

          'R' is a free variable.  ( 'var/1')

          Intermediate tree representation for documentation (
          'doctree/1')

 -- PREDICATE: doctree_insert_end/3:

     Usage: 'doctree_insert_end(A0,Elem,A)'

     Insert 'Elem' in 'A0' at the end, obtaining 'A'
        - Call and exit should be compatible with:

          Intermediate tree representation for documentation (
          'doctree/1')

          Intermediate tree representation for documentation (
          'doctree/1')

          Intermediate tree representation for documentation (
          'doctree/1')

 -- PREDICATE: doctree_insert_before_subfile_section/3:

     Usage: 'doctree_insert_before_subfile_section(A0,Elem,A)'

     Insert 'Elem' in 'A0' before the first section, obtaining 'A'.
     Keep 'A0' if 'Elem' is already present.
        - Call and exit should be compatible with:

          Intermediate tree representation for documentation (
          'doctree/1')

          Intermediate tree representation for documentation (
          'doctree/1')

          Intermediate tree representation for documentation (
          'doctree/1')

 -- PREDICATE: doctree_concat/3:
     No further documentation available for this predicate.

 -- REGTYPE: doclink/1:

     Usage:

     A link to a document label

 -- REGTYPE: doclabel/1:

     Usage:

     An internal label

 -- PREDICATE: doclink_at/2:
     No further documentation available for this predicate.

 -- PREDICATE: doclink_is_local/1:
     No further documentation available for this predicate.

 -- REGTYPE: doctokens/1:

     Usage:

     Primitive doctree subset (ready for output, not further reducible)

 -- PREDICATE: section_prop/2:
     No further documentation available for this predicate.

 -- PREDICATE: section_select_prop/3:
     No further documentation available for this predicate.

 -- PREDICATE: doctree_save/2:

     Usage:

        - Call and exit should be compatible with:

          'Arg1' is an atom.  ( 'atm/1')

          Intermediate tree representation for documentation (
          'doctree/1')
        - The following properties should hold at call time:

          'Arg1' is currently a term which is not a free variable.  (
          'nonvar/1')

          'Arg2' is currently a term which is not a free variable.  (
          'nonvar/1')

 -- PREDICATE: doctree_restore/2:

     Usage:

        - Call and exit should be compatible with:

          'Arg1' is an atom.  ( 'atm/1')

          Intermediate tree representation for documentation (
          'doctree/1')
        - The following properties should hold at call time:

          'Arg1' is currently a term which is not a free variable.  (
          'nonvar/1')

 -- PREDICATE: doctree_simplify/2:
     No further documentation available for this predicate.

 -- PREDICATE: doctree_putvars/5:

     Usage: 'doctree_putvars(R0,DocSt,PDict,VarDict,R)'

     Traverse 'R0' and replace each 'var(Name)' doctree item with a
     fresh variable 'B'.  For each replacement, the term 'B=Var' is
     introduced in 'VarDict', where 'Var' is the associated value to
     'Name' in the dictionary 'PDict'.
        - The following properties should hold at call time:

          Intermediate tree representation for documentation (
          'doctree/1')

          'docstate(DocSt)' ( 'docstate/1')
        - The following properties should hold upon exit:

          Intermediate tree representation for documentation (
          'doctree/1')

 -- PREDICATE: doctree_scan_and_save_refs/2:

     Usage: 'doctree_scan_and_save_refs(R,DocSt)'

     Scan and save the references of the doctree
        - The following properties should hold at call time:

          Intermediate tree representation for documentation (
          'doctree/1')

          'docstate(DocSt)' ( 'docstate/1')

 -- PREDICATE: doctree_prepare_docst_translate_and_write/3:
     No further documentation available for this predicate.

 -- PREDICATE: doctree_to_rawtext/3:

     Usage: 'doctree_to_rawtext(X,DocSt,Y)'

     'Y' is a simplified raw text representation of the 'X'
        - Call and exit should be compatible with:

          Intermediate tree representation for documentation (
          'doctree/1')

          'docstate(DocSt)' ( 'docstate/1')

          'Y' is a string (a list of character codes).  ( 'string/1')

 -- PREDICATE: doctree_translate_and_write/3:
     No further documentation available for this predicate.

 -- PREDICATE: escape_string/4:

     Usage:

     Escapes needed characters in input string as needed for the target
     format.
        - The following properties should hold upon exit:

          'Arg1' is currently instantiated to an atom.  ( 'atom/1')

          'Arg2' is a string (a list of character codes).  ( 'string/1')

          'docstate(Arg3)' ( 'docstate/1')

          'Arg4' is a string (a list of character codes).  ( 'string/1')

 -- PREDICATE: is_version/1:
     No further documentation available for this predicate.

 -- PREDICATE: version_patch/2:
     No further documentation available for this predicate.

 -- PREDICATE: version_date/2:
     No further documentation available for this predicate.

 -- PREDICATE: version_numstr/2:

     Usage: 'version_numstr(Version,Str)'

     Obtain the string 'Str' representation of version 'Version' (except
     date)

 -- PREDICATE: version_string/2:

     Usage: 'version_string(Version,Str)'

     Obtain the string 'Str' representation of version 'Version'
     (including date)

 -- PREDICATE: insert_show_toc/3:

     Usage: 'insert_show_toc(R0,DocSt,R)'

     Insert the command to show the table of contents in a given
     'doctree/1'.  The right place may be different depending on the
     chosen backend.

Documentation on multifiles
===========================

 -- PREDICATE: doc_cmd_type/1:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: doc_cmd_rw/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_rw_command_hook/4:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_escape_string_hook/5:
     No further documentation available for this predicate.  The
     predicate is multifile.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_refsdb', 'autodoc_index',
     'autodoc_structure', 'autodoc_filesystem', 'autodoc_settings',
     'comments', 'autodoc_messages', 'autodoc_texinfo', 'autodoc_man',
     'autodoc_html', 'autodoc_nil'.
   - System library modules:

     'write', 'operators', 'format', 'pathnames', 'lists', 'read',
     'terms'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt', 'stream_basic', 'runtime_control'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'basicmodes', 'fsyntax'.

Handling the Document Structure
*******************************

Author(s): Jose F. Morales.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_structure)).'
   * Exports:

        - Predicates:

          'docstr_node/4', 'clean_docstr/0', 'parse_structure/0',
          'standalone_docstr/1', 'get_mainmod/1', 'get_mainmod_spec/1',
          'all_component_specs/1'.

Documentation on exports
========================

 -- PREDICATE: docstr_node/4:
     No further documentation available for this predicate.  The
     predicate is of type data.

 -- PREDICATE: clean_docstr/0:
     No further documentation available for this predicate.

 -- PREDICATE: parse_structure/0:
     No further documentation available for this predicate.

 -- PREDICATE: standalone_docstr/1:
     No further documentation available for this predicate.

 -- PREDICATE: get_mainmod/1:
     No further documentation available for this predicate.

 -- PREDICATE: get_mainmod_spec/1:
     No further documentation available for this predicate.

 -- PREDICATE: all_component_specs/1:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_settings'.
   - System library modules:

     'datafacts_rt', 'pathnames', 'aggregates', 'terms'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'basicmodes', 'fsyntax',
     'datafacts'.

Current documentation settings
******************************

Author(s): Jose F. Morales.

This module defines the predicates to load and access documentation
configurations (modules implementing 'doccfg').

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_settings)).'
   * Exports:

        - Predicates:

          'autodoc_option/1', 'settings_file/1',
          'clean_autodoc_settings/0', 'load_settings/3',
          'verify_settings/0', 'setting_value_or_default/2',
          'setting_value/2', 'all_setting_values/2', 'load_vpaths/1',
          'custom_html_layout/0', 'bibtex/1', 'tex/1', 'texindex/1',
          'awk/1', 'dvips/1', 'ps2pdf/1', 'makeinfo/1', 'convertc/1'.
        - Multifiles:

          'file_search_path/2'.

Documentation on exports
========================

 -- PREDICATE: autodoc_option/1:
     No further documentation available for this predicate.  The
     predicate is of type data.

 -- PREDICATE: settings_file/1:
     No further documentation available for this predicate.  The
     predicate is of type data.

 -- PREDICATE: clean_autodoc_settings/0:
     No further documentation available for this predicate.

 -- PREDICATE: load_settings/3:

     Usage: 'load_settings(InFile,InKind,Opts)'

     Set configuration from 'InFile' of kind 'InKind' and 'Opts'

 -- PREDICATE: verify_settings/0:
     No further documentation available for this predicate.

 -- PREDICATE: setting_value_or_default/2:

     Usage: 'setting_value_or_default(Var,Value)'

     Returns in 'Value' the value of the variable 'Var'.  In case this
     variable does not exist, it returns a default value.  If there is
     no default value for the variable 'Var' it fails.

 -- PREDICATE: setting_value/2:
     No further documentation available for this predicate.

 -- PREDICATE: all_setting_values/2:
     No further documentation available for this predicate.

 -- PREDICATE: load_vpaths/1:
     No further documentation available for this predicate.

 -- PREDICATE: custom_html_layout/0:
     No further documentation available for this predicate.

 -- PREDICATE: bibtex/1:
     No further documentation available for this predicate.

 -- PREDICATE: tex/1:
     No further documentation available for this predicate.

 -- PREDICATE: texindex/1:
     No further documentation available for this predicate.

 -- PREDICATE: awk/1:
     No further documentation available for this predicate.

 -- PREDICATE: dvips/1:
     No further documentation available for this predicate.

 -- PREDICATE: ps2pdf/1:
     No further documentation available for this predicate.

 -- PREDICATE: makeinfo/1:
     No further documentation available for this predicate.

 -- PREDICATE: convertc/1:
     No further documentation available for this predicate.

Documentation on multifiles
===========================

 -- PREDICATE: file_search_path/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

     The predicate is of type dynamic.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_messages', 'doccfg_holder', 'autodoc_filesystem'.
   - System library modules:

     'datafacts_rt', 'pathnames', 'aggregates', 'lists', 'system',
     'bundle_paths'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'stream_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax', 'datafacts'.

LPdoc backends
**************

Texinfo backend
***************

Author(s): Manuel Hermenegildo, Jose F. Morales.

This module implements the output format backend for 'texinfo' (see The
GNU Texinfo Documentation System manual for more info).  This backend is
is used to generate both ps/pdf and info manuals.

In this backend the documentation for a module is a texinfo chapter,
suitable for inclusion in a wrapper "main" document file.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_texinfo)).'
   * Exports:

        - Predicates:

          'infodir_base/2'.
        - Multifiles:

          'autodoc_escape_string_hook/5', 'autodoc_rw_command_hook/4',
          'autodoc_is_operational_hook/2', 'autodoc_finish_hook/1',
          'autodoc_gen_alternative_hook/2'.

Documentation on exports
========================

 -- PREDICATE: infodir_base/2:
     No further documentation available for this predicate.

Documentation on multifiles
===========================

 -- PREDICATE: autodoc_escape_string_hook/5:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_rw_command_hook/4:

     Usage: 'autodoc_rw_command_hook(Backend,DocSt,Command,NewCommand)'

        - The following properties should hold at call time:

          'Backend' is a supported backend.  ( 'backend_id/1')

          'docstate(DocSt)' ( 'docstate/1')

          Intermediate tree representation for documentation (
          'doctree/1')

          Intermediate tree representation for documentation (
          'doctree/1')

     The predicate is multifile.

 -- PREDICATE: autodoc_is_operational_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_finish_hook/1:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_gen_alternative_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_filesystem', 'autodoc_structure',
     'autodoc_index', 'autodoc_doctree', 'autodoc_images',
     'autodoc_settings', 'autodoc_aux', 'comments', 'autodoc_messages'.
   - System library modules:

     'lists', 'terms', 'format', 'format_to_string', 'system',
     'pathnames', 'glob', 'system_extra', 'stream_utils'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax'.

HTML backend
************

Author(s): Jose F. Morales.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_html)).'

Documentation on multifiles
===========================

 -- PREDICATE: autodoc_escape_string_hook/5:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_rw_command_hook/4:

     Usage: 'autodoc_rw_command_hook(Backend,DocSt,Command,NewCommand)'

        - The following properties should hold at call time:

          'Backend' is a supported backend.  ( 'backend_id/1')

          'docstate(DocSt)' ( 'docstate/1')

          Intermediate tree representation for documentation (
          'doctree/1')

          Intermediate tree representation for documentation (
          'doctree/1')

     The predicate is multifile.

 -- PREDICATE: autodoc_is_operational_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_finish_hook/1:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_gen_alternative_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_structure', 'autodoc_filesystem',
     'autodoc_doctree', 'autodoc_index', 'autodoc_refsdb',
     'autodoc_images', 'autodoc_settings', 'autodoc_messages',
     'comments', 'autodoc_html_template', 'autodoc_html_assets'.
   - System library modules:

     'lists', 'aggregates', 'dict', 'pathnames', 'format_to_string',
     'syntax_highlight', 'system', 'system_extra', 'stream_utils'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax'.

Assets for the HTML backend
***************************

Author(s): Jose F. Morales.

Predicates to manage asset data (file hierarchies for images, CSS files,
JavaScript code, etc.)  to be used in the output of the HTML backend.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_html_assets)).'
   * Exports:

        - Predicates:

          'prepare_html_assets/2', 'asset_file/2', 'using_mathjax/1'.

Documentation on exports
========================

 -- PREDICATE: prepare_html_assets/2:
     No further documentation available for this predicate.

 -- PREDICATE: asset_file/2:
     No further documentation available for this predicate.

 -- PREDICATE: using_mathjax/1:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_messages', 'autodoc_settings', 'autodoc_filesystem'.
   - System library modules:

     'datafacts_rt', 'lists', 'pathnames', 'system', 'bundle_paths',
     'source_tree'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'isomodes', 'fsyntax', 'datafacts'.

Template support for the HTML backend
*************************************

Author(s): Jose F. Morales.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_html_template)).'
   * Exports:

        - Predicates:

          'prefix_htmlurl/2', 'img_url/2', 'fmt_html_template/3'.

Documentation on exports
========================

 -- PREDICATE: prefix_htmlurl/2:

     Usage: 'prefix_htmlurl(Path,Path2)'

     Prefix 'Path' with value of 'htmlurl' (if needed)
        - Call and exit should be compatible with:

          'Path' is an atom.  ( 'atm/1')

          'Path2' is an atom.  ( 'atm/1')

 -- PREDICATE: img_url/2:

     Usage: 'img_url(Name,Url)'

     Obtain the 'URL' where image 'Name' is or will be found.
        - Call and exit should be compatible with:

          'Name' is an atom.  ( 'atm/1')

          'Url' is a string (a list of character codes).  ( 'string/1')

 -- PREDICATE: fmt_html_template/3:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_settings'.
   - System library modules:

     'system', 'stream_utils', 'pathnames', 'lists', 'html'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'stream_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'fsyntax'.

Man Pages (man) backend
***********************

Author(s): Jose F. Morales, Manuel Hermenegildo.

This module implements some limited support for direct output in unix
'man' format.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_man)).'

Documentation on multifiles
===========================

 -- PREDICATE: autodoc_rw_command_hook/4:

     Usage: 'autodoc_rw_command_hook(Backend,DocSt,Command,NewCommand)'

        - The following properties should hold at call time:

          'Backend' is a supported backend.  ( 'backend_id/1')

          'docstate(DocSt)' ( 'docstate/1')

          Intermediate tree representation for documentation (
          'doctree/1')

          Intermediate tree representation for documentation (
          'doctree/1')

     The predicate is multifile.

 -- PREDICATE: autodoc_is_operational_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_finish_hook/1:
     No further documentation available for this predicate.  The
     predicate is multifile.

 -- PREDICATE: autodoc_gen_alternative_hook/2:
     No further documentation available for this predicate.  The
     predicate is multifile.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_doctree', 'autodoc_images',
     'autodoc_aux', 'comments'.
   - System library modules:

     'lists', 'format_to_string'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax'.

Filesystem abstraction
**********************

Author(s): Jose F. Morales.

This module provides definitions to assign unique file-system paths and
names for each of the intermediate and final results of documentation
generation.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_filesystem)).'
   * Exports:

        - Predicates:

          'cleanup_vpath/0', 'add_vpath/1', 'vpath_indir/1',
          'find_file/2', 'find_file/3', 'find_doc_source/2',
          'file_format_name/2', 'supported_file_format/1',
          'format_get_subtarget/3', 'format_get_file/3',
          'clean_fs_db/0', 'get_output_dir/2', 'get_cache_dir/2',
          'get_cache_dir0/2', 'ensure_output_dir/1',
          'ensure_cache_dir/1', 'absfile_for_aux/3',
          'absfile_for_subtarget/4', 'main_output_name/2',
          'main_output_name_novers/1', 'get_parent_bundle/1',
          'get_modspec/2', 'modname_nodoc/2', 'modspec_nodoc/2',
          'get_subbase/3', 'absfile_to_relfile/3', 'clean_all/0',
          'clean_docs_no_texi/0', 'clean_all_temporary/0',
          'clean_intermediate/0', 'pred_to_glob_pattern/2'.
        - Regular Types:

          'filename/1', 'filename_noext/1', 'subtarget/1'.

Documentation on exports
========================

 -- REGTYPE: filename/1:

     Usage: 'filename(X)'

     'X' is the name of a file.

 -- REGTYPE: filename_noext/1:

     Usage: 'filename_noext(X)'

     'X' is the base name of a file (without extension).

 -- PREDICATE: cleanup_vpath/0:
     No further documentation available for this predicate.

 -- PREDICATE: add_vpath/1:
     No further documentation available for this predicate.

 -- PREDICATE: vpath_indir/1:
     No further documentation available for this predicate.

 -- PREDICATE: find_file/2:
     No further documentation available for this predicate.

 -- PREDICATE: find_file/3:
     No further documentation available for this predicate.
     Meta-predicate with arguments: 'find_file(?,pred(1),?)'.

 -- PREDICATE: find_doc_source/2:
     No further documentation available for this predicate.

 -- REGTYPE: subtarget/1:

     Usage:

     The kind of intermediate/final results for a single documentation
     processing unit (module).

 -- PREDICATE: file_format_name/2:
     No further documentation available for this predicate.

 -- PREDICATE: supported_file_format/1:
     No further documentation available for this predicate.

 -- PREDICATE: format_get_subtarget/3:

     Usage: 'format_get_subtarget(Format,Backend,Subtarget)'

     'Backend' and 'Subtarget' are the backend and subtarget that
     generates files with format 'Format'
        - Call and exit should be compatible with:

          'Format' is an atom.  ( 'atm/1')

          'Backend' is a supported backend.  ( 'backend_id/1')

          'Subtarget' is an atom.  ( 'atm/1')

 -- PREDICATE: format_get_file/3:

     Usage: 'format_get_file(Format,Mod,File)'

     'File' is the principal file for 'Mod' in format 'Format'
        - Call and exit should be compatible with:

          'Format' is an atom.  ( 'atm/1')

          'Mod' is an atom.  ( 'atm/1')

          'File' is an atom.  ( 'atm/1')

 -- PREDICATE: clean_fs_db/0:

     Usage:

     Clean the cached information for the filesystem mapping of the
     documentaton generation.

 -- PREDICATE: get_output_dir/2:

     Usage: 'get_output_dir(Backend,Dir)'

     'Dir' is the directory where the documentation files are generated.
     Note that this is not the installation directory.

 -- PREDICATE: get_cache_dir/2:

     Usage: 'get_cache_dir(Backend,Dir)'

     'Dir' is the directory where temporary documentation files will be
     stored (for the active backend)

 -- PREDICATE: get_cache_dir0/2:

     Usage: 'get_cache_dir0(Backend,Dir)'

     'Dir' is the directory where temporary documentation files will be
     stored (for all backends)

 -- PREDICATE: ensure_output_dir/1:
     No further documentation available for this predicate.

 -- PREDICATE: ensure_cache_dir/1:
     No further documentation available for this predicate.

 -- PREDICATE: absfile_for_aux/3:

     Usage: 'absfile_for_aux(AuxName,Backend,AbsFile)'

     Absolute file for an auxiliary output file (e.g.  CSS, images,
     etc.)

 -- PREDICATE: absfile_for_subtarget/4:
     No further documentation available for this predicate.

 -- PREDICATE: main_output_name/2:
     No further documentation available for this predicate.

 -- PREDICATE: main_output_name_novers/1:
     No further documentation available for this predicate.

 -- PREDICATE: get_parent_bundle/1:
     No further documentation available for this predicate.

 -- PREDICATE: get_modspec/2:
     No further documentation available for this predicate.

 -- PREDICATE: modname_nodoc/2:
     No further documentation available for this predicate.

 -- PREDICATE: modspec_nodoc/2:
     No further documentation available for this predicate.

 -- PREDICATE: get_subbase/3:

     Usage: 'get_subbase(Base,Sub,SubBase)'

     'SubBase' is the name for the sub-file ('Sub') associated with
     'Base'
        - The following properties should hold upon exit:

          'Base' is the base name of a file (without extension).  (
          'filename_noext/1')

          'Sub' is an atom.  ( 'atm/1')

          'SubBase' is the base name of a file (without extension).  (
          'filename_noext/1')

 -- PREDICATE: absfile_to_relfile/3:

     Usage: 'absfile_to_relfile(A,Backend,B)'

     Obtain the relative path, w.r.t.  the output directory, of an
     absolute file.  This is useful, e.g., for URLs.

 -- PREDICATE: clean_all/0:
     No further documentation available for this predicate.

 -- PREDICATE: clean_docs_no_texi/0:
     No further documentation available for this predicate.

 -- PREDICATE: clean_all_temporary/0:
     No further documentation available for this predicate.

 -- PREDICATE: clean_intermediate/0:
     No further documentation available for this predicate.

 -- PREDICATE: pred_to_glob_pattern/2:
     No further documentation available for this predicate.
     Meta-predicate with arguments: 'pred_to_glob_pattern(pred(1),?)'.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_settings', 'autodoc_structure', 'autodoc_state'.
   - System library modules:

     'datafacts_rt', 'aggregates', 'pathnames', 'system', 'terms',
     'lists', 'system_extra', 'bundle_info', 'bundle_paths',
     'source_tree'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'basicmodes', 'fsyntax',
     'hiord', 'datafacts'.

Indexing commands (definition and formatting)
*********************************************

Author(s): Jose F. Morales.

This module defines index commands and formatting.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_index)).'
   * Exports:

        - Predicates:

          'typeindex/5', 'idx_get_indices/3', 'is_index_cmd/1',
          'codetype/1', 'normalize_index_cmd/3', 'fmt_idx_env/7',
          'get_use_outlink/4', 'fmt_index/3'.

Documentation on exports
========================

 -- PREDICATE: typeindex/5:

     Usage: 'typeindex(IdxName,IndexId,IType,Name,Comment)'

     Define properties of the index 'IdxName'.  'IndexId' is the index
     ID for texinfo.  'IType' is the type of index; an empty string
     means normal.  'Name' is the title of the index in the
     documentation.  'Comment' is a comment to include before the index.
        - The following properties should hold upon exit:

          'IdxName' is currently instantiated to an atom.  ( 'atom/1')

          'IndexId' is an atom.  ( 'atm/1')

          'IType' is a string (a list of character codes).  (
          'string/1')

          'Name' is a string (a list of character codes).  ( 'string/1')

          Intermediate tree representation for documentation (
          'doctree/1')

 -- PREDICATE: idx_get_indices/3:
     No further documentation available for this predicate.

 -- PREDICATE: is_index_cmd/1:
     No further documentation available for this predicate.

 -- PREDICATE: codetype/1:
     No further documentation available for this predicate.

 -- PREDICATE: normalize_index_cmd/3:
     No further documentation available for this predicate.

 -- PREDICATE: fmt_idx_env/7:
     No further documentation available for this predicate.

 -- PREDICATE: get_use_outlink/4:
     No further documentation available for this predicate.

 -- PREDICATE: fmt_index/3:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_filesystem', 'autodoc_doctree',
     'autodoc_structure', 'autodoc_refsdb'.
   - System library modules:

     'dict', 'lists', 'aggregates'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax'.

Database of documentation references
************************************

Author(s): Jose F. Morales.

This module stores and manages all the documentation references
(indices, sections, bibliography, etc.).  It includes the generation of
the table of contents.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_refsdb)).'
   * Exports:

        - Predicates:

          'compute_refs_and_biblio/1', 'prepare_current_refs/1',
          'clean_current_refs/1', 'pretty_cite/3', 'get_nav/4',
          'secttree_resolve/3'.
        - Regular Types:

          'secttree/1'.

Documentation on exports
========================

 -- PREDICATE: compute_refs_and_biblio/1:
     No further documentation available for this predicate.

 -- PREDICATE: prepare_current_refs/1:

     Usage:

     Prepare references for the translation of the current file.
        - Call and exit should be compatible with:

          'docstate(Arg1)' ( 'docstate/1')

 -- PREDICATE: clean_current_refs/1:

     Usage:

     Clean the data stored by 'prepare_current_refs/1'.
        - Call and exit should be compatible with:

          'docstate(Arg1)' ( 'docstate/1')

 -- PREDICATE: pretty_cite/3:

     Usage: 'pretty_cite(Ref,DocSt,Text)'

     Obtain citation text 'Text' for 'Ref' using the default
     bibliography style

 -- REGTYPE: secttree/1:

     Usage:

     A tree of sections

 -- PREDICATE: get_nav/4:

     Usage:

     Obtain some navigation links and the tree for the current section
     from a global tree
        - Call and exit should be compatible with:

          A tree of sections ( 'secttree/1')

          'Arg2' is an atom.  ( 'atm/1')

          'Arg3' is any term.  ( 'term/1')

          A tree of sections ( 'secttree/1')

 -- PREDICATE: secttree_resolve/3:

     Usage: 'secttree_resolve(LabelName,Tree,Link)'

     Locate in the section tree 'Tree' the section with label name
     'LabelName' and return the 'Link' to the section.
        - Call and exit should be compatible with:

          'LabelName' is a string (a list of character codes).  (
          'string/1')

          Intermediate tree representation for documentation (
          'doctree/1')

          A link to a document label ( 'doclink/1')

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_doctree', 'autodoc_structure',
     'autodoc_filesystem', 'autodoc_messages', 'autodoc_bibrefs'.
   - System library modules:

     'aggregates', 'lists'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax'.

Error messages (parsing)
************************

Author(s): Manuel Hermenegildo.

These texts are the basically the errors generated during parsing (
'autodoc_parse.pl').  Other error messages are interspersed in the code.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_errors)).'
   * Exports:

        - Predicates:

          'error_text/3'.

Documentation on exports
========================

 -- PREDICATE: error_text/3:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'basicmodes'.

Resolution of bibliographical references
****************************************

Author(s): Manuel Hermenegildo (original version), Jose F. Morales.

This module provides a predicate to resolve the bibliographical
references found during the generation of documentation.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_bibrefs)).'
   * Exports:

        - Predicates:

          'resolve_bibliography/1', 'parse_commands/3'.

Documentation on exports
========================

 -- PREDICATE: resolve_bibliography/1:

     Usage: 'resolve_bibliography(DocSt)'

     This predicate resolves bibliographical references.  The algorithm
     is as follows:
        * Write all the bibliographical references to a '.aux' file.
        * Invoke BibTeX with a customized '.bst' file that generates a
          pseudo-docstring.
        * Load the docstring and fix its syntax.
        * Parse the docstring as a doctree.
        * Extract '(Label,Ref)' pairs from 'bibitem' commands.

     Both the docstring and label/reference pairs are kept in the
     'DocSt', and used later to map symbolic references to textual
     labels.
        - The following properties should hold at call time:

          'docstate(DocSt)' ( 'docstate/1')

 -- PREDICATE: parse_commands/3:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_doctree', 'autodoc_refsdb',
     'autodoc_settings', 'autodoc_filesystem', 'autodoc_aux',
     'autodoc_messages', 'autodoc_parse'.
   - System library modules:

     'dict', 'aggregates', 'terms', 'stream_utils', 'lists', 'format',
     'pathnames', 'system'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'stream_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax'.

Auxiliary definitions
*********************

Author(s): Manuel Hermenegildo, Jose F. Morales.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_aux)).'
   * Exports:

        - Predicates:

          'all_vars/1', 'read_file/2', 'ascii_blank_lines/2',
          'autodoc_process_call/3', 'cmd_logbase/3'.

Documentation on exports
========================

 -- PREDICATE: all_vars/1:
     No further documentation available for this predicate.

 -- PREDICATE: read_file/2:
     No further documentation available for this predicate.

 -- PREDICATE: ascii_blank_lines/2:
     No further documentation available for this predicate.

 -- PREDICATE: autodoc_process_call/3:
     No further documentation available for this predicate.

 -- PREDICATE: cmd_logbase/3:
     No further documentation available for this predicate.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_messages', 'autodoc_settings', 'autodoc_filesystem'.
   - System library modules:

     'system', 'logged_process', 'pathnames'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'hiord_rt', 'stream_basic', 'io_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'basicmodes', 'fsyntax'.

Image handling
**************

Author(s): Jose F. Morales.

This module defines the handling of image commands.  It defines
predicates to locate and convert images in the different formats
required for documentation.

Usage and interface
===================

   * Library usage:

     ':- use_module(lpdoc(autodoc_images)).'
   * Exports:

        - Predicates:

          'locate_and_convert_image/4', 'clean_image_cache/0'.

Documentation on exports
========================

 -- PREDICATE: locate_and_convert_image/4:

     Usage:
     'locate_and_convert_image(SrcSpecS,AcceptedExts,DocSt,TargetFileS)'

     The image at 'SrcSpecS' is located (as one of the known image
     extensions 'imgext/1') and converted to one of the 'AcceptedExts'.
     The target file is called 'TargetFileS'
        - Call and exit should be compatible with:

          'SrcSpecS' is a string (a list of character codes).  (
          'string/1')

          'AcceptedExts' is a list of 'atm's.  ( 'list/2')

          'docstate(DocSt)' ( 'docstate/1')

          'TargetFileS' is a string (a list of character codes).  (
          'string/1')

 -- PREDICATE: clean_image_cache/0:

     Usage:

     Clean the cache for image copy/conversions.

Documentation on imports
========================

This module has the following direct dependencies:
   - Application modules:

     'autodoc_state', 'autodoc_filesystem', 'autodoc_settings',
     'autodoc_messages'.
   - System library modules:

     'datafacts_rt', 'lists', 'system', 'system_extra', 'process',
     'pathnames', 'format'.
   - Internal (engine) modules:

     'term_basic', 'arithmetic', 'atomic_basic', 'basiccontrol',
     'exceptions', 'term_compare', 'term_typing', 'debugger_support',
     'basic_props', 'stream_basic'.
   - Packages:

     'prelude', 'initial', 'condcomp', 'dcg', 'assertions',
     'assertions/assertions_basic', 'regtypes', 'fsyntax', 'datafacts'.

References
**********

(this section is empty)

Property Index
**************

Declaration Index
*****************

Global Index
************

This is a global index containing pointers to places where concepts,
predicates, modes, properties, types, applications, authors, etc., are
referred to in the text of the document.