+-*- indented-text -*-
+
This file contains two sections:
1) An EBNF (Extended Backus Normal Form) description of the format of
- the tags file created by etags.c and interpreted by etags.el
+ the tags file created by etags.c and interpreted by etags.el
2) A discussion of tag names and implicit tag names
======================= EBNF tag file description =======================
-======================== discussion on tag names =========================
+======================== discussion of tag names =========================
- What are tag names
Tag lines in a tags file are usually made from the above defined pattern
part of tag lines in the tags file, so we call them "explicit".
- Why implicit tag names are even better
-Often tag names are redundant; this happens when the name of a tag is an
-easily guessable substring of the tag pattern. We define a set of rules
-to decide whether it is possible to deduce the tag name from the pattern,
-and make an unnamed tag in those cases. The name deduced from the
-pattern of an unnamed tag is the implicit name of that tag. The use of
-implicit tag names reduces the size of the tags file. When the user
-looks for a tag, and Emacs founds no explicit tag names that match it,
-Emacs then tries to match the tag with an implicit tag name. Such a
-match occurs when the tag matches a pattern, subject to the satisfaction
-of all the following four rules:
+When a tag line has no name, but a name can be deduced from the pattern,
+we say that the tag line has an implicit tag name. etags.c uses
+implicit tag names when possible, in order to reduce the number of
+explicit tag names in a tags file, thus reducing the size of the tags
+file. When the user looks for a tag, and Emacs founds no explicit tag
+names that match it, Emacs then tries to match the tag with an implicit
+tag name. Such a match occurs when the tag matches a pattern, subject
+to the satisfaction of all the following four rules:
NONAM=" \f\t\n\r()=,;";
1. the tag does not contain any of the characters in NONAM;