*** empty log message ***
[m17n/m17n-lib-cs.git] / input.txt
index 9db4123..6537e65 100644 (file)
--- a/input.txt
+++ b/input.txt
@@ -11,6 +11,12 @@ INPUT-METHOD =
   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>'
@@ -18,7 +24,7 @@ MACROLIST = '<macro-list>' DEFUN + '</macro-list>'
 MAPLIST = '<map-list>' MAP + '</map-list>'
 STATELIST = '<state-list>' STATE + '</state-list>'
 
-MODULE = '<module>' DEFUN-NAME + '</module>'
+MODULE = '<module id="' MODULENAME '">' DEFUN-NAME + '</module>'
 DEFUN-NAME = '<defun fname="' FNAME '"/>'
 
 COMMAND
@@ -33,7 +39,10 @@ RULE = '<rule>' [ KEYSEQ | CMDREF ] FUNCALL * '</rule>'
 
 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>'
 
@@ -44,26 +53,26 @@ CATCHALL = '<catch-all-branch>' FUNCALL * '</catch-all-branch>'
 TERM += MIM-TERM
 PREDEFINED += MIM-PREDEFEIND
 
-MIM-TERM = KEYSEQ | MARKER 
+MIM-TERM = KEYSEQ | MARKER | SELECTOR
 
-KEYSEQ = '<keyseq>' [ INTTERM | STRTERM | SYMTERM ] + '</keyseq>'
+KEYSEQ = '<keyseq>' [ STRTERM | LISTTERM ] '</keyseq>'
 KEYSEQTERM = KEYSEQ | VAR (value is KEYSEQ) | FUNCALL (return KEYSEQ)
 
-MARKER = '<marker>' SYMTERM '</marker>'
+MARKER = '<marker>' STRING '</marker>'
 MARKERTERM = MARKER | VAR (value is MARKER) | FUNCALL (return MARKER)
 
-SELECTOR = '<selector>' SYMTERM '</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
+    | SHIFT | SHIFTBACK | CHAR-AT | KEY-COUNT | SURROUNDING-TEXT-FLAG
 
 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>'
@@ -75,3 +84,11 @@ COMMIT = '<commit/>'
 UNHANDLE = '<unhandle/>'
 SHIFT = '<shift>' SYMTERM '</shift>'
 SHIFTBACK = '<shiftback/>'
+CHAR-AT = '<char-at>' MARKERTERM '</char-at>'
+  => <integer>C</integer>, where C is the character in the preedit text
+     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-FLAG = '<surrounding-text-flag/>'
+  => <integer>1</integer> if surrounding text handling is supported
+     or <integer>0</integer> if not.