A tags table records the tags18 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 Creating Tags Tables. (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 in Ebrowse User’s
Manual. The Semantic package provides another way to generate and
use tags, separate from the
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.