Versions changed to 1.6.1.
[m17n/m17n-db.git] / FORMATS / IM.ja.txt
index 629efbe..00d102a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004
+/* Copyright (C) 2003, 2004, 2005
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H15PRO112
    See the end for copying conditions.  */
@@ -23,15 +23,120 @@ m17n 
 ¥¤¥ë¤ä¥¹¥È¥ê¡¼¥à¤«¤éÄêµÁ¤ò¥í¡¼¥É¤·¡¢¥×¥í¥Ñ¥Æ¥£¥ê¥¹¥È¤Î·Á¼°¤ËÊÑ´¹¤¹¤ë¡£
 
 @verbatim
-INPUT-METHOD ::= TITLE MAP-LIST MACRO-LIST ? MODULE-LIST ? STATE-LIST
+INPUT-METHOD ::=
+    IM-DECLARATION ? DESCRIPTION ? TITLE ?
+     VARIABLE-LIST ? COMMAND-LIST ?  MODULE-LIST ?
+     MACRO-LIST ? MAP-LIST ? STATE-LIST ?
+
+IM-DECLARATION ::= '(' 'input-method' LANGUAGE NAME EXTRA-ID ? VERSION ? ')'
+VERSION ::= '(' 'version' VERSION-NUMBER ')'
+DESCRIPTION ::= '(' 'description' [ MTEXT-OR-GETTEXT | nil] ')'
+VARIABLE-LIST ::= '(' 'variable' VARIABLE-DECLARATION * ')'
+COMMAND-LIST ::= '(' 'command' COMMAND-DECLARATION * ')'
+TITLE ::= '(' 'title' TITLE-TEXT ')'
+
+VARIABLE-DECLARATION ::=
+    '(' VAR-NAME [ MTEXT-OR-GETTEXT | nil ] VALUE VALUE-CANDIDATE * ')'
+
+COMMAND-DECLARATION ::=
+    '(' CMD-NAME [ MTEXT-OR-GETTEXT | nil ] KEYSEQ * ')'
+
+MTEXT-OR-GETTEXT ::=
+    [ MTEXT | '(' '_' MTEXT ')']
+
+LANGUAGE ::= SYMBOL
+NAME ::= SYMBOL
+EXTRA-ID ::= SYMBOL
+VERSION ::= MTEXT
+IM-DESCRIPTION ::= MTEXT
+VAR-NAME ::= SYMBOL
+VAR-DESCRIPTION ::= MTEXT
+VALUE ::= MTEXT | SYMBOL | INTEGER
+VALUE-CANDIDATE ::= VALUE | '(' RANGE-FROM RANGE-TO ')'
+RANGE-FROM ::= INTEGER
+RANGE-TO ::= INTEGER
+CMD-NAME ::= SYMBOL
+CMD-DESCRIPTION ::= MTEXT
+TITLE-TEXT ::= MTEXT
+@endverbatim
+
+@c IM-DECLARATION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤Î¸À¸ì¤È̾Á°¤ò»ØÄꤹ¤ë¡£
+
+@c LANGUAGE ¤¬ @c t ¤Î¾ì¹ç¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥É¤ÏÊ£¿ô¤Î¸À¸ì¤ÇÍøÍѤµ¤ì¤ë¡£
+
+@c NAME ¤¬ @c nil ¤Î¾ì¹ç¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥É¤ÏñÆȤÇÍѤ¤¤é¤ì¤ë¤â¤Î¤Ç¤Ï¤Ê
+¤¯¡¢Â¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤éÍøÍѤ¹¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£¤³¤Î¾ì¹ç¡¢ÆþÎÏ¥á
+¥½¥Ã¥É¤òÆÃÄꤹ¤ë¤¿¤á¤Ë @c EXTRA-ID ¤¬É¬ÍפǤ¢¤ë¡£
+
+@c VERSION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤¬É¬ÍפȤ¹¤ë m17n ¥é¥¤¥Ö¥é¥ê¤ÎºÇ¾®¥Ð¡¼¥¸¥ç
+¥ó¤ò»ØÄꤹ¤ë¡£¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï "XX.YY.ZZ" ¤Ç¤¢¤ê¡¢XX ¤Ï¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç
+¥ó¡¢ YY ¤Ï¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥ó¡¢ZZ ¤Ï¥Ñ¥Ã¥Á¥ì¥Ù¥ë¤òɽ¤¹¡£
+
+@c DESCRIPTION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤ÎÀâÌÀ¤ò @c MTEXT-OR-GETTEXT ¤Ç»ØÄꤹ
+¤ë¡£¤â¤·¤³¤ì¤¬£²ÈÖÌܤηÁ¼°¤ò¼è¤Ã¤Æ¤¤¤ì¤Ð¡¢ @c MTEXT ¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Ë
+½¾¤Ã¤Æ "gettext" ¤Ë¤è¤Ã¤ÆËÝÌõ¤µ¤ì¤ë¡ÊËÝÌõʸ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡Ë¡£
+
+@c TITLE-TEXT ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤¬Í­¸ú¤Ê»þ¡¢¥¹¥¯¥ê¡¼¥ó¾å¤Ëɽ¼¨¤µ¤ì¤ë¥Æ
+¥­¥¹¥È¤Ç¤¢¤ë¡£
+
+"global.mim" ¤È¤¤¤¦ÆÃÊ̤ʥե¡¥¤¥ë¤¬¤¢¤ê¡¢¶¦Ä̤¹¤ëÊÑ¿ô¤ä¥³¥Þ¥ó¥É¤¬ÄêµÁ¤µ
+¤ì¤Æ¤¤¤ë¡£ÆþÎϥ᥽¥Ã¥É¥É¥é¥¤¥Ð¤ÏËè²ó¤³¤Î¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¡¢Â¾¤ÎÆþÎÏ¥á
+¥½¥Ã¥É¤Ï¤³¤³¤ÇÄêµÁ¤µ¤ì¤¿ÊÑ¿ô¤ä¥³¥Þ¥ó¥É¤ò·Ñ¾µ¤Ç¤­¤ë¡£
+
+@c VARIABLE-DECLARATION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤Ç»ÈÍѤµ¤ì¤ëÊÑ¿ô¤òÀë¸À¤¹¤ë¡£
+ÊÑ¿ô¤ò¥Ç¥Õ¥©¥ë¥ÈÃͤ˽é´ü²½¤·¤¿¤ê¡¢¥æ¡¼¥¶¤¬¥«¥¹¥¿¥Þ¥¤¥º¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë
+¤Ï¡¢¤³¤³¤ÇÀë¸À¤µ¤ì¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤ÎÀë¸À¤ÏÆóÄ̤ê¤ËÍøÍѤµ¤ì¤ë¡£°ì¤Ä
+¤á¤Ï¿·¤·¤¤ÊÑ¿ô¤òƳÆþ¤¹¤ë¤¿¤á¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç @c VALUE ¤Ï¾Êά¤Ç¤­¤Ê¤¤¡£
+¤â¤¦°ì¤Ä¤Ï "global.mim" ¤ÇÀë¸À¤µ¤ì¤¿ÊÑ¿ô¤ò·Ñ¾µ¤·¡¢°ã¤Ã¤¿¥Ç¥Õ¥©¥ë¥ÈÃͤò
+»ØÄꤷ¤¿¤ê¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥ÉÍѤ˥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ë¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£
+¤³¤Î¾ì¹ç¤Ë¤Ï @c VALUE ¤Ï¾Êά¤Ç¤­¤ë¡£
+
+@c COMMAND-DECLARATION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤Ç»ÈÍѤµ¤ì¤ë¥³¥Þ¥ó¥É¤òÀë¸À¤¹¤ë¡£
+¥³¥Þ¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¥­¡¼¥·¡¼¥±¥ó¥¹¤Ë³ä¤êÅö¤Æ¤¿¤ê¡¢¥æ¡¼¥¶¤¬¥«¥¹¥¿¥Þ¥¤¥º
+¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤³¤ÇÀë¸À¤µ¤ì¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£@c
+VARIABLE-DECLARATION Æ±ÍÍ¡¢¤³¤ÎÀë¸À¤ÏÆóÄ̤ê¤ËÍøÍѤµ¤ì¤ë¡£°ì¤Ä¤á¤Ï¿·¤·¤¤
+¥³¥Þ¥ó¥É¤òƳÆþ¤¹¤ë¤¿¤á¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç @c KEYSEQ ¤Ï¾Êά¤Ç¤­¤Ê¤¤¡£¤â¤¦°ì
+¤Ä¤Ï "global.mim" ¤ÇÀë¸À¤µ¤ì¤¿¥³¥Þ¥ó¥É¤ò·Ñ¾µ¤·¡¢°ã¤Ã¤¿¥­¡¼¥Ð¥¤¥ó¥Ç¥£¥ó
+¥°¤ò»ØÄꤷ¤¿¤ê¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥ÉÍѤ˥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ë¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ç
+¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï @c KEYSEQ ¤Ï¾Êά¤Ç¤­¤ë¡£
+
+@verbatim
+MODULE-LIST ::= '(' 'module' MODULE * ')'
 
