\raggedbottom
\input texinfo @c -*- texinfo -*-
@comment %**start of header
@setfilename lpdoc_devel_man
@settitle The LPdoc Internals Manual
@comment @paragraphindent 0
@setchapternewpage odd
@comment @footnotestyle separate
@defcodeindex li
@defcodeindex pd
@defcodeindex pr
@defcodeindex te
@defcodeindex de
@defindex co
@defindex au
@defcodeindex gl
@iftex
@comment @smallbook
@afourpaper
@tolerance 10000
@hbadness 10000
@end iftex
@macro hfill
@tex
@hfill
@end tex
@end macro
@comment %**end of header

@iftex

@titlepage
@title The LPdoc Internals Manual
@comment @font@authorrm=cmbx10 scaled @magstep2
@subtitle INTERNALS MANUAL
@subtitle @b{The Ciao Documentation Series}
@subtitle @uref{https://ciao-lang.org/}
@subtitle @i{Generated/Printed on:} @today

@subtitle Technical Report CLIP 5/97.1-<version>
@author @b{Edited by:}
@author Manuel Hermenegildo
@author Jose F. Morales
@comment Copyright page
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1996-2018 Manuel Hermenegildo and Jos@'e 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:

@enumerate  

@item 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.

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

@item 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.

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

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

@item 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.

@item 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.
 
@item 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.

@item 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.

@end enumerate 

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.  
@end titlepage

@pageno 1
@contents
@end iftex
@ifinfo

Copyright @copyright{} 1996-2018 Manuel Hermenegildo and Jos@'e 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:

@enumerate  

@item 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.

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

@item 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.

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

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

@item 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.

@item 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.
 
@item 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.

@item 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.

@end enumerate 

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.  
@node Top, Introduction, (dir), (dir)
@top The LPdoc Internals Manual
@end ifinfo
@ifinfo
@end ifinfo
@ifnotinfo
@chapter Summary
@end ifnotinfo

This is the LPdoc 
@glindex internals manual
internals manual, providing information on the different internal parts of 
@glindex lpdoc
@code{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.

@menu
* Introduction::
* Driver for documentation generation::
* Documentation generation library::
* Internal state for documentation generation::
* Documentation abstract syntax tree::
* Handling the Document Structure::
* Current documentation settings::
* LPdoc backends::
* Filesystem abstraction::
* Indexing commands (definition and formatting)::
* Database of documentation references::
* Error messages (parsing)::
* Resolution of bibliographical references::
* Auxiliary definitions::
* Image handling::

Indexes

* Library/Module Index::
* Predicate Index::
* Property Index::
* Regular Type Index::
* Declaration Index::
* Concept Index::
* Author Index::
* Global Index::
@end menu
@include lpdoc_devel_manintro.texic
@include docmaker.texic
@include autodoc.texic
@include autodoc_state.texic
@include autodoc_doctree.texic
@include autodoc_structure.texic
@include autodoc_settings.texic
@include Backends.texic
@include autodoc_texinfo.texic
@include autodoc_html.texic
@include autodoc_html_assets.texic
@include autodoc_html_template.texic
@include autodoc_man.texic
@include autodoc_filesystem.texic
@include autodoc_index.texic
@include autodoc_refsdb.texic
@include autodoc_errors.texic
@include autodoc_bibrefs.texic
@include autodoc_aux.texic
@include autodoc_images.texic
@include lpdoc_devel_manrefs.texic
@include lpdoc_devel_manliindex.texic
@include lpdoc_devel_manpdindex.texic
@include lpdoc_devel_manprindex.texic
@include lpdoc_devel_manteindex.texic
@include lpdoc_devel_mandeindex.texic
@include lpdoc_devel_mancoindex.texic
@include lpdoc_devel_manauindex.texic
@include lpdoc_devel_manglindex.texic
@bye
