MARKER = '<marker>' STRING '</marker>'
MARKERTERM = MARKER | VAR (value is MARKER) | FUNCALL (return MARKER)
-SELECTOR = '<selector>' STRING '</selector>'
+SELECTOR = '<selector>' "@..." '</selector>'
SELECTORTERM = SELECTOR | VAR (value is SELECTOR) | FUNCALL (return SELECTOR)
MIM-PREDEFINED
= INSERT | CANDIDATES | DELETE | SELECT | SHOW | HIDE
| MARK | MOVE | PUSHBACK | POP | UNDO | COMMIT | UNHANDLE
- | SHIFT | SHIFTBACK | CHAR-AT | KEY-COUNT | SURROUND-TEXT-P
+ | SHIFT | SHIFTBACK | CHAR-AT | KEY-COUNT | SURROUNDING-TEXT-FLAG
INSERT = '<insert>' [ INTTERM | STRTERM ] '</insert>'
CANDIDATES = '<insert-candidates>' [ STRTERM | LISTTERM ]+ '</insert-candiates>'
SHIFTBACK = '<shiftback/>'
CHAR-AT = '<char-at>' MARKERTERM '</char-at>'
=> <integer>C</integer>, where C is the character in the preedit text
- at the postion of MARKERTERM
+ or the surrounding text at the postion specified by MARKERTERM.
KEY-COUNT = '<key-count/>'
=> <integer>N</integer>, where N is the number of currently handled keys
-SURROUNDING-TEXT-AVAILABLE = '<surrounding-text-available/>'
- => <integer>1</integer> or <integer>0</integer>
+SURROUNDING-TEXT-FLAG = '<surrounding-text-flag/>'
+ => <integer>1</integer> if surrounding text handling is supported
+ or <integer>0</integer> if not.