This file is indexed.

/usr/share/doc/texinfo/html/Reference-Implementation.html is in texinfo-doc-nonfree 6.5.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for GNU Texinfo (version 6.5, 25 August 2017),
a documentation system that can produce both online information and a
printed manual from a single source using semantic markup.

Copyright (C) 1988, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
1998, 1999, 2001, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover Texts being "A GNU Manual",
and with the Back-Cover Texts as in (a) below.  A copy of the license
is included in the section entitled "GNU Free Documentation
License".

(a) The FSF's Back-Cover Text is: "You have the freedom to copy and
modify this GNU manual.  Buying copies from the FSF supports it in
developing GNU and promoting software freedom." -->
<!-- Created by GNU Texinfo 6.4.90, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Reference Implementation (GNU Texinfo 6.5)</title>

<meta name="description" content="Reference Implementation (GNU Texinfo 6.5)">
<meta name="keywords" content="Reference Implementation (GNU Texinfo 6.5)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Command-and-Variable-Index.html#Command-and-Variable-Index" rel="index" title="Command and Variable Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Generic-Translator-texi2any.html#Generic-Translator-texi2any" rel="up" title="Generic Translator texi2any">
<link href="Invoking-texi2any.html#Invoking-texi2any" rel="next" title="Invoking texi2any">
<link href="Generic-Translator-texi2any.html#Generic-Translator-texi2any" rel="prev" title="Generic Translator texi2any">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="Reference-Implementation"></a>
<div class="header">
<p>
Next: <a href="Invoking-texi2any.html#Invoking-texi2any" accesskey="n" rel="next">Invoking <code>texi2any</code></a>, Up: <a href="Generic-Translator-texi2any.html#Generic-Translator-texi2any" accesskey="u" rel="up">Generic Translator <code>texi2any</code></a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html#Command-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="texi2any_003a-A-Texinfo-Reference-Implementation"></a>
<h3 class="section">20.1 <code>texi2any</code>: A Texinfo Reference Implementation</h3>

<a name="index-texi2any_002c-as-reference-implementation"></a>
<a name="index-Reference-implementation"></a>
<a name="index-Implementation_002c-texi2any-as-reference"></a>

<p>Above, we called <code>texi2any</code> &ldquo;the&rdquo; translator for Texinfo
instead of just &ldquo;a&rdquo; translator, even though (of course) it&rsquo;s
technically and legally possible for other implementations to be
written.  The reason is that alternative implementations are very
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 all processors.
</p>
<a name="index-Tree-representation-of-documents"></a>
<a name="index-Syntax-tree-representation-of-documents"></a>
<a name="index-Abstract-syntax-tree-representation-of-documents"></a>
<p>For this reason, the once-independent <code>texi2html</code> Perl Texinfo
processor was made compatible with the C implementation of
<code>makeinfo</code>, to avoid continuing with two different
implementations (see <a href="History.html#History">History</a>).  The current implementation,
<code>texi2any</code>, serves as the reference implementation.  It
inherited the design of customization and other features from
<code>texi2html</code> (for more on <code>texi2html</code> compatibility,
see <a href="texi2html.html#texi2html"><code>texi2html</code></a>).  However, <code>texi2any</code> is a full
reimplementation: it constructs a tree-based representation of the
input document for all back-ends to work from.
</p>
<a name="index-Texinfo-language-tests"></a>
<a name="index-Tests_002c-of-Texinfo-language"></a>
<p>Extensive tests of the language were developed at the same time as
<code>texi2any</code>; we plead with anyone thinking of writing a program
to parse Texinfo input to at least make use of these tests.
</p>
<a name="index-Examples-of-using-texi2any"></a>
<a name="index-Texinfo_003a_003aParser-module"></a>
<p>The <code>texi2html</code> wrapper script (see <a href="texi2html.html#texi2html"><code>texi2html</code></a>)
provides a very simple example of calling <code>texi2any</code> from a
shell script; it&rsquo;s in <samp>util/texi2html</samp> in the Texinfo sources.
More consequentially, <code>texi-elements-by-size</code> is an example
Perl script using the <code>Texinfo::Parser</code> module interface; it&rsquo;s
also in the <samp>util</samp> source directory.  (Its functionality may also
be useful to authors; see <a href="Tips.html#texi_002delements_002dby_002dsize">texi-elements-by-size</a>.)
</p>
<a name="index-Future-of-Texinfo-implementations"></a>
<p>With the release of <code>texi2any</code> as the reference
implementation, development of both the C implementation of
<code>makeinfo</code> and <code>texi2html</code> has been halted.  Going
forward, we ask authors of Texinfo documents to use only
<code>texi2any</code>.
</p>

<hr>
<div class="header">
<p>
Next: <a href="Invoking-texi2any.html#Invoking-texi2any" accesskey="n" rel="next">Invoking <code>texi2any</code></a>, Up: <a href="Generic-Translator-texi2any.html#Generic-Translator-texi2any" accesskey="u" rel="up">Generic Translator <code>texi2any</code></a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html#Command-and-Variable-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>