-TITLE ::= '(' 'title' MTEXT ')'
+MODULE ::= '(' MODULE-NAME FUNCTION * ')'
+
+MODULE-NAME ::= SYMBOL
+
+FUNCTION ::= SYMBOL
 @endverbatim
 
-@c MTEXT ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤¬Í­¸ú¤ÊºÝ¥¹¥¯¥ê¡¼¥ó¾å¤Ëɽ¼¨¤µ¤ì¤ë¥Æ¥­¥¹¥È¤Ç¤¢¤ë ¡£
+³Æ @c MODULE ¤Ï³°Éô¥â¥¸¥å¡¼¥ë (ưŪ¥é¥¤¥Ö¥é¥ê) ¤Î̾Á°¤È¤½¤Î¥â¥¸¥å¡¼¥ë¤¬
+¸ø³«¤·¤Æ¤¤¤ë´Ø¿ô̾¤òÀë¸À¤¹¤ë¡£@c FUNCTION ¤¬ "init" ¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ì¤Ð¡¢
+¤³¤ÎÆþÎϥ᥽¥Ã¥ÉÍѤÎÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë¡¢¥Ç¥Õ¥©¥ë¥È¤Î°ú¿ô
+(@c CALL ¤ÎÀỲ¾È) ¤Î¤ß¤È¤È¤â¤Ë¸Æ¤Ð¤ì¤ë¡£ @c FUNCTION ¤¬ "fini" ¤È¤¤¤¦
+̾Á°¤ò»ý¤Æ¤Ð, ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤¬Ç˲õ¤µ¤ì¤ëºÝ¤Ë¡¢¥Ç¥Õ¥©¥ë¥È¤Î°ú¿ô¤Î¤ß¤È
+¤È¤â¤Ë¸Æ¤Ð¤ì¤ë¡£
+
+@verbatim
+MACRO-LIST ::=  MACRO-INCLUSION ? '(' 'macro' MACRO * ')' MACRO-INCLUSION ?
+
+MACRO ::= '(' MACRO-NAME MACRO-ACTION * ')'
+
+MACRO-NAME ::= SYMBOL
+
+MACRO-ACTION ::= ACTION
 
-@verbatim 
-MAP-LIST ::= '(' 'map' MAP * ')'
+TAGS ::= `(` LANGUAGE NAME EXTRA-ID ? `)`
+
+MACRO-INCLUSION ::= '(' 'include' TAGS 'macro' MACRO-NAME ? ')'
+
+@endverbatim
+
+@c MACRO-INCLUSION ¤Ï¡¢@c TAGS ¤Ç»ØÄꤵ¤ì¤ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤é¥Þ¥¯¥í¤ò
+Æɤ߹þ¤à¡£@c MACRO-NAME ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢Á´¤Æ¤Î¥Þ¥¯¥í¤òÆɤࡣ
+
+@verbatim
+MAP-LIST ::= MAP-INCLUSION ? '(' 'map' MAP * ')' MAP-INCLUSION ?
 
 MAP ::= '(' MAP-NAME RULE * ')'
 
@@ -40,109 +145,122 @@ MAP-NAME ::= SYMBOL
 RULE ::= '(' KEYSEQ MAP-ACTION * ')'
 
 KEYSEQ ::= MTEXT | '(' [ SYMBOL | INTEGER ] * ')'
+
+MAP-INCLUSION ::= '(' 'include' TAGS 'map' MAP-NAME ? ')'
+
 @endverbatim
 
+ÆþÎϥ᥽¥Ã¥É¤¬¤½¤ìñÂΤÇÍøÍѤµ¤ì¤ë¤³¤È¤¬¤Ê¤¯¾ï¤Ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤ËÆÉ
+¤ß¹þ¤Þ¤ì¤ÆÍѤ¤¤é¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢@c MAP-LIST ¤Ï¾Êά¤Ç¤­¤ë¡£
+
 @c MAP-NAME ÄêµÁÃæ¤Î @c SYMBOL ¤Ï¡¢ @c t ¤¢¤ë¤¤¤Ï @c nil ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê
 ¤é¤Ê¤¤¡£
 
 @c KEYSEQ ÄêµÁÃæ¤Î @c MTEXT ¤Ï¡¢¥­¡¼¥Ü¡¼¥É¤«¤éÀ¸À®¤Ç¤­¤ëʸ»ú¤Ç¹½À®¤µ¤ì
