blob: 9cc0c43c17c9779223ee15dcc457eb9506aa1ac4 [file] [log] [blame]
# Copyright 2010-2026 Free Software Foundation, Inc.
#
# This file is part of GNU Texinfo.
#
# GNU Texinfo is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License,
# or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# this information is used to setup both the C Parser commands
# builtin_command_data and the Perl Parser commands classification
# hashes.
# Most flags (second column) should be documented (with _commands
# postpended) in Texinfo/Commands.pod.
# Some documentation of the flags is in C/main/builtin_commands.h.
##############################################################
# Internal commands
# invalid if not accept_internalvalue set in configuration
txiinternalvalue brace,internal special
# used in converters for easy access to flags.
definfoenclose_command brace,internal style_other
index_entry_command line,index_entry_command,contain_basic_inline,internal line
##############################################################
# nobrace commands:
#
# commands never taking braces nor arguments on the line
#
# symbol: non-alphabetical one letter commands without braces.
# skipspace: following spaces are skipped.
# other: other.
# no brace commands - single letter commands
* nobrace,preamble,formatted_nobrace,no_paragraph symbol
# space
\x20 nobrace,formatted_nobrace symbol
\t nobrace,formatted_nobrace symbol
\n nobrace,formatted_nobrace symbol
- nobrace,formatted_nobrace symbol
| nobrace,in_heading_spec symbol
/ nobrace,formatted_nobrace symbol
: nobrace,formatted_nobrace symbol
! nobrace,formatted_nobrace symbol
? nobrace,formatted_nobrace symbol
. nobrace,formatted_nobrace symbol
@ nobrace,formatted_nobrace symbol
& nobrace,formatted_nobrace symbol
} nobrace,formatted_nobrace symbol
{ nobrace,formatted_nobrace symbol
\\ nobrace,formatted_nobrace symbol
# no brace commands - miscellaneous commands
# formatting
noindent nobrace,preamble,no_paragraph skipspace
indent nobrace,preamble,no_paragraph skipspace
# Next three commands are also containers
headitem nobrace,formatted_nobrace,close_paragraph,no_paragraph skipspace
item nobrace,formatted_nobrace,close_paragraph,no_paragraph skipspace
tab nobrace,formatted_nobrace,close_paragraph,no_paragraph skipspace
# only valid in heading or footing
thischapter nobrace,in_heading_spec other
thischaptername nobrace,in_heading_spec other
thischapternum nobrace,in_heading_spec other
thissection nobrace,in_heading_spec other
thissectionname nobrace,in_heading_spec other
thissectionnum nobrace,in_heading_spec other
thispart nobrace,in_heading_spec other
thisfile nobrace,in_heading_spec other
thispage nobrace,in_heading_spec other
thistitle nobrace,in_heading_spec other
# obsolete @-commands.
refill nobrace,preamble,deprecated,no_paragraph other
##########################################################
#
# line commands
#
##########################################################
# commands taking a line as argument or no argument.
# index commands are added dynamically.
#
# Note that all the line commands are set to no_paragraph when this
# file is processed
#
# The values signification is:
# lineraw: no value and macro expansion, the line is kept as-is.
# Some have the line as argument, some have the line especially
# analysed during parsing (parse_rawline_command)
# text: the line is parsed as texinfo, and the argument is converted
# to simple text with convert_to_text allowing only a few @-commands
# line: the line is parsed as texinfo
# specific: the line is parsed as texinfo and the result should be plain
# text maybe followed by a comment; the result is analysed
# during parsing (parse_line_command_args).
#
# Beware that @item may be a 'line' command or a 'nobrace' command
# depending on the context.
# line commands number of arguments is only set for line specific commands
# and for @node. The number of arguments of line specific commands
# is not used anywhere in the code, it is here as documentation only.
# Root and heading commands
node line,formatted_line,root,contain_basic_inline line 4
top line,formatted_line,root,contain_basic_inline,sectioning_heading,global_unique,unnumbered line
chapter line,formatted_line,root,contain_basic_inline,sectioning_heading line
unnumbered line,formatted_line,root,contain_basic_inline,sectioning_heading,unnumbered line
chapheading line,formatted_line,contain_basic_inline,sectioning_heading,close_paragraph,global line
appendix line,formatted_line,root,contain_basic_inline,sectioning_heading,appendix line
section line,formatted_line,root,contain_basic_inline,sectioning_heading line
unnumberedsec line,formatted_line,root,contain_basic_inline,sectioning_heading,unnumbered line
heading line,formatted_line,contain_basic_inline,sectioning_heading,close_paragraph,global line
appendixsec line,formatted_line,root,contain_basic_inline,sectioning_heading,appendix line
subsection line,formatted_line,root,contain_basic_inline,sectioning_heading line
unnumberedsubsec line,formatted_line,root,contain_basic_inline,sectioning_heading,unnumbered line
subheading line,formatted_line,contain_basic_inline,sectioning_heading,close_paragraph,global line
appendixsubsec line,formatted_line,root,contain_basic_inline,sectioning_heading,appendix line
subsubsection line,formatted_line,root,contain_basic_inline,sectioning_heading line
unnumberedsubsubsec line,formatted_line,root,contain_basic_inline,sectioning_heading,unnumbered line
subsubheading line,formatted_line,contain_basic_inline,sectioning_heading,close_paragraph,global line
appendixsubsubsec line,formatted_line,root,contain_basic_inline,sectioning_heading,appendix line
part line,formatted_line,root,contain_basic_inline,sectioning_heading,global,unnumbered line
appendixsection line,formatted_line,root,contain_basic_inline,sectioning_heading,appendix line
majorheading line,formatted_line,contain_basic_inline,sectioning_heading,close_paragraph,global line
centerchap line,formatted_line,root,contain_basic_inline,sectioning_heading,unnumbered,deprecated line
# used as section title name for @node, but not formatted
xrefname line,contain_basic_inline,close_paragraph,global line
# end of document, end of block
bye line,preamble lineraw
end line,preamble,contain_plain_text text
# comments
c line,preamble lineraw 1
comment line,preamble lineraw 1
# set, clear, argument especially parsed
set line,preamble lineraw 2
clear line,preamble lineraw 1
unmacro line,preamble lineraw 1
# arg should be an @-command
clickstyle line,global,preamble,deprecated lineraw 1
# special
definfoenclose line,preamble,contain_plain_text,deprecated specific 3
alias line,preamble,contain_plain_text specific 2
# number of arguments is not known in advance.
columnfractions line,preamble,contain_plain_text specific
# file names, only plain text in argument
setfilename line,close_paragraph,global_unique,preamble,contain_plain_text text
verbatiminclude line,formattable_line,close_paragraph,contain_plain_text text
include line,preamble,contain_plain_text text
raisesections line,preamble lineraw
lowersections line,preamble lineraw
contents line,close_paragraph,global,preamble lineraw
shortcontents line,close_paragraph,global,preamble lineraw
summarycontents line,close_paragraph,global,preamble lineraw
insertcopying line,formattable_line,close_paragraph,global lineraw
maketitle line,formattable_line,close_paragraph,global_unique lineraw
# more relevant in preamble
documentencoding line,global,preamble,contain_plain_text text
novalidate line,global_unique,preamble lineraw
# Position with regard with direntry is significant
dircategory line,close_paragraph,preamble,contain_basic_inline line
# arg like 200mm,150mm or 11.5in
pagesizes line,global_unique,preamble,contain_plain_text line
finalout line,preamble lineraw
# arg none asis
# or a number and forbids anything else on the line
paragraphindent line,global,preamble,contain_plain_text specific 1
# arg none insert
firstparagraphindent line,global,preamble,contain_plain_text specific 1
# arg on off
frenchspacing line,global,preamble,contain_plain_text specific 1
# arg on off
codequoteundirected line,global,preamble,contain_plain_text specific 1
# arg on off
codequotebacktick line,global,preamble,contain_plain_text specific 1
# arg on off
xrefautomaticsectiontitle line,global,preamble,contain_plain_text specific 1
# arg on off
deftypefnnewline line,global,preamble,contain_plain_text specific 1
# arg 10 11
fonttextsize line,global_unique,preamble,contain_plain_text specific 1
# arg false or true
allowcodebreaks line,global,preamble,contain_plain_text specific 1
# arg asis or a number
exampleindent line,global,preamble,contain_plain_text specific 1
# args end and separate, nothing else on the line
footnotestyle line,global_unique,preamble,contain_plain_text specific 1
# arg after|before|none
urefbreakstyle line,global,preamble,contain_plain_text specific 1
smallbook line,global_unique,preamble lineraw
afivepaper line,global_unique,preamble lineraw
afourpaper line,global_unique,preamble lineraw
afourlatex line,global_unique,preamble lineraw
afourwide line,global_unique,preamble lineraw
bsixpaper line,global_unique,preamble lineraw
# arg off on single double singleafter doubleafter
# interacts with setchapternewpage
headings line,global,preamble,contain_plain_text specific 1
# arg off on odd
setchapternewpage line,global_unique,preamble,contain_plain_text specific 1
# arg on off
microtype line,global,preamble,contain_plain_text specific 1
everyheading line,global_unique,heading_spec,preamble,contain_basic_inline line
everyfooting line,global_unique,heading_spec,preamble,contain_basic_inline line
evenheading line,global_unique,heading_spec,preamble,contain_basic_inline line
evenfooting line,global_unique,heading_spec,preamble,contain_basic_inline line
oddheading line,global_unique,heading_spec,preamble,contain_basic_inline line
oddfooting line,global_unique,heading_spec,preamble,contain_basic_inline line
# args are index identifiers
syncodeindex line,preamble,contain_plain_text specific 2
synindex line,preamble,contain_plain_text specific 2
# one identifier arg
defindex line,preamble,contain_plain_text specific 1
# one identifier arg
defcodeindex line,preamble,contain_plain_text specific 1
# language code arg
documentlanguage line,global,preamble,contain_plain_text text
# arg code example distinct
kbdinputstyle line,global,preamble,contain_plain_text specific 1
# arg top bottom
everyheadingmarks line,global_unique,preamble,contain_plain_text specific 1
everyfootingmarks line,global_unique,preamble,contain_plain_text specific 1
evenheadingmarks line,global_unique,preamble,contain_plain_text specific 1
oddheadingmarks line,global_unique,preamble,contain_plain_text specific 1
evenfootingmarks line,global_unique,preamble,contain_plain_text specific 1
oddfootingmarks line,global_unique,preamble,contain_plain_text specific 1
# formatting
center line,formatted_line,close_paragraph line
printindex line,formattable_line,close_paragraph,global,contain_plain_text specific 1
listoffloats line,formattable_line,close_paragraph,global,contain_basic_inline line
exdent line,formatted_line,close_paragraph line
# or nobrace skipspace, depending on the context
item_LINE line,formatted_line,close_paragraph line
itemx line,formatted_line,close_paragraph line
nodedescription line,close_paragraph,contain_basic_inline line
# in index entries
subentry line,in_index,contain_basic_inline line
# for printed output. @vskip 0pt plus 1filll
vskip line,formattable_line lineraw 1
# one numerical/real arg
need line,formattable_line,close_paragraph,contain_plain_text specific 1
shorttitlepage line,global_unique,preamble,contain_basic_inline line
settitle line,global_unique,preamble,contain_basic_inline line
# especially in titlepage
# can appear in preamble only within @titlepage
author line,formatted_line,global,contain_basic_inline line
subtitle line,formatted_line,global,contain_basic_inline line
title line,formatted_line,global_unique,contain_basic_inline line
# numerical arg
sp line,formattable_line,close_paragraph,contain_plain_text specific 1
page line,formatted_line,close_paragraph lineraw
# index commands
cpindex line,index_entry_command,contain_basic_inline line
cindex line,index_entry_command,contain_basic_inline line
fnindex line,index_entry_command,contain_basic_inline line
findex line,index_entry_command,contain_basic_inline line
vrindex line,index_entry_command,contain_basic_inline line
vindex line,index_entry_command,contain_basic_inline line
kyindex line,index_entry_command,contain_basic_inline line
kindex line,index_entry_command,contain_basic_inline line
pgindex line,index_entry_command,contain_basic_inline line
pindex line,index_entry_command,contain_basic_inline line
tpindex line,index_entry_command,contain_basic_inline line
tindex line,index_entry_command,contain_basic_inline line
##########################################################
#
# brace commands
#
##########################################################
# letter_no_arg_commands
aa brace,letter_no_arg noarg
AA brace,letter_no_arg noarg
ae brace,letter_no_arg noarg
oe brace,letter_no_arg noarg
AE brace,letter_no_arg noarg
OE brace,letter_no_arg noarg
o brace,letter_no_arg noarg
O brace,letter_no_arg noarg
ss brace,letter_no_arg noarg
l brace,letter_no_arg noarg
L brace,letter_no_arg noarg
DH brace,letter_no_arg noarg
dh brace,letter_no_arg noarg
TH brace,letter_no_arg noarg
th brace,letter_no_arg noarg
# no arg commands
TeX brace noarg
LaTeX brace noarg
bullet brace noarg
copyright brace noarg
registeredsymbol brace noarg
dots brace noarg
enddots brace noarg
equiv brace noarg
error brace noarg
expansion brace noarg
arrow brace noarg
minus brace noarg
point brace noarg
print brace noarg
result brace noarg
today brace noarg
exclamdown brace noarg
questiondown brace noarg
pounds brace noarg
ordf brace noarg
ordm brace noarg
atchar brace noarg
ampchar brace noarg
lbracechar brace noarg
rbracechar brace noarg
backslashchar brace noarg
hashchar brace noarg
comma brace noarg
euro brace noarg
geq brace noarg
leq brace noarg
tie brace noarg
textdegree brace noarg
click brace noarg
quotedblleft brace noarg
quotedblright brace noarg
quoteleft brace noarg
quoteright brace noarg
quotedblbase brace noarg
quotesinglbase brace noarg
guillemetleft brace noarg
guillemetright brace noarg
guillemotleft brace noarg
guillemotright brace noarg
guilsinglleft brace noarg
guilsinglright brace noarg
# accent commands - can be called with or without braces
\" brace,accent,contain_plain_text accent
~ brace,accent,contain_plain_text accent
^ brace,accent,contain_plain_text accent
` brace,accent,contain_plain_text accent
' brace,accent,contain_plain_text accent
, brace,accent,contain_plain_text accent
= brace,accent,contain_plain_text accent
ringaccent brace,accent,contain_plain_text accent
H brace,accent,contain_plain_text accent
dotaccent brace,accent,contain_plain_text accent
u brace,accent,contain_plain_text accent
ubaraccent brace,accent,contain_plain_text accent
udotaccent brace,accent,contain_plain_text accent
v brace,accent,contain_plain_text accent
ogonek brace,accent,contain_plain_text accent
tieaccent brace,accent,contain_plain_text accent
dotless brace,accent,contain_plain_text accent
# Style commands
# Leading and trailing spaces kept in main text.
asis brace style_other
i brace style_other
b brace style_other
sansserif brace style_other
slanted brace style_other
cite brace style_other
clicksequence brace style_other
dfn brace style_other
emph brace style_other
sc brace style_other
var brace style_other
headitemfont brace style_other
strong brace style_other
sub brace style_other
sup brace style_other
# code style commands
code brace,brace_code style_code
command brace,brace_code style_code
env brace,brace_code style_code
file brace,brace_code style_code
indicateurl brace,brace_code style_code
kbd brace,brace_code style_code
key brace,brace_code,contain_plain_text style_code
option brace,brace_code style_code
samp brace,brace_code style_code
t brace,brace_code style_code
# No code style commands
r brace style_no_code
# context brace commands - commands that enclose full texts
# not in the main document context. They can contain multiple paragraphs.
# They hold leading and trailing spaces. They contain a brace_command_context
# type element.
footnote brace,global context
caption brace,close_paragraph,no_paragraph,non_formatted_brace context
shortcaption brace,close_paragraph,contain_basic_inline,no_paragraph,non_formatted_brace context
# Commands that enclose math content, and, because of that, are not in the
# main document context.
math brace,math,contain_basic_inline context
# in this category, the leading and trailing spaces are separated from
# the arguments and commas do not delimitate arguments.
# Similar with other arguments brace_commands, they can only contain
# simple text (no ref, footnote, titlefont, anchor, verb) or even plain text,
# without even indicatric @-commands.
# Parsers have specific checks for U content.
U brace arguments 1
hyphenation brace,global,preamble,contain_plain_text,no_paragraph,non_formatted_brace arguments 1
anchor brace,contain_basic_inline,no_paragraph,non_formatted_brace arguments 1
namedanchor brace,contain_basic_inline,no_paragraph,non_formatted_brace arguments 2
errormsg brace,preamble,contain_basic_inline,no_paragraph,non_formatted_brace arguments 1
sortas brace,in_index,contain_plain_text,non_formatted_brace arguments 1
seeentry brace,in_index,contain_basic_inline arguments 1
seealso brace,in_index,contain_basic_inline arguments 1
# explained commands
abbr brace,explained,contain_basic_inline arguments 2
acronym brace,explained,contain_basic_inline arguments 2
email brace,contain_basic_inline arguments 2
uref brace,contain_basic_inline arguments 3
url brace,contain_basic_inline arguments 3
inforef brace,ref,contain_basic_inline,deprecated arguments 3
link brace,ref,contain_basic_inline arguments 3
xref brace,ref,contain_basic_inline arguments 5
ref brace,ref,contain_basic_inline arguments 5
pxref brace,ref,contain_basic_inline arguments 5
image brace,contain_basic_inline,no_paragraph arguments 5
# leading space is ignored in inline brace commands, not trailing space
# inline format command
inlineraw brace,preamble,inline_format inline 2
inlinefmt brace,preamble,inline_format inline 2
inlinefmtifelse brace,preamble,inline_format inline 3
# inline conditional commands
inlineifclear brace,preamble,inline_conditional inline 2
inlineifset brace,preamble,inline_conditional inline 2
# verb is treated especially, it should not matter much in which category it is.
# value also is treated especially.
# Leading and trailing spaces kept in main text.
value brace special
verb brace,brace_code special
w brace,contain_basic_inline special
# other brace commands, leading and trailing spaces kept in main text
dmn brace,contain_plain_text other 1
titlefont brace,close_paragraph,global,contain_basic_inline,no_paragraph other 1
##########################################################
#
# Block commands
#
# commands delimiting blocks, with an @end.
#
##########################################################
# Note that all the block commands are set to no_paragraph when this
# file is processed
# def* commands
deffn block,def,contain_basic_inline,close_paragraph def
defvr block,def,contain_basic_inline,close_paragraph def
deftypefn block,def,contain_basic_inline,close_paragraph def
deftypeop block,def,contain_basic_inline,close_paragraph def
deftypevr block,def,contain_basic_inline,close_paragraph def
defcv block,def,contain_basic_inline,close_paragraph def
deftypecv block,def,contain_basic_inline,close_paragraph def
defop block,def,contain_basic_inline,close_paragraph def
deftp block,def,contain_basic_inline,close_paragraph def
# shortcuts
defun block,def,contain_basic_inline,def_alias,close_paragraph def
defmac block,def,contain_basic_inline,def_alias,close_paragraph def
defspec block,def,contain_basic_inline,def_alias,close_paragraph def
defvar block,def,contain_basic_inline,def_alias,close_paragraph def
defopt block,def,contain_basic_inline,def_alias,close_paragraph def
deftypefun block,def,contain_basic_inline,def_alias,close_paragraph def
deftypevar block,def,contain_basic_inline,def_alias,close_paragraph def
defivar block,def,contain_basic_inline,def_alias,close_paragraph def
deftypeivar block,def,contain_basic_inline,def_alias,close_paragraph def
defmethod block,def,contain_basic_inline,def_alias,close_paragraph def
deftypemethod block,def,contain_basic_inline,def_alias,close_paragraph def
# generic, no automatic index
defblock block,close_paragraph def
defline line,def,close_paragraph line
deftypeline line,def,close_paragraph line
# def*x
deffnx line,def,contain_basic_inline,close_paragraph line
defvrx line,def,contain_basic_inline,close_paragraph line
deftypefnx line,def,contain_basic_inline,close_paragraph line
deftypeopx line,def,contain_basic_inline,close_paragraph line
deftypevrx line,def,contain_basic_inline,close_paragraph line
defcvx line,def,contain_basic_inline,close_paragraph line
deftypecvx line,def,contain_basic_inline,close_paragraph line
defopx line,def,contain_basic_inline,close_paragraph line
deftpx line,def,contain_basic_inline,close_paragraph line
# shortcuts
defunx line,def,contain_basic_inline,def_alias,close_paragraph line
defmacx line,def,contain_basic_inline,def_alias,close_paragraph line
defspecx line,def,contain_basic_inline,def_alias,close_paragraph line
defvarx line,def,contain_basic_inline,def_alias,close_paragraph line
defoptx line,def,contain_basic_inline,def_alias,close_paragraph line
deftypefunx line,def,contain_basic_inline,def_alias,close_paragraph line
deftypevarx line,def,contain_basic_inline,def_alias,close_paragraph line
defivarx line,def,contain_basic_inline,def_alias,close_paragraph line
deftypeivarx line,def,contain_basic_inline,def_alias,close_paragraph line
defmethodx line,def,contain_basic_inline,def_alias,close_paragraph line
deftypemethodx line,def,contain_basic_inline,def_alias,close_paragraph line
multitable block,close_paragraph,blockitem,contain_basic_inline multitable
# menu commands in which menu entry and menu comments appear
menu block,close_paragraph menu
detailmenu block,close_paragraph,global menu
direntry block,close_paragraph,preamble menu
# align commands
raggedright block,close_paragraph
flushleft block,close_paragraph
flushright block,close_paragraph
indentedblock block,close_paragraph
smallindentedblock block,close_paragraph
cartouche block,close_paragraph other 1
group block,close_paragraph
nodedescriptionblock block,close_paragraph,non_formatted_block
# region commands
titlepage block,close_paragraph,global_unique,preamble region
copying block,close_paragraph,global_unique,preamble region
documentdescription block,close_paragraph,global_unique,preamble region
documentinfo block,close_paragraph,global_unique,preamble region
publication block,close_paragraph,global_unique,preamble region
# preformatted commands
example block,close_paragraph,preformatted,preformatted_code,variadic,contain_basic_inline preformatted
smallexample block,close_paragraph,preformatted,preformatted_code preformatted
lisp block,close_paragraph,preformatted,preformatted_code preformatted
smalllisp block,close_paragraph,preformatted,preformatted_code preformatted
display block,close_paragraph,preformatted preformatted
smalldisplay block,close_paragraph,preformatted preformatted
format block,close_paragraph,preformatted preformatted
smallformat block,close_paragraph,preformatted preformatted
# format raw commands
html block,preamble format_raw
tex block,preamble format_raw
xml block,preamble format_raw
docbook block,preamble format_raw
latex block,preamble format_raw
# raw commands
verbatim block,close_paragraph raw
ignore block,preamble,non_formatted_block raw
linemacro block,preamble,non_formatted_block raw
macro block,preamble,non_formatted_block raw
rmacro block,preamble,non_formatted_block raw
table block,close_paragraph,blockitem,contain_basic_inline item_line 1
ftable block,close_paragraph,blockitem,contain_basic_inline item_line 1
vtable block,close_paragraph,blockitem,contain_basic_inline item_line 1
itemize block,close_paragraph,blockitem,contain_basic_inline item_container 1
enumerate block,close_paragraph,blockitem,contain_basic_inline item_container 1
quotation block,close_paragraph,contain_basic_inline quotation 1
smallquotation block,close_paragraph,contain_basic_inline quotation 1
float block,close_paragraph,global,contain_basic_inline float 2
displaymath block,close_paragraph,math math
# Conditional commands
ifhtml block conditional
ifnothtml block conditional
iftex block conditional
ifnottex block conditional
ifxml block conditional
ifnotxml block conditional
ifdocbook block conditional
ifnotdocbook block conditional
ifinfo block conditional
ifnotinfo block conditional
ifplaintext block conditional
ifnotplaintext block conditional
iflatex block conditional
ifnotlatex block conditional
ifset block conditional 1
ifclear block conditional 1
ifcommanddefined block conditional 1
ifcommandnotdefined block conditional 1