14 VARLIST = '<variable-list>' DEFVAR * '</variable-list>'
15 CMDLIST = '<command-list>' COMMAND * '</command-list>'
16 MODULELIST = '<module-list>' MODULE * '</module-list>'
17 MACROLIST = '<macro-list>' DEFUN * '</macro-list>'
18 MAPLIST = '<map-list>' MAP * '</map-list>'
19 STATELIST = '<state-list>' STATE * '</state-list>'
21 MODULE = '<module>' DEFUN-NAME + '</module>'
22 DEFUN-NAME = '<defun fname=">' FNAME '"/>'
24 MAP = '<map id="' MAPNAME '">' RULE * '</map>'
26 RULE = '<rule>' [ KEYSEQ | COMMAND-REF ] FUNCALL * '</rule>'
28 STATE = '<state id="' STATENAME '">' BRANCH * '</state>'
33 PREDEFINED += MIM-PREDEFEIND
35 MIM-TERM = KEYSEQ MARKER
37 KEYSEQ = '<keyseq>' [ INTTERM | STRTERM | SYMTERM ] + '</keyseq>'
38 KEYSEQTERM = KEYSEQ | VAR (value is KEYSEQ) | FUNCALL (return KEYSEQ)
40 MARKER = '<marker>' SYMTERM '</marker>'
41 MARKERTERM = MARKER | VAR (value is MARKER) | FUNCALL (return MARKER)
44 MIM-PREDEFINED = MARK MOVE PUSHBACK ...
46 MOVE = '<move>' [ MARKERTERM | INTTERM ] '</move>'
47 MARK = '<mark>' MARKERTERM '</mark>'
48 PUSHBACK = '<pushback>' [ KEYSEQTERM | INTTERM ] '</pushback>'