-¤ë¡£¤¹¤Ê¤ï¤Á @c MTEXT ¤ÏÄ̾ïASCII Ê¸»ú¤Î¤ß¤ò´Þ¤à¡£¤·¤«¤·¡¢ÆþÎϥ᥽¥Ã¥É
+¤ë¡£¤¹¤Ê¤ï¤Á @c MTEXT ¤ÏÄ̾ï ASCII Ê¸»ú¤Î¤ß¤ò´Þ¤à¡£¤·¤«¤·¡¢ÆþÎϥ᥽¥Ã¥É
 ¤¬¤¿¤È¤¨¤ÐÀ¾¥è¡¼¥í¥Ã¥ÑÍÑ¥­¡¼¥Ü¡¼¥É¤ò»È¤¦¤³¤È¤òÁÛÄꤷ¤¿¤â¤Î¤Ç¤¢¤ì¤Ð¡¢@c
 MTEXT ¤Ï Latin-1 Ê¸»ú¤ò´Þ¤ó¤Ç¤â¤è¤¤¡£
 
-@c KEYSEQ ÄêµÁÃæ¤Î @c SYMBOL ¤Ï¡¢´Ø¿ô minput_event_to_key () ¤ÎÌá¤êÃÍ
-¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+@c KEYSEQ ÄêµÁÃæ¤Î @c SYMBOL ¤Ï¡¢´Ø¿ô minput_event_to_key () ¤ÎÌá¤êÃͤÇ
+¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£X ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤Î¸µ¤Ç¤Ï¡¢ @c xev ¥³¥Þ¥ó¥É¤òÍѤ¤
+¤ÆÃͤò´Êñ¤Ë¥Á¥§¥Ã¥¯¤Ç¤­¤ë¡£¤¿¤È¤¨¤Ð¡¢ ¥ê¥¿¡¼¥ó¥­¡¼¡¢¥Ð¥Ã¥¯¥¹¥Ú¡¼¥¹¥­¡¼¡¢
+¥­¡¼¥Ñ¥Ã¥É¤Î0¤Î¥­¡¼¤Ê¤É¤Ï¡¢¤½¤ì¤¾¤ì@c (Return) , @c (BackSpace) , @c
+(KP_0) ¤È¤·¤Æ¤¢¤é¤ï¤µ¤ì¤ë¡£¥·¥Õ¥È¡¢¥³¥ó¥È¥í¡¼¥ë¡¢¥á¥¿¡¢¥¢¥ë¥È¡¢¥¹¡¼¥Ñ¡¼¡¢
+¥Ï¥¤¥Ñ¡¼¤â²¡¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤¾¤ìS- , C- , M- , A- , s- , H- ¤¬
+Á°¤Ë¤³¤Î½ç¤ËÃÖ¤«¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ "¥ê¥¿¡¼¥ó¥­¡¼¤ò¥·¥Õ¥È¤·¤Æ¥á¥¿¤·¤Æ¥Ï¥¤
+¥Ñ¡¼¤·¤¿¤â¤Î" ¤Ï@c (S-M-H-Return) ¤Ç¤¢¤ë¡£"a ¤ò¥·¥Õ¥È" ¤«¤é "z ¤ò¥·¥Õ¥È
+" ¤Þ¤Ç¤Ï¡¢Ã±¤Ë A ¤«¤é Z ¤È¤·¤Æɽ¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¡£¤·¤¿¤¬¤Ã¤Æ¡¢ "a ¤ò¥·
+¥Õ¥È¤·¤Æ¥á¥¿¤·¤Æ¥Ï¥¤¥Ñ¡¼¤·¤¿¤â¤Î" ¤Ï @c (M-H-A) ¤È¤Ê¤ë¡£
 
 @c KEYSEQ ÄêµÁÃæ¤Î @c INTEGER ¤Ï¡¢Í­¸ú¤Êʸ»ú¥³¡¼¥É¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 
+@c MAP-INCLUSION ¤Ï¡¢@c TAGS ¤Ç»ØÄꤵ¤ì¤ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤é¥Þ¥Ã¥×¤òÆÉ
+¤ß¹þ¤à¡£@c MAP-NAME ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢Á´¤Æ¤Î¥Þ¥Ã¥×¤òÆɤࡣ
+
 @verbatim
 MAP-ACTION ::= ACTION
 
-ACTION ::= INSERT | DELETE | SELECT | MOVE | MARK |
-           | SHOW | HIDE | PUSHBACK | UNDO | SHIFT | CALL
-          | SET | IF | '(' MACRO-NAME ')'
+ACTION ::= INSERT | DELETE | SELECT | MOVE | MARK
+           | SHOW | HIDE | PUSHBACK | POP | UNDO 
+          | COMMIT | UNHANDLE | SHIFT | CALL
+          | SET | IF | COND | '(' MACRO-NAME ')'
 
 PREDEFINED-SYMBOL ::=
-    '@0' | '@1' | '@2' | '@3' | '@4' |
-    '@5' | '@6' | '@7' | '@8' | '@9' |
-    '@<' | '@=' | '@>' | '@-' | '@+' | '@[' | '@]'
+    '@0' | '@1' | '@2' | '@3' | '@4'
+    | '@5' | '@6' | '@7' | '@8' | '@9'
+    | '@<' | '@=' | '@>' | '@-' | '@+' | '@[' | '@]'
+    | '@@'
+    | '@-0' | '@-N' | '@+N'
 @endverbatim
+
 @verbatim
-MACRO-LIST ::= '(' 'macro' MACRO * ')'
+STATE-LIST ::= STATE-INCUSION ? '(' 'state' STATE * ')'  STATE-INCUSION ?
 
-MACRO ::= '(' MACRO-NAME MACRO-ACTION * ')'
+STATE ::= '(' STATE-NAME [ STATE-TITLE-TEXT ] BRANCH * ')'
 
-MACRO-NAME ::= SYMBOL
-
-MACRO-ACTION ::= ACTION
-@endverbatim
-@verbatim
-MODULE-LIST ::= '(' 'module' MODULE * ')'
+STATE-NAME ::= SYMBOL
 
-MODULE ::= '(' MODULE-NAME FUNCTION * ')'
+STATE-TITLE-TEXT ::= MTEXT
 
-MODULE-NAME ::= SYMBOL
+BRANCH ::= '(' MAP-NAME BRANCH-ACTION * ')'
+          | '(' nil BRANCH-ACTION * ')'
+          | '(' t BRANCH-ACTION * ')'
 
-FUNCTION ::= SYMBOL
+STATE-INCLUSION ::= '(' 'include' TAGS 'state' STATE-NAME ? ')'
 @endverbatim
 
