view etc/ETAGS.EBNF @ 45887:8aa6e4d588ce

some passive forms to active
author Francesco Potortì <pot@gnu.org>
date Mon, 17 Jun 2002 22:22:03 +0000
parents 147a637372eb
children c5474d1cf831
line wrap: on
line source

EBNF (Extended Backus Normal Form) description of the format of the tags
file created by etags.c and interpreted by etags.el

Productions created from current behaviour to aid extensions
Francesco Potorti` <pot@gnu.org> 2002
================================================================

FF ::= #x0c				   /* tag section starter */

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

DEL ::= #x7f				   /* pattern terminator */

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

regchar ::= [^#x0a#x0c#x7f]		   /* 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 ::= "(" regstring ")"		   /* an elisp alist */

tag ::= directtag | patterntag

directtag ::= DEL realposition		   /* no pattern */

patterntag ::= pattern DEL [ tagname SOH ] position

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

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

position ::= realposition | "," 	   /* charpos,linepos */

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