*** empty log message ***
[m17n/m17n-lib-cs.git] / input.txt
1 INPUT-METHOD =
2   '<input-method>'
3   TAGS
4   DESCRIPTION ?
5   TITLE ?
6   VARLIST ?
7   CMDLIST ?
8   MODULELIST ?
9   MACROLIST ?
10   MAPLIST ?
11   STATELIST ?
12   '</input-method>'
13
14 TAGS = '<tags>' LANG NAME EXTRA ? '</tags>'
15
16 LANG = '<language>' LANGNAME '</language>'
17 NAME = '<name>' NAME '</name>'
18 EXTRA = '<extra-id>' EXTRANAME '</extra-id>'
19
20 VARLIST = '<variable-list>' DEFVAR + '</variable-list>'
21 CMDLIST = '<command-list>' COMMAND + '</command-list>'
22 MODULELIST = '<module-list>' MODULE + '</module-list>'
23 MACROLIST = '<macro-list>' DEFUN + '</macro-list>'
24 MAPLIST = '<map-list>' MAP + '</map-list>'
25 STATELIST = '<state-list>' STATE + '</state-list>'
26
27 MODULE = '<module id="' MODULENAME '">' DEFUN-NAME + '</module>'
28 DEFUN-NAME = '<defun fname="' FNAME '"/>'
29
30 COMMAND
31   = '<defcmd cname="' COMMANDNAME '">'
32     DESCRIPTION ?
33     KEYSEQ *
34     '</defcmd>'
35
36 MAP = '<map mname="' MAPNAME '">' RULE * '</map>'
37
38 RULE = '<rule>' [ KEYSEQ | CMDREF ] FUNCALL * '</rule>'
39
40 CMDREF = '<command cname="' COMMANDNAME '"/>'
41
42 STATE = '<state sname="' STATENAME '">' 
43         TITLE ? 
44         [ HOOK BRANCH CATCHALL ] * 
45         '</state>'
46
47 HOOK = '<state-hook>' FUNCALL + '</state-hook>'
48
49 BRANCH = '<branch mname="' MAPNAME '">' FUNCALL * '</branch>'
50
51 CATCHALL = '<catch-all-branch>' FUNCALL * '</catch-all-branch>'
52
53 TERM += MIM-TERM
54 PREDEFINED += MIM-PREDEFEIND
55
56 MIM-TERM = KEYSEQ | MARKER | SELECTOR
57
58 KEYSEQ = '<keyseq>' [ STRTERM | LISTTERM ] '</keyseq>'
59 KEYSEQTERM = KEYSEQ | VAR (value is KEYSEQ) | FUNCALL (return KEYSEQ)
60
61 MARKER = '<marker>' STRING '</marker>'
62 MARKERTERM = MARKER | VAR (value is MARKER) | FUNCALL (return MARKER)
63
64 SELECTOR = '<selector>' STRING '</selector>'
65 SELECTORTERM = SELECTOR | VAR (value is SELECTOR) | FUNCALL (return SELECTOR)
66
67 MIM-PREDEFINED
68   = INSERT | CANDIDATES | DELETE | SELECT | SHOW | HIDE
69     | MARK | MOVE | PUSHBACK | POP | UNDO | COMMIT | UNHANDLE
70     | SHIFT | SHIFTBACK | CHAR-AT | KEY-COUNT | SURROUNDING-TEXT-FLAG
71
72 INSERT = '<insert>' [ INTTERM | STRTERM ] '</insert>'
73 CANDIDATES = '<insert-candidates>' [ STRTERM | LISTTERM ]+ '</insert-candiates>'
74 DELETE = '<delete>' [ MARKERTERM | INTTERM ] '</delete>'
75 SELECT = '<select>' [ SELECTORTERM | INTTERM ] '</select>'
76 SHOW = '<show-candidates/>'
77 HIDE = '<hide-candidates/>'
78 MOVE = '<move>' [ MARKERTERM | INTTERM ] '</move>'
79 MARK = '<mark>' MARKERTERM '</mark>'
80 PUSHBACK = '<pushback>' [ KEYSEQTERM | INTTERM ] '</pushback>'
81 POP = '<pop/>'
82 UNDO = '<undo>' INTTERM ? '</undo>'
83 COMMIT = '<commit/>'
84 UNHANDLE = '<unhandle/>'
85 SHIFT = '<shift>' SYMTERM '</shift>'
86 SHIFTBACK = '<shiftback/>'
87 CHAR-AT = '<char-at>' MARKERTERM '</char-at>'
88   => <integer>C</integer>, where C is the character in the preedit text
89      at the postion of MARKERTERM
90 KEY-COUNT = '<key-count/>'
91   => <integer>N</integer>, where N is the number of currently handled keys
92 SURROUNDING-TEXT-FLAG = '<surrounding-text-flag/>'
93   => <integer>1</integer> or <integer>0</integer>