-³Æ @c MODULE ¤Ï³°Éô¥â¥¸¥å¡¼¥ë (ưŪ¥é¥¤¥Ö¥é¥ê) ¤Î̾Á°¤È¤½¤Î¥â¥¸¥å¡¼¥ë
-¤¬¸ø³«¤¹¤ë´Ø¿ô̾¤òÀë¸À¤¹¤ë¡£@c FUNCTION ¤¬ "init" ¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ì¤Ð¡¢
-¤³¤ÎÆþÎϥ᥽¥Ã¥ÉÍѤÎÆþÎÏ¥³¥ó¥Æ¥­¥¹¥È¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë¤Î¤ß¡¢¥Ç¥Õ¥©¥ë¥È¤Î
-°ú¿ô (@c CALL ¤ÎÀỲ¾È) ¤È¤È¤â¤Ë¸Æ¤Ð¤ì¤ë¡£ @c FUNCTION ¤¬ "fini" ¤È¤¤
-¤¦Ì¾Á°¤ò»ý¤Æ¤Ð, ÆþÎÏ¥³¥ó¥Æ¥­¥¹¥È¤¬Ç˲õ¤µ¤ì¤ëºÝ¤Ë¤Î¤ß¡¢¥Ç¥Õ¥©¥ë¥È¤Î°ú¿ô
-¤È¤È¤â¤Ë¸Æ¤Ð¤ì¤ë¡£
+ÆþÎϥ᥽¥Ã¥É¤¬¤½¤ìñÂΤÇÍøÍѤµ¤ì¤ë¤³¤È¤¬¤Ê¤¯¾ï¤Ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤ËÆÉ
+¤ß¹þ¤Þ¤ì¤ÆÍѤ¤¤é¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢@c STATE-LIST ¤Ï¾Êά¤Ç¤­¤ë¡£
 
-@verbatim
-STATE-LIST ::= '(' 'state' STATE * ')'
-
-STATE ::= '(' STATE-NAME BRANCH * ')'
+@c STATE-INCLUSION ¤Ï¡¢@c TAGS ¤Ç»ØÄꤵ¤ì¤ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤é¥¹¥Æ¡¼¥È
+¤òÆɤ߹þ¤à¡£@c STATE--NAME ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥È¤òÆÉ
+¤à¡£
 
-STATE-NAME ::= SYMBOL
+@c STATE-TITLE-TEXT ¤Ï¡¢¤â¤·»ØÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ÆþÎϥ᥽¥Ã¥É¤¬¤³¤Î
+¾õÂ֤ˤ¢¤ë»þ¥¹¥¯¥ê¡¼¥ó¾å¤Ëɽ¼¨¤µ¤ì¤ë¥Æ¥­¥¹¥È¤Ç¤¢¤ë¡£¾Êά¤µ¤ì¤¿¾ì¹ç¤Ë¤Ï
+@c TITLE-TEXT ¤¬ÍѤ¤¤é¤ì¤ë¡£
 
-BRANCH ::= '(' MAP-NAME BRANCH-ACTION * ')'
-          | '(' nil BRANCH-ACTION * ')'
-          | '(' t BRANCH-ACTION * ')'
-@endverbatim
+@c BRANCH ¤ÎÂè°ì¤Î·Á¼°¤Ç¤Ï¡¢@c MAP-NAME ¤Ï @c MAP ¤Ë¸½¤ï¤ì¤ë¤â¤Î¤Ç¤Ê¤¯
+¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢@c MAP-NAME ¤Î @c KEYSEQ ¤Î°ì¤Ä¤Ë¹çÃפ¹¤ë¥­¡¼Îó
+¤¬¥¿¥¤¥×¤µ¤ì¤ì¤Ð¡¢ @c BRANCH-ACTION ¤¬¼Â¹Ô¤µ¤ì¤ë¡£
 
-@c BRANCH ¤ÎºÇ½é¤Î·Á¼°¤Ç¤Ï¡¢@c MAP-NAME ¤Ï @c MAP ¤Ë¸½¤ï¤ì¤ë¤â¤Î¤Ç¤Ê¤¯
-¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤Î¾ì¹ç¡¢@c MAP-NAME ¤Î @c KEYSEQ ¤Î°ì¤Ä¤Ë¹çÃפ¹¤ë¥­¡¼
-Î󤬥¿¥¤¥×¤µ¤ì¤ì¤Ð¡¢ @c BRANCH-ACTION ¤¬¼Â¹Ô¤µ¤ì¤ë¡£
+@c BRANCH ¤ÎÂèÆó¤Î·Á¼°¤Ç¤Ï¡¢¤½¤Î»þÅÀ¤Î¾õÂ֤Τ¤¤º¤ì¤Î @c BRANCH ¤Ë¤â¹çÃ×
+¤·¤Ê¤¤¥­¡¼Î󤬥¿¥¤¥×¤µ¤ì¤ì¤Ð¡¢@c BRANCH-ACTION¤¬¼Â¹Ô¤µ¤ì¤ë¡£
 
-@c BRANCH ¤ÎÆó¤ÄÌܤηÁ¼°¤Ç¤Ï¡¢¤½¤Î»þÅÀ¤Î¾õÂ֤Τ¤¤º¤ì¤Î @c BRANCH ¤Ë¤â
-¹çÃפ·¤Ê¤¤¥­¡¼Î󤬥¿¥¤¥×¤µ¤ì¤ì¤Ð¡¢@c BRANCH-ACTION¤¬¼Â¹Ô¤µ¤ì¤ë¡£
+@c nil ¤Ç»Ï¤Þ¤ë @c BRANCH ¤¬¤Ê¤¯¡¢ÆþÎϤµ¤ì¤¿¥­¡¼Î󤬤½¤Î»þÅÀ¤Ç¤Î¤¤¤º¤ì¤Î
+@c BRANCH ¤Ë¤â¹çÃפ·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ÆþÎϥ᥽¥Ã¥É¤Ï½é´ü¾õÂÖ¤ËÁ«°Ü¤¹¤ë¡£
 
