<!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.7, 23 September 2019),
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, 2017, 2018, 2019 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 no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License". -->
<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Info Format Specification (GNU Texinfo 6.7)</title>
<meta name="description" content="Info Format Specification (GNU Texinfo 6.7)">
<meta name="keywords" content="Info Format Specification (GNU Texinfo 6.7)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2any">
<link href="index.html" rel="start" title="Top">
<link href="Command-and-Variable-Index.html" rel="index" title="Command and Variable Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html" rel="up" title="Top">
<link href="Info-Format-General-Layout.html" rel="next" title="Info Format General Layout">
<link href="Splitting.html" rel="prev" title="Splitting">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {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}
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">
<span id="Info-Format-Specification"></span><div class="header">
<p>
Next: <a href="GNU-Free-Documentation-License.html" accesskey="n" rel="next">GNU Free Documentation License</a>, Previous: <a href="Catching-Mistakes.html" accesskey="p" rel="prev">Catching Mistakes</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Info-Format-Specification-1"></span><h2 class="appendix">Appendix G Info Format Specification</h2>
<span id="index-Info-format-specification"></span>
<span id="index-Specification-of-Info-format"></span>
<span id="index-Definition-of-Info-format"></span>
<p>Here we describe the technical details of the Info format.
</p>
<p>In this formal description, the characters <code><>*()|=#</code> are used
for the language of the description itself. Other characters are
literal. The formal constructs used are typical: <code><...></code>
indicates a metavariable name, ‘<samp>=</samp>’ means definition, ‘<samp>*</samp>’
repetition, ‘<samp>?</samp>’ optional, ‘<samp>()</samp>’ grouping, ‘<samp>|</samp>’
alternation, ‘<samp>#</samp>’ comment. Exception: ‘<samp>*</samp>’ at the beginning
of a line is literal.
</p>
<p>In general, programs that read Info files should try to be
case-insensitive to keywords that occur in the file (for example,
‘<samp>Tag Table</samp>’ and ‘<samp>Tag table</samp>’ should be equivalent) in order to
support Info-generating programs that use different capitalization.
</p>
<p>The sections in an Info file (such as nodes or tag tables) are separated
with a sequence:
</p>
<div class="example">
<pre class="example">(^L)?^_(^L)?^J
</pre></div>
<p>That is, a ‘<samp>CTRL-_</samp>’ character followed by a newline, with optional
formfeed characters. We refer to such sequences as <tt><separator></tt>.
</p>
<p>We specify literal parentheses (those that are part of the Info
format) with <tt><lparen></tt> and <tt><rparen></tt>, meaning the single
characters ‘<samp>(</samp>’ and ‘<samp>)</samp>’ respectively. We specify the
‘<samp>CTRL-?</samp>’ character (character number 127) <tt><del></tt>. Finally,
the two-character sequence ‘<samp>^<var>x</var></samp>’ means the single
character ‘<samp>CTRL-<var>x</var></samp>’, for any <var>x</var>.
</p>
<p>This format definition was written some 25 years after the Info format
was first devised. So in the event of conflicts between this
definition and actual practice, practice wins. It also assumes some
general knowledge of Texinfo; it is meant to be a guide for
implementors rather than a rigid technical standard. We often refer
back to other parts of this manual for examples and definitions,
rather than redundantly spelling out every detail.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">• <a href="Info-Format-General-Layout.html" accesskey="1">General</a></td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a href="Info-Format-Text-Constructs.html" accesskey="2">Text</a></td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<div class="header">
<p>
Next: <a href="GNU-Free-Documentation-License.html" accesskey="n" rel="next">GNU Free Documentation License</a>, Previous: <a href="Catching-Mistakes.html" accesskey="p" rel="prev">Catching Mistakes</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>