Here we describe the technical details of the Info format.
In this formal description, the characters
<>*()|=# are used
for the language of the description itself. Other characters are
literal. The formal constructs used are typical:
indicates a metavariable name, ‘=’ means definition, ‘*’
repetition, ‘?’ optional, ‘()’ grouping, ‘|’
alternation, ‘#’ comment. Exception: ‘*’ at the beginning
of a line is literal.
In general, programs that read Info files should try to be case-insensitive to keywords that occur in the file (for example, ‘Tag Table’ and ‘Tag table’ should be equivalent) in order to support Info-generating programs that use different capitalization.
The sections in an Info file (such as nodes or tag tables) are separated with a sequence:
That is, a ‘CTRL-_’ character followed by a newline, with optional formfeed characters. We refer to such sequences as <separator>.
We specify literal parentheses (those that are part of the Info format) with <lparen> and <rparen>, meaning the single characters ‘(’ and ‘)’ respectively. We specify the ‘CTRL-?’ character (character number 127) <del>. Finally, the two-character sequence ‘^x’ means the single character ‘CTRL-x’, for any x.
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.