-@c BRANCH ¤Î»°¤ÄÌܤηÁ¼°¤Ç¤Ï¡¢¤¹¤Ù¤Æ¤Î¥­¡¼¤ò½èÍý¤·¤¿¸å¤Ç¤½¤Î¾õÂ֤˰ÜÆ°
-¤·¤¿¾ì¹ç¤Ë @c BRANCH-ACTION ¤¬¼Â¹Ô¤µ¤ì¤ë¡£¤â¤·½é´ü¾õÂ֤Ǥ¢¤ì¤Ð¡¢ÆþÎÏ¥á
-¥½¥Ã¥É¤ÎÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤·¤¿Ä¾¸å¤Ë @c BRANCH-ACTION ¤ò¼Â¹Ô¤¹¤ë¡£
+@c BRANCH ¤ÎÂè»°¤Î·Á¼°¤Ç¤Ï¡¢¤½¤Î¾õÂ֤˰ÜÆ°¤·¤¿»þÅÀ¤Ç @c BRANCH-ACTION
+¤¬¼Â¹Ô¤µ¤ì¤ë¡£¤â¤·½é´ü¾õÂ֤Ǥ¢¤ì¤Ð¡¢ÆþÎϥ᥽¥Ã¥É¤ÎÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤òÀ¸
+À®¤·¤¿»þÅÀ¤Ç @c BRANCH-ACTION ¤ò¼Â¹Ô¤¹¤ë¡£
 
 @verbatim
 BRANCH-ACTION ::= ACTION
 @endverbatim
 
-ÆþÎϥ᥽¥Ã¥É¤Ï¼¡¤ÎÆó¤Ä¤Î¥·¥ó¥Ü¥ë¤Î¥ê¥¹¥È¤ò»ý¤Ä¡£
+ÆþÎϥ᥽¥Ã¥É¤Ï¥·¥ó¥Ü¥ë¤Î¥ê¥¹¥È¤òÆó¤Ä»ý¤Ä¡£
 
 <ul>
 <li> ¥Þ¡¼¥«¥ê¥¹¥È
 
 ¥Þ¡¼¥«¤Ï preediting ¥Æ¥­¥¹¥ÈÃæ¤Ç¤Îʸ»ú°ÌÃÖ¤ò¼¨¤¹¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£@c
-MARK ¥¢¥¯¥·¥ç¥ó¤Ï¥Þ¡¼¥«¤ò¤¢¤ë°ÌÃÖ¤ËÀßÄꤹ¤ë¡£@c MOVE ¤È @c DELETE ¥¢¥¯
-¥·¥ç¥ó¤Ï¥Þ¡¼¥«¤Î°ÌÃÖ¤ò»²¾È¤¹¤ë¡£
+MARK ¥¢¥¯¥·¥ç¥ó¤Ï¥Þ¡¼¥«¤òÆÃÄê¤Î°ÌÃÖ¤ËÀßÄꤹ¤ë¡£@c MOVE ¤È @c DELETE ¥¢
+¥¯¥·¥ç¥ó¤Ï¥Þ¡¼¥«¤Î°ÌÃÖ¤ò»²¾È¤¹¤ë¡£
 
 <li> ÊÑ¿ô¥ê¥¹¥È
 
-ÊÑ¿ô¤ÏÀ°¿ô¤ÎÃͤò»ý¤Ä¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ÃͤÏ@c SET ¥¢¥¯¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀßÄê
-¤µ¤ì¡¢@c SET, @c INSERT, @c IF ¤Ë»²¾È¤µ¤ì¤ë¡£¤¹¤Ù¤Æ¤ÎÊÑ¿ô¤Î½é´üÃͤϠ0 
-¤Ç¤¢¤ë¡£
+ÊÑ¿ô¤ÏÀ°¿ô¤ÎÃͤò»ý¤Ä¥·¥ó¥Ü¥ë¤Ç¤¢¤ë¡£ÃͤÏ@c SET ¥¢¥¯¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀßÄꤵ
+¤ì¡¢@c SET, @c INSERT, @c IF ¤Ë»²¾È¤µ¤ì¤ë¡£¤¹¤Ù¤Æ¤ÎÊÑ¿ô¤Î½é´üÃͤϡʰÅÌÛ
+¤Ë¡Ë 0 ¤Ç¤¢¤ë¡£
 
 </ul>
 
-@c PREDEFINED-SYMBOL ¤Ï¥Þ¡¼¥«¤È¤·¤ÆÍѤ¤¤é¤ì¤¿¾ì¹çÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä¡£
+³Æ @c PREDEFINED-SYMBOL ¤Ï¥Þ¡¼¥«¤È¤·¤ÆÍѤ¤¤é¤ì¤¿¾ì¹çÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä¡£
 
 <ul>
 <li> @c @@0, @c @@1, @c @@2, @c @@3, @c @@4, @c @@5, @c @@6, @c @@7, @c @@8, @c @@9
 
-¤½¤ì¤¾¤ì£°ÈÖÌܤ«¤é£¹ÈÖÌܤΰÌÃÖ
+¤½¤ì¤¾¤ì 0 ÈÖÌܤ«¤é 9 ÈÖÌܤΰÌÃÖ
 
 <li> @c @@<, @c @@=, @c @@>
 
@@ -157,14 +275,10 @@ MARK 
 ¸õÊä¥ê¥¹¥È¤¬ÊѲ½¤¹¤ëºÝ¤ÎÁ°¤È¼¡¤Î°ÌÃÖ
 </ul>
 
-@c PREDEFINED-SYMBOL ¤Ï @c SELECT ¥¢¥¯¥·¥ç¥óÃæ¤Ç¸õÊä¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤È¤·
-¤ÆÍѤ¤¤é¤ì¤¿ºÝÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä¡£
+@c PREDEFINED-SYMBOL ¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ @c SELECT ¥¢¥¯¥·¥ç¥óÃæ¤Ç¸õÊä¤Î¥¤¥ó
+¥Ç¥Ã¥¯¥¹¤È¤·¤ÆÍѤ¤¤é¤ì¤¿ºÝÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä¡£
 
 <ul>
-<li> @c @@0, @c @@1, @c @@2, @c @@3, @c @@4, @c @@5, @c @@6, @c @@7, @c @@8, @c @@9
-
-¸½ºß¤Î¸õÊ䥰¥ë¡¼¥×Ãæ¤Ç¤½¤ì¤¾¤ì£°ÈÖÌܤ«¤é£¹ÈÖÌܤθõÊä
-
 <li> @c @@<, @c @@=, @c @@>
 
 ¸½ºß¤Î¸õÊ䥰¥ë¡¼¥×Ãæ¤Ç¤ÎºÇ½é¤Î¡¢º£¤Î¡¢ºÇ¸å¤Î¸õÊä
@@ -185,6 +299,40 @@ MARK 
 ¤â¤Î¡£
 </ul>
 
