Next: Select Tags Table, Previous: Find Identifiers, Up: Xref [Contents][Index]

#### 28.3.2 Tags Tables

A tags table records the tags13 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 in Ebrowse User’s Manual. The Semantic package provides another way to generate and use tags, separate from the `etags` facility. See Semantic.

#### Footnotes

### (13)

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.

Next: Select Tags Table, Previous: Find Identifiers, Up: Xref [Contents][Index]