Please feel free to link to this site to reference documentation on C functions, types, header files, etc.. Note, however, that the content is subject to occasional re-organization. If you want to be able to mechanically adapt to on-going changes to the site, you can fetch the text file export.tab, and process it to give you the latest details on where to find the description of an entity.
The file is divided into four parts, separated by lines containing only:
--
The first part describes mainly functions, types, constants, plus a few operators and directives. Each line is one record, with fields separated by |:
key|expansion|description|section-title|uri|anchor|flags
key identifies the entity, and is often the
same as the entity being described, e.g., strlen
is the key for strlen
. expansion is
the literal text to actually be displayed, in double-quoted
Mokvino format.
description describes the entity, while
section-title is the title of the page or section
specifying the entity, both also in Mokvino format.
uri is the relative URI of the page specifying the
entity, relative to here, and
anchor is the # fragment identifier
giving the section within the page (or blank if it's the
whole page).
If you're not using Mokvino, you can probably just do some simple textual replacements on expansion, and ignore description and section-title. \u0023 is just a hash #. \u007c is | U+007C. \' is just a literal ' U+0027. \\ is a literal \ U+005C. 'wbr` can be replaced with <wbr>, a zero-width space U+200B, or just deleted. Characters like < are not specially encoded, so you'll have to escape them for HTML before you insert <wbr>.
The comma-separated flags are:
- kwd
- The entity is a keyword.
- usr
- The entity is user-defined.
- pre
- The entity is predefined, but not native to the language.
- nat
- The entity is native to the language.
- qfy
- The entity is a type-qualifier or type-specifier, i.e., it contributes to the specification of a type.
- stc
- The entity is a storage-class-specifier.
- op
- The entity is an operator.
- pp
- The entity is part of the preprocessor grammar.
- mac
- The entity is a macro.
- dir
- The entity is a preprocessing directive.
- fn
- The entity is a function, or a function-like macro, i.e., it takes an argument list.
- opt
- The entity is optionally defined.
- typ
- The entity is a type.
For example:
abort|abort|'iflang(``eo'', ``Abortigi programan rulon'', ``Abort program execution'')`|'iflang(``eo'', ``Programo-komencado kaj -finado'', ``Program start and termination'')`|lang/env.html|main|fn
The next section lists non-terminals in any part of the grammar. Each line has the following format:
key|expansion|section-title|uri|anchor
key identifies the non-terminal, and is usually identical to the English expansion. The other fields are as before.
For example:
argument-expression-list|'iflang(``eo'', ``argument-esprimo-listo'', ``argument-expression-list'')`|'iflang(``eo'', ``Funkcioj'', ``Functions'')`|lang/functions.html|
The next section lists standards:
key|short-name|full-name|uri|anchor
For example:
c99|C99|ISO/IEC 9899-1999|versions/std-c99.html|
The final section lists headers:
key|description|section-title|uri|anchor
key is also the core of the expansion. description is optional.
For example:
setjmp.h|'iflang(``eo'', ``Ne-lokaj saltoj'', ``Non-local jumps'')`|'iflang(``eo'', ``Lokaj kaj ne-lokaj saltoj'', ``Local and non-local jumps'')`|threads/jump.html|