+¤Þ¤¿¡¢¤³¤ì¤âÆÃÊ̤ʰÕÌ£¤ò»ý¤Ä¡£
+
+<ul>
+<li> @c @@@
+
+¤½¤Î»þÅÀ¤Ç½èÍý¤µ¤ì¤Æ¤¤¤ë¥­¡¼¤Î¿ô¡£
+
+</ul>
+
+°Ê²¼¤Ï¥µ¥é¥¦¥ó¥É¥Æ¥­¥¹¥È½èÍý¤ËÍѤ¤¤é¤ì¤ë¡£
+
+<ul>
+<li> @c @@-0
+
+¥µ¥é¥¦¥ó¥É¥Æ¥­¥¹¥È¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ì¤Ð -1 ¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤Ð -2 ¡£
+
+<li> @c @@-N
+
+¤³¤³¤Ç @c N ¤ÏÀµ¤ÎÀ°¿ô¤Ç¤¢¤ë¡£¤³¤ÎÊÑ¿ô¤ÎÃͤϡ¢¥×¥ê¥¨¥Ç¥Ã¥ÈÃæ¤Î¸½ºß¤Î°Ì
+ÃÖ¤«¤é @c N Ê¸»úÁ°¤Îʸ»ú¤Ç¤¢¤ë¡£¤â¤·¥×¥ê¥¨¥Ç¥£¥Ã¥ÈÃæ¤ÇÀè¹Ô¤¹¤ëʸ»ú¤¬M
+(M<N) Ê¸»ú¤·¤«¤Ê¤±¤ì¤Ð¡¢¤½¤ÎÃͤÏÆþÎÏ¥¹¥Ý¥Ã¥È¤«¤é¿ô¤¨¤Æ (N-M) Ê¸»úÁ°¤Îʸ
+»ú¤È¤Ê¤ë¡£@c delete ¥¢¥¯¥·¥ç¥ó¤Î°ú¿ô¤È¤·¤ÆÍѤ¤¤é¤ì¤¿¾ì¹ç¡¢¤³¤ÎÊÑ¿ô¤Ïºï
+½ü¤¹¤ëʸ»ú¿ô¤ò»ØÄꤹ¤ë¡£
+
+<li> @c @@+N
+
+¤³¤³¤Ç @c N ¤ÏÀµ¤ÎÀ°¿ô¤Ç¤¢¤ë¡£¤³¤ÎÊÑ¿ô¤ÎÃͤϡ¢¥×¥ê¥¨¥Ç¥Ã¥ÈÃæ¤Î¸½ºß¤Î°Ì
+ÃÖ¤«¤é @c N Ê¸»ú¸å¤Îʸ»ú¤Ç¤¢¤ë¡£¤â¤·¥×¥ê¥¨¥Ç¥£¥Ã¥ÈÃæ¤Ç¸å³¤¹¤ëʸ»ú¤¬M
+(M<N) Ê¸»ú¤·¤«¤Ê¤±¤ì¤Ð¡¢¤½¤ÎÃͤÏÆþÎÏ¥¹¥Ý¥Ã¥È¤«¤é¿ô¤¨¤Æ (N-M) Ê¸»ú¸å¤Îʸ
+»ú¤È¤Ê¤ë¡£@c delete ¥¢¥¯¥·¥ç¥ó¤Î°ú¿ô¤È¤·¤ÆÍѤ¤¤é¤ì¤¿¾ì¹ç¡¢¤³¤ÎÊÑ¿ô¤Ïºï
+½ü¤¹¤ëʸ»ú¿ô¤ò»ØÄꤹ¤ë¡£
+
+</ul>
+
 ³Æ¥¢¥¯¥·¥ç¥ó¤Î°ú¿ô¤È¿¶Éñ¤¤¤Ï°Ê²¼¤ÎÄ̤ꡣ
 
 @verbatim
@@ -202,13 +350,13 @@ CANDIDATES ::= MTEXT | '(' MTEXT * ')'
 
 Âè»°¤Î·Á¼°¤Ï¡¢Ê¸»ú @c INTEGER ¤ò¸½ºß¤Î°ÌÃÖ¤ÎÁ°¤ËÁÞÆþ¤¹¤ë¡£
 
-Âè»Í¤Î·Á¼°¤Ï¡¢@c SYMBOL ¤òÊÑ¿ô¤È¤·¤Æ°·¤¤¡¢¤½¤ÎÃͤ¬Àµ¤·¤¤Ê¸»ú¥³¡¼¥É¤Ç
-¤¢¤ì¤Ð¸½ºß¤Î°ÌÃÖ¤ÎÁ°¤ËÁÞÆþ¤¹¤ë¡£
+Âè»Í¤Î·Á¼°¤Ï¡¢@c SYMBOL ¤òÊÑ¿ô¤È¤·¤Æ°·¤¤¡¢¤½¤ÎÃͤ¬Àµ¤·¤¤Ê¸»ú¥³¡¼¥É¤Ç¤¢
+¤ì¤Ð¸½ºß¤Î°ÌÃÖ¤ÎÁ°¤ËÁÞÆþ¤¹¤ë¡£
 
 Âè¸Þ¡¢ÂèÏ»¤Î·Á¼°¤Ç¤Ï¡¢@c CANDIDATES ¤Ï¸õÊ䥰¥ë¡¼¥×¤òɽ¤·¡¢@c
-CANDIDATES ¤Î³ÆÍ×ÁǤ¬¸õÊä¤òɽ¤¹¡£¤Ä¤Þ¤ê@c CANDIDATES ¤¬ M-text ¤Ç¤¢¤ì
-¤Ð¡¢¸õÊä¤Ï¤½¤ÎM-text Ãæ¤Îʸ»ú¤Ç¤¢¤ê¡¢@c CANDIDATES ¤¬ M-text ¤Î¥ê¥¹¥È
-¤Ç¤¢¤ì¤Ð¡¢¸õÊä¤Ï¤½¤ì¤é¤Î M-text ¤Ç¤¢¤ë¡£
+CANDIDATES ¤Î³ÆÍ×ÁǤ¬¸õÊä¤òɽ¤¹¡£¤Ä¤Þ¤ê@c CANDIDATES ¤¬ M-text ¤Ç¤¢¤ì¤Ð¡¢
+¸õÊä¤Ï¤½¤ÎM-text Ãæ¤Îʸ»ú¤Ç¤¢¤ê¡¢@c CANDIDATES ¤¬ M-text ¤Î¥ê¥¹¥È¤Ç¤¢¤ì
+¤Ð¡¢¸õÊä¤Ï¤½¤ì¤é¤Î M-text ¤Ç¤¢¤ë¡£
 
 ¤³¤ì¤é¤Î·Á¼°¤Ï¸½ºß¤Î°ÌÃ֤ξÁ°¤ËºÇ½é¤Î¸õÊä¤òÁÞÆþ¤¹¤ë¡£ÁÞÆþ¤µ¤ì¤¿Ê¸»úÎó
 ¤Ë¤Ï¡¢¸õÊä¤Î¥ê¥¹¥È¤È¸½ºßÁªÂò¤µ¤ì¤Æ¤¤¤ë¸õÊä¤ò»Ø¤¹¾ðÊó¤¬Éղ䵤ì¤Æ¤¤¤ë¡£
