Replaced cross reference to `Trailing Whitespace' with `Useless Whitespace'
[emacs.git] / etc / ETAGS.EBNF
blobe548a11cbddd957afdf356931ccce1648ef9d509
1 EBNF (Extended Backus Normal Form) description of the format of the tags
2 file created by etags.c and interpreted by etags.el
4 Productions created from current behaviour to aid extensions
5 Francesco Potorti` <pot@gnu.org> 2002
6 ================================================================
8 FF ::= #x0c                                /* tag section starter */
10 LF ::= #x0a                                /* line terminator */
12 DEL ::= #x7f                               /* pattern terminator */
14 SOH ::= #x01                               /* name terminator */
16 regchar ::= [^#x0a#x0c#x7f]                /* regular character */
18 regstring ::= { regchar }                  /* regular string */
20 unsint ::= [0-9] { [0-9] }                 /* non-negative integer */
24 tagfile ::= { tagsection }                 /* a tags file */
26 tagsection ::= FF LF ( includesec | regularsec ) LF
28 includesec ::= filename ",include" [ LF fileprop ]
30 regularsec ::= filename "," [ unsint ] [ LF fileprop ] { LF tag }
32 filename ::= regchar regstring             /* a file name */
34 fileprop ::= "(" regstring ")"             /* an elisp alist */
36 tag ::= directtag | patterntag
38 directtag ::= DEL realposition             /* no pattern */
40 patterntag ::= pattern DEL [ tagname SOH ] position
42 pattern ::= regstring                      /* a tag pattern */
44 tagname ::= regchar regstring              /* a tag name */
46 position ::= realposition | ","            /* charpos,linepos */
48 realposition ::= "," unsint | unsint "," | unsint "," unsint