mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-21 12:27:33 +00:00
Clarified per rms request.
This commit is contained in:
parent
63b833de37
commit
d62c4c3216
1 changed files with 19 additions and 24 deletions
|
|
@ -3,10 +3,10 @@
|
|||
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
|
||||
2) A discussion of tag names and implicit tag names
|
||||
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 =======================
|
||||
====================== 1) EBNF tag file description =====================
|
||||
|
||||
Productions created from current behavior to aid extensions
|
||||
Francesco Potorti` <pot@gnu.org> 2002
|
||||
|
|
@ -58,14 +58,14 @@ realposition ::= "," unsint | unsint "," | unsint "," unsint
|
|||
|
||||
|
||||
|
||||
======================== discussion of tag names =========================
|
||||
======================= 2) discussion of tag names =======================
|
||||
|
||||
- What are tag names
|
||||
- WHAT ARE TAG NAMES
|
||||
Tag lines in a tags file are usually made from the above defined pattern
|
||||
and by an optional tag name. The pattern is a string that is searched
|
||||
in the source file to find the tagged line.
|
||||
|
||||
- Why tag names are good
|
||||
- WHY TAG NAMES ARE GOOD
|
||||
When a user looks for a tag, Emacs first compares the tag with the tag
|
||||
names contained in the tags file. If no match is found, Emacs compares
|
||||
the tag with the patterns. The tag name is then the preferred way to
|
||||
|
|
@ -73,23 +73,18 @@ look for tags in the tags file, because when the tag name is present
|
|||
Emacs can find a tag faster and more accurately. These tag names are
|
||||
part of tag lines in the tags file, so we call them "explicit".
|
||||
|
||||
- Why implicit tag names are even better
|
||||
- WHY IMPLICIT TAG NAMES ARE EVEN BETTER
|
||||
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:
|
||||
we say that the tag line has an implicit tag name. 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. etags.c uses implicit tag
|
||||
names when possible, in order to reduce the size of the tags file.
|
||||
An implicit tag name is deduced from the pattern by discarding the
|
||||
last character if it is one of ` \f\t\n\r()=,;', then taking all the
|
||||
rightmost consecutive characters in the pattern which are not one of
|
||||
those.
|
||||
|
||||
NONAM=" \f\t\n\r()=,;";
|
||||
1. the tag does not contain any of the characters in NONAM;
|
||||
2. the pattern contains the tag as either a rightmost, or rightmost
|
||||
but one character, substring;
|
||||
3. the character, if any, immediately before the tag in the pattern
|
||||
must be a character in NONAM;
|
||||
4. the character, if any, immediately after the tag in the pattern
|
||||
must also be a character in NONAM.
|
||||
|
||||
===================== end of discussion on tag names =====================
|
||||
===================== end of discussion of tag names =====================
|
||||
|
|
|
|||
Loading…
Reference in a new issue