Appendix F Info Format Specification

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, and ‘#’ comment.

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.

We specify literal parentheses (those that are part of the Info format) with <lparen> and <rparen>, meaning the single characters ‘(’ and ‘)’ respectively. 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 may refer back to other parts of this manual for examples and definitions, rather than redundantly spelling out every detail.