@@ -231,6 +379,7 @@ DELETE ::= '(' 'delete' SYMBOL ')'
 @verbatim
 SELECT ::= '(' 'select' PREDEFINED-SYMBOL ')'
            | '(' 'select' INTEGER ')'
+          | '(' 'select' SYMBOL ')'
 @endverbatim
 
 ¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï¤Þ¤º¡¢¸½ºß¤Î°ÌÃ֤ξÁ°¤Îʸ»ú¤¬¡¢¸õÊä¥ê¥¹¥È¤¬Éղ䵤ì¤Æ
@@ -243,6 +392,9 @@ SELECT ::= '(' 'select' PREDEFINED-SYMBOL ')'
 ÂèÆó¤Î·Á¼°¤Ç¤Ï @c INTEGER ¤Ï¸õÊ䥤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ê¡¢¸õÊä¥ê¥¹¥ÈÃæ¤Î¿·¤·
 ¤¤¸õÊä¤ò»ØÄꤹ¤ë¡£
 
+Âè»°¤Î·Á¼°¤Ç¤Ï @c SYMBOL ¤ÏÀ°¿ô¤ÎÃͤò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤½¤ÎÃͤ¬¸õÊ䥤
+¥ó¥Ç¥Ã¥¯¥¹¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤ë¡£
+
 @verbatim
 SHOW ::= '(show)'
 @endverbatim
@@ -274,25 +426,58 @@ MARK ::= '(' 'mark' SYMBOL ')'
 ¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï @c SYMBOL ¤ò¥Þ¡¼¥«¤È¤·¤Æ¡¢¤½¤ì¤ò¸½ºß¤Î°ÌÃÖ¤ËÀßÄꤹ¤ë¡£
 @c SYMBOL ¤Ï @c PREDEFINED-SYMBOL ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 
+@verbatim
+PUSHBACK :: = '(' 'pushback' INTEGER ')'
+              | '(' 'pushback' KEYSEQ ')'
+@endverbatim
+
+Âè°ì¤Î·Á¼°¤Ï¡¢@c INTEGER ¤ÎÃͤ¬Àµ¤Ê¤é¤ÐºÇ¿·¤Î @c INTEGER ¸Ä¤Î¥­¡¼¥¤¥Ù¥ó
+¥È¤ò¥¤¥Ù¥ó¥È¥­¥å¡¼¤Ëº¹¤·Ì᤹¡£0 ¤Ê¤é¤Ð¤¹¤Ù¤Æ¤Î¥­¡¼¥¤¥Ù¥ó¥È¤òº¹¤·Ì᤹¡£
+
+ÂèÆó¤Î·Á¼°¤Ï¡¢@c KEYSEQ Ãæ¤Î¥­¡¼¤ò¥¤¥Ù¥ó¥È¥­¥å¡¼¤Ëº¹¤·Ì᤹¡£
 
 @verbatim
-PUSHBACK :: = '(pushback INTEGER)'
+POP ::= '(' 'pop' ')'
 @endverbatim
 
-¤³¤Î¥¢¥¯¥·¥ç¥ó¤ÏºÇ¿·¤Î¥­¡¼¥¤¥Ù¥ó¥È¤ò¥¤¥Ù¥ó¥È¥­¥å¡¼¤ËÌ᤹¡£
+¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï¤Þ¤À½èÍý¤µ¤ì¤Æ¤¤¤Ê¤¤ºÇ½é¤Î¥¤¥Ù¥ó¥È¤ò¥¤¥Ù¥ó¥È¥­¥å¡¼¤«¤é
+¼è¤ê½Ð¤·ÇË´þ¤¹¤ë¡£
 
 @verbatim
-UNDO :: = '(undo)'
+UNDO :: = '(' 'undo' [ INTEGER | SYMBOL ] ')'
 @endverbatim
 
-¤³¤Î¥¢¥¯¥·¥ç¥ó¤ÏºÇ¸å¤Î¥­¡¼¥¤¥Ù¥ó¥È¤ò¼è¤ê¾Ã¤¹¡£
+°ú¿ô¤¬Ìµ¤¤¾ì¹ç¡¢¤³¤Î¥¢¥¯¥·¥ç¥ó¤ÏºÇ¿·¤ÎÆó¤Ä¤Î¥­¡¼¥¤¥Ù¥ó¥È¡¢¤¹¤Ê¤ï¤Á¤³¤Î
+¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ°ú¤­µ¯¤³¤µ¤ì¤¿¤â¤Î¤È¤½¤ÎľÁ°¤Î¤â¤Î¡¢¤ò¥­¥ã¥ó¥»¥ë¤¹¤ë¡£
+
+À°¿ôÃͤΰú¿ô NUM ¤¬¤¢¤ë¾ì¹ç¡¢¤½¤ì¤ÏÀµ¤«Éé¤Ç¤¢¤ê 0 ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+Àµ¤Ê¤é¤ÐºÇ¿·¤Î¤â¤Î¤«¤é¿ô¤¨¤Æ NUM ¸ÄÌܤΥ¤¥Ù¥ó¥È¤ò¥­¥ã¥ó¥»¥ë¤¹¤ë¡£Éé¤Ê¤é
+¤ÐºÇ¿·¤Î(- NUM) ¸Ä¤Î¥¤¥Ù¥ó¥È¤ò¥­¥ã¥ó¥»¥ë¤¹¤ë¡£
+
+¥·¥ó¥Ü¥ë¤Î°ú¿ô¤¬¤¢¤ë¾ì¹ç¡¢¤½¤ì¤ÏÀ°¿ô¤Ëµ¢Ã夵¤ì¤Ê¤¯¤Æ¤Ï¤Ê¤é¤º¡¢¤½¤ÎÃͤ¬
+¾åµ­¤ÎÀµ¿ôÃÍ°ú¿ô¤Î¾ì¹ç¤ÈƱÍͤ˼è¤ê°·¤ï¤ì¤ë¡£
+
+@verbatim
+COMMIT :: = '(commit)'
+@endverbatim
+
+¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï¸½ºß¤Î preediting ¥Æ¥­¥¹¥È¤ò¥³¥ß¥Ã¥È¤¹¤ë¡£
+
+@verbatim
+UNHANDLE :: = '(unhandle)'
+@endverbatim
+
+¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï¸½ºß¤Î preediting ¥Æ¥­¥¹¥È¤ò¥³¥ß¥Ã¥È¤·¡¢ºÇ¿·¤Î¥­¡¼¤ò̤
+½èÍý¤È¤·¤ÆÊÖ¤¹¡£
 
 @verbatim
 SHIFT :: = '(' 'shift' STATE-NAME ')'
 @endverbatim
 
-¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï¸½ºß¤Î¾õÂÖ¤ò @c STATE-NAME ¤Ë°ÜÆ°¤µ¤»¤ë¡£ @c
-STATE-NAME ¤Ï @c STATE-LIST ¤Ë¸½¤ï¤ì¤ë¤â¤Î¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+@c STATE-NAME ¤¬ @c t ¤Ê¤é¤Ð¡¢¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï¸½ºß¤Î¾õÂÖ¤ò°ì¤ÄÁ°¤Î¾õÂÖ
+¤ËÁ«°Ü¤µ¤»¤ë¡£¤½¤¦¤Ç¤Ê¤±¤ì¤Ð @c STATE-NAME ¤Çɽ¤µ¤ì¤ë¾õÂÖ¤ËÁ«°Ü¤µ¤»¤ë¡£
+¸å¼Ô¤Î¾ì¹ç¤Ë¤Ï¡¢@c STATE-NAME ¤Ï @c STATE-LIST ¤Ë¸½¤ï¤ì¤ë¤â¤Î¤Ç¤Ê¤¯¤Æ¤Ï
+¤Ê¤é¤Ê¤¤¡£
 
 @verbatim
 CALL ::= '(' 'call' MODULE-NAME FUNCTION ARG * ')'
@@ -315,43 +500,40 @@ ARG ::= INTEGER | SYMBOL | MTEXT | PLIST
 *) ·¿¤ÎÃͤòÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
 
 @verbatim
-SET ::= '(' OPERAND SYMBOL1 [ INTEGER | SYMBOL2 ] ')'
+SET ::= '(' CMD SYMBOL1 EXPRESSION ')'
+
+CMD ::= 'set' | 'add' | 'sub' | 'mul' | 'div'
+
+EXPRESSION ::= INTEGER | SYMBOL2 | '(' OPERAND EXPRESSION * ')'
+
+OPERAND ::= '+' | '-' | '*' | '/' | '|' | '&' | '!'
+            | '=' | '<' | '>' | '<=' | '>='
 
-OPERAND ::= 'set' | 'add' | 'sub' | 'mul' | 'div'
 @endverbatim
 
 ¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï @c SYMBOL1 ¤È @c SYMBOL2 ¤òÊÑ¿ô¤È¤·¤Æ¡¢@c SYMBOL1 ¤Î
 Ãͤò°Ê²¼¤Î¤è¤¦¤ËÀßÄꤹ¤ë¡£
 
-@c OPERAND ¤¬ 'set' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤϠ@c INTEGER ¤Þ¤¿¤Ï @c
-SYMBOL2 ¤ËÀßÄꤵ¤ì¤ë¡£
+@c CMD ¤¬ 'set' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c EXPRESSION ¤ÎÃͤËÀßÄꤹ¤ë¡£
 
-@c OPERAND ¤¬ 'add' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c INTEGER ¤Þ¤¿¤Ï @c
-SYMBOL2 ¤ÎÃͤÀ¤±Áý¤ä¤¹¡£
+@c CMD ¤¬ 'add' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c EXPRESSION ¤ÎÃͤÀ¤±Áý¤ä¤¹¡£
 
-@c OPERAND ¤¬ 'sub' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c INTEGER ¤Þ¤¿¤Ï @c
-SYMBOL2 ¤ÎÃͤÀ¤±¸º¤é¤¹¡£
+@c CMD ¤¬ 'sub' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c EXPRESSION ¤ÎÃͤÀ¤±¸º¤é¤¹¡£
 
-@c OPERAND ¤¬ 'mul' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤˠ@c INTEGER ¤Þ¤¿¤Ï @c
-SYMBOL2 ¤ÎÃͤò³Ý¤±¤ë¡£
+@c CMD ¤¬ 'mul' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c EXPRESSION ¤ÎÃͤò³Ý¤±¤¿¤â
+¤Î¤Ë¤¹¤ë¡£
 
-@c OPERAND ¤¬ 'div' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c INTEGER ¤Þ¤¿¤Ï @c
-SYMBOL2 ¤ÎÃͤdzä¤ë¡£
+@c CMD ¤¬ 'div' ¤Ê¤é¤Ð¡¢@c SYMBOL1 ¤ÎÃͤò @c EXPRESSION ¤ÎÃͤdzä¤Ã¤¿¤â
+¤Î¤Ë¤¹¤ë¡£
 
 @verbatim
-IF ::= '(' 'if' CONDITION ACTION-LIST1 ACTION-LIST2 * ')'
+IF ::= '(' CONDITION ACTION-LIST1 ACTION-LIST2 ? ')'
 
-CONDITION ::= '(' OPERAND VAL1 VAL2 ')'
+CONDITION ::= [ '=' | '<' | '>' | '<=' | '>=' ] EXPRESSION1 EXPRESSION2
 
 ACTION-LIST1 ::= '(' ACTION * ')'
 
 ACTION-LIST2 ::= '(' ACTION * ')'
-
-OPERAND ::= '=' '<' '>'
-
-VAL1 ::= [ INTEGER1 | SYMBOL1 ]
-
-VAL2 ::= [ INTEGER2 | SYMBOL2 ]
 @endverbatim
 
 ¤³¤Î¥¢¥¯¥·¥ç¥ó¤Ï¡¢ @c CONDITION ¤¬¿¿¤Ç¤¢¤ì¤Ð @c ACTION-LIST1 ¤ò¼Â¹Ô¤·¡¢
@@ -359,7 +541,12 @@ VAL2 ::= [ INTEGER2 | SYMBOL2 ]
 
 @c SYMBOL1 ¤È @c SYMBOL2 ¤ÏÊÑ¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¡£
 
-@ifnot FOR-MAN
+@verbatim
+COND ::= '(' 'cond' [ '(' EXPRESSION ACTION * ') ] * ')'
+@endverbatim
+
+¤³¤Î¥¢¥¯¥·¥ç¥ó¤ÏÂбþ¤¹¤ë @c EXPRESSION ¤¬ 0 ¤Ç¤Ê¤¤Ãͤò¤È¤ëºÇ½é¤Î¥¢¥¯¥·¥ç
+¥ó @c ACTION ¤ò¼Â¹Ô¤¹¤ë¡£
 
 @section im-seealso SEE ALSO
 
@@ -368,7 +555,7 @@ VAL2 ::= [ INTEGER2 | SYMBOL2 ]
 */
 
 /* 
-Copyright (C) 2003, 2004
+Copyright (C) 2003, 2004, 2005
   National Institute of Advanced Industrial Science and Technology (AIST)
   Registration Number H15PRO112
 
@@ -387,8 +574,8 @@ Lesser General Public License for more details.
 
 You should have received a copy of the GNU Lesser General Public
 License along with the m17n library; if not, write to the Free
-Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307, USA.
+Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
 */
 
 /* Local Variables: */