Info Node: (texinfo)Reference Implementation

CFHT HOME texinfo: Reference Implementation


up: Generic Translator texi2any next: Invoking texi2any Back to Software Index

22.1 'texi2any': A Texinfo Reference Implementation
===================================================

Above, we called 'texi2any' "the" translator for Texinfo instead of just
"a" translator, even though (of course) it's technically and legally
possible for other implementations to be written.  The reason is that
alternative implementations are highly likely to have subtle, or
not-so-subtle, differences in behavior, and thus Texinfo documents would
become dependent on the processor.  Therefore, it is important to have a
reference implementation that defines parts of the language not fully
specified by the manual (often intentionally so).  It is equally
important to have consistent command-line options and other behavior for
processors.

  For this reason, the once-independent 'texi2html' Perl Texinfo
processor was made compatible with the C implementation of 'makeinfo',
to avoid continuing with two different implementations (Note:
History).  The current reference implementation, 'texi2any', inherited
the design of customization and other features from 'texi2html' (for
more on 'texi2html' compatibility, Note: texi2html).  However,
'texi2any' is a full reimplementation: it constructs a tree-based
representation of the input document for all back-ends to work from.

  Extensive tests of the language were developed at the same time as
'texi2any'; we plead with anyone thinking of writing a program to parse
Texinfo input to at least make use of these tests.

  The 'texi2html' wrapper script (Note: texi2html) provides a simple
example of calling 'texi2any' from a shell script; it's in
'util/texi2html' in the Texinfo sources.  More consequentially,
'texi-elements-by-size' is an example Perl script using the
'Texinfo::Parser' module interface; it's in
'util/texi-elements-by-size'.  (Its functionality may also be useful to
authors; Note: texi-elements-by-size.)

  With the release of 'texi2any' as the reference implementation,
development of both the C implementation of 'makeinfo' and 'texi2html'
has been halted.  Going forward, we ask authors of Texinfo documents to
use only 'texi2any'.


automatically generated by info2www version 1.2