STATELIST ?
'</input-method>'
-VARLIST = '<variable-list>' DEFVAR * '</variable-list>'
-CMDLIST = '<command-list>' COMMAND * '</command-list>'
-MODULELIST = '<module-list>' MODULE * '</module-list>'
-MACROLIST = '<macro-list>' DEFUN * '</macro-list>'
-MAPLIST = '<map-list>' MAP * '</map-list>'
-STATELIST = '<state-list>' STATE * '</state-list>'
+VARLIST = '<variable-list>' DEFVAR + '</variable-list>'
+CMDLIST = '<command-list>' COMMAND + '</command-list>'
+MODULELIST = '<module-list>' MODULE + '</module-list>'
+MACROLIST = '<macro-list>' DEFUN + '</macro-list>'
+MAPLIST = '<map-list>' MAP + '</map-list>'
+STATELIST = '<state-list>' STATE + '</state-list>'
MODULE = '<module>' DEFUN-NAME + '</module>'
DEFUN-NAME = '<defun fname="' FNAME '"/>'
KEYSEQ *
'</defcmd>'
-MAP = '<map id="' MAPNAME '">' RULE * '</map>'
+MAP = '<map mname="' MAPNAME '">' RULE * '</map>'
RULE = '<rule>' [ KEYSEQ | CMDREF ] FUNCALL * '</rule>'
CMDREF = '<command cname="' COMMANDNAME '"/>'
-STATE = '<state id="' STATENAME '">' BRANCH * '</state>'
+STATE = '<state sname="' STATENAME '">' HOOK BRANCH CATCHALL * '</state>'
-BRANCH = ...
+HOOK = '<state-hook>' FUNCALL + '</state-hook>'
+
+BRANCH = '<branch mname="' MAPNAME '">' FUNCALL * '</branch>'
+
+CATCHALL = '<catch-all-branch>' FUNCALL * '</catch-all-branch>'
TERM += MIM-TERM
PREDEFINED += MIM-PREDEFEIND