@section Tags Tables
@cindex tags and tag tables
- A @dfn{tag} is a named subunit of a program or of a document. In
-program source code, tags are syntactic elements of the program:
-functions, subroutines, data types, macros, etc. In a document, tags
-are chapters, sections, appendices, etc.
-
- A @dfn{tags table} records the names of the tags extracted from the
-source code of a certain program or from a certain document. Each tag
-is listed together with the file name on which it is defined, and the
-position of the tag in that file. Tags extracted from generated files
-reference the original file from which they were generated, rather
-than the file from which these tags were extracted. Examples of
-generated files include C files generated from Cweb source files, from
-a Yacc parser, or from Lex scanner definitions; @file{.i} preprocessed
-C files; and Fortran files produced by preprocessing @file{.fpp}
-source files.
-
- Tags tables are produced by scanning a document or the source code
-of a program with a special program called @samp{etags}, and stored in
-files called @dfn{tags table files}. The conventional name for a tags
-table file is @file{TAGS}.
+ A @dfn{tag} is a reference to a subunit in a program or in a
+document. In program source code, tags reference syntactic elements
+of the program: functions, subroutines, data types, macros, etc. In a
+document, tags reference chapters, sections, appendices, etc. Each
+tag specifies the file name on which the corresponding subunit is
+defined, and the position of the subunit's definition in that file.
+
+ A @dfn{tags table} records the tags extracted by scanning the source
+code of a certain program or a certain document. Tags extracted from
+generated files reference subunits in 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; @file{.i}
+preprocessed C files; and Fortran files produced by preprocessing
+@file{.fpp} source files.
+
+ To produce tags tables, you use the @samp{etags} command, submitting
+it a document or the source code of a program. @samp{etags} writes
+the tags to files called @dfn{tags table files}, or @dfn{tags file} in
+short. The conventional name for a tags file is @file{TAGS}.
Emacs uses the information recorded in tags tables in commands that
-search or replace through multiple files: these commands use the names
-of the source files recorded in the tags table to know which files to
-search. Other commands, such as @kbd{M-.}, which finds the definition
-of a function, use the recorded information about the function names
-and positions to find the source file and the position within that
-file where the function is defined.
+search or replace through multiple source files: these commands use
+the names of the source files recorded in the tags table to know which
+files to search. Other commands, such as @kbd{M-.}, which finds the
+definition of a function, use the recorded information about the
+function names and positions to find the source file and the position
+within that file where the function is defined.
@cindex C++ class browser, tags
@cindex tags, C++