STATELIST ?
'</input-method>'
+TAGS = '<tags>' LANG NAME EXTRA ? '</tags>'
+
+LANG = '<language>' LANGNAME '</language>'
+NAME = '<name>' NAME '</name>'
+EXTRA = '<extra-id>' EXTRANAME '</extra-id>'
+
VARLIST = '<variable-list>' DEFVAR + '</variable-list>'
CMDLIST = '<command-list>' COMMAND + '</command-list>'
MODULELIST = '<module-list>' MODULE + '</module-list>'
CMDREF = '<command cname="' COMMANDNAME '"/>'
-STATE = '<state sname="' STATENAME '">' [ HOOK BRANCH CATCHALL ] * '</state>'
+STATE = '<state sname="' STATENAME '">'
+ TITLE ?
+ [ HOOK BRANCH CATCHALL ] *
+ '</state>'
HOOK = '<state-hook>' FUNCALL + '</state-hook>'
TERM += MIM-TERM
PREDEFINED += MIM-PREDEFEIND
-MIM-TERM = KEYSEQ | MARKER
+MIM-TERM = KEYSEQ | MARKER | SELECTOR
KEYSEQ = '<keyseq>' [ INTTERM | STRTERM | SYMTERM ] + '</keyseq>'
KEYSEQTERM = KEYSEQ | VAR (value is KEYSEQ) | FUNCALL (return KEYSEQ)
| SHIFT | SHIFTBACK
INSERT = '<insert>' [ INTTERM | STRTERM ] '</insert>'
-CANDIDATES = '<insert-candidates>' [ STRTERM | LISTTERM ] '</insert-candiates>'
+CANDIDATES = '<insert-candidates>' [ STRTERM | LISTTERM ] + '</insert-candiates>'
DELETE = '<delete>' [ MARKERTERM | INTTERM ] '</delete>'
-SELECT = '<select>' [ SELECTTERM | INTTERM ] '</select>'
+SELECT = '<select>' [ SELECTORTERM | INTTERM ] '</select>'
SHOW = '<show-candidates/>'
HIDE = '<hide-candidates/>'
MOVE = '<move>' [ MARKERTERM | INTTERM ] '</move>'