A tags table records the tags1 extracted by scanning the source code of a certain program or a certain document. Tags extracted from generated files reference the original files, rather than the generated files that were scanned during tag extraction. Examples of generated files include C files generated from Cweb source files, from a Yacc parser, or from Lex scanner definitions; .i preprocessed C files; and Fortran files produced by preprocessing .fpp source files.
To produce a tags table, you run the etags shell command on a document or the source code file. The ‘etags’ program writes the tags to a tags table file, or tags file in short. The conventional name for a tags file is TAGS. See Create Tags Table. (It is also possible to create a tags table by using one of the commands from other packages that can produce such tables in the same format.)
Emacs uses the tags tables via the
etags package as one of
the supported backends for
xref. Because tags tables are
produced by the etags command that is part of an Emacs
distribution, we describe tags tables in more detail here.
The Ebrowse facility is similar to etags but specifically tailored for C++. See Ebrowse. The Semantic package provides another way to generate and use tags, separate from the etags facility. See Semantic.
A tag is a synonym for identifier reference. Commands and
features based on the
etags package traditionally use “tag”
with this meaning, and this subsection follows that tradition.