*** empty log message ***
[m17n/m17n-docs.git] / data-usr / im.txt
index a107b4c..99a4292 100644 (file)
-;; FILE-FORMAT ::=
-;;     TITLE MAP-LIST MODULE-LIST ? STATE-LIST
-;;
-;; TITLE ::=
-;;     '(' title MTEXT ')'
-;;
-;; MAP-LIST ::=
-;;     '(' 'map' MAP * ')'
-;;
-;; MAP ::=
-;;     '(' MAP-NAME RULE * ')'
-;;
-;; MAP-NAME ::=
-;;     SYMBOL
-;;
-;; RULE ::=
-;;     '(' KEYSEQ MAP-ACTION * ')'
-;;
-;; KEYSEQ ::=
-;;     MTEXT | '(' [ SYMBOL | INTEGER ] * ')'
-;;
-;; MAP-ACTION ::=
-;;     ACTION
-;;
-;; ACTION ::=
-;;     MTEXT | CANDIDATES | '(' ACTION-NAME ACTION-ARG * ')'
-;;
-;; CANDIDATES ::=
-;;     '(' CANDIDATE-GROUP * ')'
-;;
-;;   (in ASCTION,
-;;     MTEXT is a short form of "(insert MTEXT)"
-;;     CANDIDATES is a short form of "(candidates CANDIDATE-GROUP *)")
-;;
-;; ACTION-NAME ::=
-;;     'insert' | 'candidates' | 'delete' | 'select' | 'select-group'
-;;     | 'move' | 'mark' | 'pushback' | 'undo' | 'shift' | 'call'
-;;
-;; ACTION-ARG ::=
-;;     INTEGER | SYMBOL | MTEXT | CANDIDATE-GROUP
-;;
-;; CANDIDATE-GROUP ::=
-;;     MTEXT | '('  MTEXT * ')'
-;;
-;; PREDEFINED-SYMBOL ::=
-;;     '@0' | '@1' | '@2' | '@3' | '@4' | '@5' | '@6' | '@7' | '@8' | '@9'
-;;     | '@<' | '@=' | '@>' | '@-' | '@+'
-;;
-;; MARKER ::=
-;;     PREDEFINED-SYMBOL | SYMBOL
-;;
-;; CANDIDATE-INDEX ::=
-;;     PREDEFINED-SYMBOL
-;;
-;; CANDIDATE-GROUP-INDEX ::=
-;;     PREDEFINED-SYMBOL
-
-;; ;; The first five actions ('insert' .. 'select-group') are for
-;; ;; editing a text in the preediting buffer.  The buffer can keep
-;; ;; multiple markers.  Each marker is represented by a symbol, and
-;; ;; keeps a position between characters in the preediting buffer.
-
-;; ;; PREDEFINED-SYMBOL has special meanings when used as MARKER:
-;; ;;   '@0', '@1', ... '@9'
-;; ;;      The 0th, 1th, ... 9th position.
-;; ;;   '@<', '@=', '@>'
-;; ;;      The first, current, and end position.
-;; ;;   '@-', '@+'
-;; ;;      The previous and next position.
-
-;; ;; PREDEFINED-SYMBOL has special meanings when used as CANDIDATE-INDEX:
-;; ;;   '@0', '@1', ... '@9'
-;; ;;      The 0th, 1th, ... 9th candidate of the current candidate group.
-;; ;;   '@<', '@=', '@>'
-;; ;;      The first, current, and end candidate of the current candidate
-;; ;;      group.
-;; ;;   '@-'
-;; ;;      The previous candidate.  If the current candidate is the
-;; ;;      first of the current candidate group, the last candidate of
-;; ;;      the previous candidate group.
-;; ;;   '@+'
-;; ;;      The next candidate.  If the current candidate is the last of
-;; ;;      the current candidate group, the first candidate of the
-;; ;;      previous candidate group.
-
-;; ;; PREDEFINED-SYMBOL has special meanings when used as CANDIDATE-INDEX:
-;; ;;   '@0', '@1', ... '@9'
-;; ;;      The 0th, 1th, ... 9th candidate of the current candidate group.
-;; ;;   '@<', '@=', '@>'
-;; ;;      The first, current, and end candidate of the current candidate
-;; ;;      group.
-;; ;;   '@-'
-;; ;;      The previous candidate.  If the current candidate is the
-;; ;;      first of the current candidate group, the last candidate of
-;; ;;      the previous candidate group.
-;; ;;   '@+'
-;; ;;      The next candidate.  If the current candidate is the last of
-;; ;;      the current candidate group, the first candidate of the
-;; ;;      previous candidate group.
-
-;; ;; PREDEFINED-SYMBOL has special meanings when used as
-;; ;; CANDIDATE-GROUP-INDEX:
-;; ;;   '@0', '@1', ... '@9'
-;; ;;      The 0th, 1th, ... 9th candidate group.
-;; ;;   '@<', '@=', '@>'
-;; ;;      The first, current, and end candidate group.
-;; ;;   '@-', '@+'
-;; ;;      The previous and the next candidate group.
-
-;; ;; (insert MTEXT) inserts MTEXT before @=.
-
-;; ;; (candidates CANDIDATE-GROUP *) set the current candidates list
-;; ;; to the list of arguments, set the current candidate group to the
-;; ;; first argument, insert the first candidate of the current group
-;; ;; before @=, and mark the inserted text as the current candidate.
-;; ;; Each element of CANDIDATE-GROUP represents a candidate, i.e. if
-;; ;; CANDIDATE-GROUP is MTEXT, each character in MTEXT is a
-;; ;; candidate, if CANDIDATE-GROUP is a list of MTEXT, each MTEXT is
-;; ;; a candidate.
-
-;; ;; (select CANDIDATE-INDEX) replaces the current candidate with
-;; ;; what specified by CANDIDATE-INDEX.  If a candidate of the
-;; ;; different candidate group is specified, set the current
-;; ;; candidate group to that group.
-
-;; ;; (select-group CANDIDATE-GROUP-INDEX) sets the current candidate
-;; ;; group to a group indicated by CANDIDATE-GROUP-INDEX, and relaces
-;; ;; the current candiate with the candiate of the same index in the
-;; ;; new group.
-
-;; ;; (delete MARKER) deletes characters between @= and the position
-;; ;; specified by MARKER.
-
-;; ;; (move MARKER) sets @= to the position of specified by MARKER.
-
-;; ;; (mark MARKER) sets MARKER to the position of @=.  MARKER must
-;; ;; not be PREDEFINED-SYMBOL.
-
-;; ;; (pushback) pushbacks the latest key events to the event queue.
-
-;; ;; (undo) cancels the last key events.
-
-;; ;; (shift STATE-NAME) shifts the current state to the state
-;; ;; specified by STATE-NAME.
-
-;; ;; (call FUNCTION ARG *) calls the function FUNCTION of an external
-;; ;; module.  FUNCTION must be defined in MODULE-LIST.
-
-;; ;; The function is called with a property list (MPlist *) that has
-;; ;; these properties in this order.
-;; ;;   KEY            VALUE
-;; ;;   ---            -----
-;; ;;   mtext          The current preedit text.
-;; ;;   symbol         The current state name (MSymbol).
-;; ;; The remaining properties (if any) are ARGs.
-;; ;;
-;; ;; The function must return a property list (MPlist *) that
-;; ;; represents a list of ACTIONs to take.
-
-;; MODULE-LIST ::=
-;;     '(' 'module' MODULE * ')'
-;;
-;; MODULE ::=
-;;     '(' MODULE-NAME FUNCTION * ')'
-;;
-;; MODULE-NAME ::=
-;;     MTEXT
-;;
-;; FUNCTION ::=
-;;     SYMBOL
-
-;; STATE-LIST ::=
-;;   '(' 'state' STATE * ')'
-;;
-;; STATE ::=
-;;     '(' STATE-NAME BRANCH * ')'
-;;
-;; STATE-NAME ::=
-;;     SYMBOL
-;;
-;; BRANCH ::=
-;;     '(' [ MAP-NAME | 'nil' ]  BRANCH-ACTION * ')'
-
-;; ;; If MAP-NAME is specified, it must be a name of a map defined in
-;; ;; MAP-LIST.  Otherwise, BRANCH is the default branch of STATE.
-
-;; BRANCH-ACTION ::=
-;;     ACTION
+INPUT-METDHO ::=
+    '(' TITLE MAP-LIST MODULE-LIST ? STATE-LIST ')'
+
+TITLE ::=
+    '(' title MTEXT ')'
+
+MAP-LIST ::=
+    '(' 'map' MAP * ')'
+
+MAP ::=
+    '(' MAP-NAME RULE * ')'
+
+MAP-NAME ::=
+    symbol
+
+RULE ::=
+    '(' KEYSEQ MAP-ACTION * ')'
+
+KEYSEQ ::=
+    mtext | '(' [ symbol | integer ] * ')'
+
+MAP-ACTION ::=
+    ACTION
+
+ACTION ::=
+    mtext | CANDIDATES | '(' ACTION-NAME ACTION-ARG * ')'
+
+CANDIDATES ::=
+    '(' CANDIDATE-GROUP * ')'
+
+  (in ASCTION,
+       MTEXT is a short form of "(insert MTEXT)"
+       CANDIDATES is a short form of "(candidates CANDIDATE-GROUP *)")
+
+ACTION-NAME ::=
+    'insert' | 'candidates' | 'delete' | 'select' | 'select-group'
+       | 'move' | 'mark' | 'pushback' | 'undo' | 'shift' | 'call'
+
+ACTION-ARG ::=
+       integer | symbol | mtext | CANDIDATE-GROUP
+
+CANDIDATE-GROUP ::=
+       mtext | '('  mtext * ')'
+
+PREDEFINED-SYMBOL ::=
+    '@0' | '@1' | '@2' | '@3' | '@4' | '@5' | '@6' | '@7' | '@8' | '@9'
+    | '@<' | '@=' | '@>' | '@-' | '@+'
+
+MARKER ::=
+    PREDEFINED-SYMBOL | symbol
+
+CANDIDATE-INDEX ::=
+    PREDEFINED-SYMBOL
+
+CANDIDATE-GROUP-INDEX ::=
+    PREDEFINED-SYMBOL
+
+;; The first five actions ('insert' .. 'select-group') are for
+;; editing a text in the preediting buffer.  The buffer can keep
+;; multiple markers.  Each marker is represented by a symbol, and
+;; keeps a position between characters in the preediting buffer.
+
+;; PREDEFINED-SYMBOL has special meanings when used as MARKER:
+;;   '@0', '@1', ... '@9'
+;;      The 0th, 1th, ... 9th position.
+;;   '@<', '@=', '@>'
+;;      The first, current, and end position.
+;;   '@-', '@+'
+;;      The previous and next position.
+
+;; PREDEFINED-SYMBOL has special meanings when used as CANDIDATE-INDEX:
+;;   '@0', '@1', ... '@9'
+;;      The 0th, 1th, ... 9th candidate of the current candidate group.
+;;   '@<', '@=', '@>'
+;;      The first, current, and end candidate of the current candidate
+;;      group.
+;;   '@-'
+;;      The previous candidate.  If the current candidate is the
+;;      first of the current candidate group, the last candidate of
+;;      the previous candidate group.
+;;   '@+'
+;;      The next candidate.  If the current candidate is the last of
+;;      the current candidate group, the first candidate of the
+;;      previous candidate group.
+
+;; PREDEFINED-SYMBOL has special meanings when used as CANDIDATE-INDEX:
+;;   '@0', '@1', ... '@9'
+;;      The 0th, 1th, ... 9th candidate of the current candidate group.
+;;   '@<', '@=', '@>'
+;;      The first, current, and end candidate of the current candidate
+;;      group.
+;;   '@-'
+;;      The previous candidate.  If the current candidate is the
+;;      first of the current candidate group, the last candidate of
+;;      the previous candidate group.
+;;   '@+'
+;;      The next candidate.  If the current candidate is the last of
+;;      the current candidate group, the first candidate of the
+;;      previous candidate group.
+
+;; PREDEFINED-SYMBOL has special meanings when used as
+;; CANDIDATE-GROUP-INDEX:
+;;   '@0', '@1', ... '@9'
+;;      The 0th, 1th, ... 9th candidate group.
+;;   '@<', '@=', '@>'
+;;      The first, current, and end candidate group.
+;;   '@-', '@+'
+;;      The previous and the next candidate group.
+
+;; (insert MTEXT) inserts MTEXT before @=.
+
+;; (candidates CANDIDATE-GROUP *) set the current candidates list
+;; to the list of arguments, set the current candidate group to the
+;; first argument, insert the first candidate of the current group
+;; before @=, and mark the inserted text as the current candidate.
+;; Each element of CANDIDATE-GROUP represents a candidate, i.e. if
+;; CANDIDATE-GROUP is MTEXT, each character in MTEXT is a
+;; candidate, if CANDIDATE-GROUP is a list of MTEXT, each MTEXT is
+;; a candidate.
+
+;; (select CANDIDATE-INDEX) replaces the current candidate with
+;; what specified by CANDIDATE-INDEX.  If a candidate of the
+;; different candidate group is specified, set the current
+;; candidate group to that group.
+
+;; (select-group CANDIDATE-GROUP-INDEX) sets the current candidate
+;; group to a group indicated by CANDIDATE-GROUP-INDEX, and relaces
+;; the current candiate with the candiate of the same index in the
+;; new group.
+
+;; (delete MARKER) deletes characters between @= and the position
+;; specified by MARKER.
+
+;; (move MARKER) sets @= to the position of specified by MARKER.
+
+;; (mark MARKER) sets MARKER to the position of @=.  MARKER must
+;; not be PREDEFINED-SYMBOL.
+
+;; (pushback) pushbacks the latest key events to the event queue.
+
+;; (undo) cancels the last key events.
+
+;; (shift STATE-NAME) shifts the current state to the state
+;; specified by STATE-NAME.
+
+;; (call FUNCTION ARG *) calls the function FUNCTION of an external
+;; module.  FUNCTION must be defined in MODULE-LIST.
+
+;; The function is called with a property list (MPlist *) that has
+;; these properties in this order.
+;;   KEY               VALUE
+;;   ---               -----
+;;   mtext             The current preedit text.
+;;   symbol            The current state name (MSymbol).
+;; The remaining properties (if any) are ARGs.
+;;
+;; The function must return a property list (MPlist *) that
+;; represents a list of ACTIONs to take.
+
+MODULE-LIST ::=
+    '(' 'module' MODULE * ')'
+
+MODULE ::=
+    '(' MODULE-NAME FUNCTION * ')'
+
+MODULE-NAME ::=
+    mtext
+
+FUNCTION ::=
+    symbol
+
+STATE-LIST ::=
+    '(' 'state' STATE * ')'
+
+STATE ::=
+    '(' STATE-NAME BRANCH * ')'
+
+STATE-NAME ::=
+    symbol
+
+BRANCH ::=
+    '(' [ MAP-NAME | 'nil' ]  BRANCH-ACTION * ')'
+
+;; If MAP-NAME is specified, it must be a name of a map defined in
+;; MAP-LIST.  Otherwise, BRANCH is the default branch of STATE.
+
+BRANCH-ACTION ::=
+    ACTION
 
 
 ;; Example: