summaryrefslogtreecommitdiff
path: root/etc/ETAGS.EBNF
blob: c9d053c1760163afe586d6073c207390d8053a32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
EBNF (Extended Backus Normal Form) description of the format of the tags
file created by etags.c and interpreted by etags.el
Francesco Potorti` <pot@gnu.org> 2002
================================================================

FF ::= #x0c				   /* form feed */

LF ::= #x0a				   /* line feed */

PATTERM ::= #x80			   /* pattern terminator */

NAMTERM ::= #x01			   /* name terminator */

regchar ::= [^#x0a#x0c#x80]		   /* regular character */

regstring ::= { regchar }		   /* regular string */

unsint ::= [0-9] { [0-9] }		   /* non-negative integer */



tagfile ::= { tagsection }		   /* a tags file */

tagsection ::= FF LF ( includesec | regularsec ) LF

includesec ::= filename ",include" [ LF fileprop ]

regularsec ::= filename "," [ unsint ] [ LF fileprop ] { LF tag }

filename ::= regchar regstring		   /* a file name */

fileprop ::= PATTERM "(" regstring ")"

tag ::= directtag | patterntag

directtag ::= PATTERM realposition

patterntag ::= pattern PATTERM [ tagname NAMTERM ] position

pattern ::= regstring			   /* a tag pattern */

tagname ::= regchar regstring		   /* a tag name */

position ::= realposition | ","

realposition ::= "," unsint | unsint "," | unsint "," unsint