From: nisikimi Date: Fri, 3 Apr 2009 00:27:53 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: XML-BEFORE-XEX~25 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=7f169921ba9bdc642baf4061225c5df43495071c;p=m17n%2Fm17n-db.git *** empty log message *** --- diff --git a/FORMATS/IM.ja.txt b/FORMATS/IM.ja.txt index 00d102a..82af29e 100644 --- a/FORMATS/IM.ja.txt +++ b/FORMATS/IM.ja.txt @@ -1,552 +1,1751 @@ -/* Copyright (C) 2003, 2004, 2005 +/* Copyright (C) 2003, 2004, 2005, 2009 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H15PRO112 See the end for copying conditions. */ -/* sections for example found in English vesion omitted */ +/***en -/***ja +@page mdbIM インプットメソッド -@page mdbIM ¥¤¥ó¥×¥Ã¥È¥á¥½¥Ã¥É +@section im-description 説明 -@section im-description ÀâÌÀ - -m17n ¥é¥¤¥Ö¥é¥ê¤Ï¡¢m17n ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éưŪ¤Ë¥í¡¼¥É¤Ç¤­¤ëÆþÎϥ᥽¥Ã¥É -¥É¥é¥¤¥Ð¤òÄ󶡤·¤Æ¤¤¤ë¡£(@ref m17nInputMethod »²¾È¡£ @latexonly +m17n ライブラリは、m17n データベースから動的にロードできる入力メソッド +ドライバを提供している。(@ref m17nInputMethod 参照。 @latexonly (P.\pageref{group__m17nInputMethod}) @endlatexonly). -¤³¤³¤Ç¤ÏÆþÎϥ᥽¥Ã¥ÉÄêµÁ¤Î¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È¤òÀâÌÀ¤¹¤ë¡£ +ここでは入力メソッド定義のデータフォーマットを説明する。 -@section im-format ʸˡ¤È°ÕÌ£ +@section im-format 文法と意味 -°Ê²¼¤Î¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤è¤Ã¤ÆÆþÎϥ᥽¥Ã¥É¤¬ÄêµÁ¤µ¤ì¤ë¡£¥É¥é¥¤¥Ð¤Ï¥Õ¥¡ -¥¤¥ë¤ä¥¹¥È¥ê¡¼¥à¤«¤éÄêµÁ¤ò¥í¡¼¥É¤·¡¢¥×¥í¥Ñ¥Æ¥£¥ê¥¹¥È¤Î·Á¼°¤ËÊÑ´¹¤¹¤ë¡£ +以下に RelaxNG で書かれた入力メソッド定義用スキーマを示す。(このスキー +マファイルは m17n-db-xml/MIM/mim.rng にある。) ドライバはファイルやス +トリームから定義をロードし、プロパティリストの形式に変換する。 @verbatim -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 ')' + + + + + + + + + + + + + + + + + + + + + + + + + + + +@endverbatim -VARIABLE-DECLARATION ::= - '(' VAR-NAME [ MTEXT-OR-GETTEXT | nil ] VALUE VALUE-CANDIDATE * ')' +入力メソッドのトップレベルノードは <input-method> というタグを持つ。 + +<description> エレメントは、<input-method>, +<variable>, <command> 中に現れることができ、その内容は親要 +素を説明するテキストである。<get-text> エレメントの内容は、現在の +ロケールに従って "gettext" によって翻訳される(翻訳文が提供されている場 +合)。 + +<title> エレメントの内容は、この入力メソッドが有効な時スクリーン +上に表示されるテキストである。 + +#if EXAMPLE_CODE + + + bo + ewts + + Tibetan input method based on EWTS. +This implementation is based on THDL Extended Wylie Transliteration Scheme +Version 2.0 <http://www.thdl.org/collections/langling/ewts/ewts.php>. + ཀ + : : +#endif + +<variable-list> はこの入力メソッドで使用される変数を宣言する。 +<command-list> はこの入力メソッドで使用されるコマンドを宣言する。 +<module-list> はこの入力メソッドで使用される外部モジュールを宣言 +する。<macro-list> はこの入力メソッドで使用されるマクロを宣言する。 +<map-list> はこの入力メソッドで使用されるマップを宣言する。 入力 +メソッドがそれ単体で利用されることがなく常に他の入力メソッドに読み込ま +れて用いられる場合には省略できる。<state-list> はこの入力メソッド +で使用されるステートを宣言する。 入力メソッドがそれ単体で利用されること +がなく常に他の入力メソッドに読み込まれて用いられる場合には省略できる。 + +@subsection im-declarations 入力メソッドの宣言 -COMMAND-DECLARATION ::= - '(' CMD-NAME [ MTEXT-OR-GETTEXT | nil ] KEYSEQ * ')' +@verbatim -MTEXT-OR-GETTEXT ::= - [ MTEXT | '(' '_' MTEXT ')'] + + + + + + t + [a-z]{2,3} + + + + + + nil + + + + + + [^n][^i][^l] + .{1,2} + ....+ + + + + + + + + + + + + [0-9]+\.[0-9]+\.[0-9]+ + + + -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 ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤Î¸À¸ì¤È̾Á°¤ò»ØÄꤹ¤ë¡£ +<tags> エレメントは、この入力メソッドが対象とする言語や入力メソッ +ド自体の名称を指定する。"global.mimx" という特別なファイルがあり、共通 +の変数やコマンドが定義されている。入力メソッドドライバは毎回このファイ +ルをロードし、他の入力メソッドはここで定義された変数やコマンドを継承で +きる。 + +<language> エレメントの内容が @c t である場合、この入力メソッドは +複数の言語で利用される。それ以外の場合には、エレメントの内容はISO639-1 +あるいは ISO639-2 に規定された言語の名称を表す2または3文字のコードで +なくてはならない。 + +<name> エレメントの内容が @c nil である場合、この入力メソッドは単 +独で用いられるものではなく、他の入力メソッドから利用することを想定して +いる。この場合、入力メソッドを特定するために <extra-id> エレメン +トが必須である。<name> エレメントの内容が @c nil でない場合、 +<extra-id> エレメントは任意(optional)である。 + +#if EXAMPLE_CODE + + bo + ewts + +#endif + +#if EXAMPLE_CODE + + t + nil + zh-util + +#endif + +<m17n-version> エレメント(任意)は、この入力メソッドが必要とする +m17n ライブラリの最小バージョンを指定する。フォーマットは "X.Y.Z" であ +り、X はメジャーバージョン、 Y はマイナーバージョン、Z はパッチレベルを +表す。 + +@subsection im-setups 入力メソッドの設定 -@c LANGUAGE ¤¬ @c t ¤Î¾ì¹ç¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥É¤ÏÊ£¿ô¤Î¸À¸ì¤ÇÍøÍѤµ¤ì¤ë¡£ +@verbatim -@c NAME ¤¬ @c nil ¤Î¾ì¹ç¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥É¤ÏñÆȤÇÍѤ¤¤é¤ì¤ë¤â¤Î¤Ç¤Ï¤Ê -¤¯¡¢Â¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤éÍøÍѤ¹¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¡£¤³¤Î¾ì¹ç¡¢ÆþÎÏ¥á -¥½¥Ã¥É¤òÆÃÄꤹ¤ë¤¿¤á¤Ë @c EXTRA-ID ¤¬É¬ÍפǤ¢¤ë¡£ + + + + + + + + + + + + + + + + + + string + + + + symbol + + + + integer + + + + + + + + + + + + + + string + + + + symbol + + + + integer + + + + + + + + + + + + + + -@c VERSION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤¬É¬ÍפȤ¹¤ë m17n ¥é¥¤¥Ö¥é¥ê¤ÎºÇ¾®¥Ð¡¼¥¸¥ç -¥ó¤ò»ØÄꤹ¤ë¡£¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï "XX.YY.ZZ" ¤Ç¤¢¤ê¡¢XX ¤Ï¥á¥¸¥ã¡¼¥Ð¡¼¥¸¥ç -¥ó¡¢ YY ¤Ï¥Þ¥¤¥Ê¡¼¥Ð¡¼¥¸¥ç¥ó¡¢ZZ ¤Ï¥Ñ¥Ã¥Á¥ì¥Ù¥ë¤òɽ¤¹¡£ +@endverbatim -@c DESCRIPTION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤ÎÀâÌÀ¤ò @c MTEXT-OR-GETTEXT ¤Ç»ØÄꤹ -¤ë¡£¤â¤·¤³¤ì¤¬£²ÈÖÌܤηÁ¼°¤ò¼è¤Ã¤Æ¤¤¤ì¤Ð¡¢ @c MTEXT ¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Ë -½¾¤Ã¤Æ "gettext" ¤Ë¤è¤Ã¤ÆËÝÌõ¤µ¤ì¤ë¡ÊËÝÌõʸ¤¬Ä󶡤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡Ë¡£ +<variable-list> はこの入力メソッドで使用される変数を宣言する。 + +変数をデフォルト値に初期化したり、ユーザがカスタマイズしたりする場合に +は、ここで宣言されなくてはならない。この宣言は二通りに利用される。一つ +めは新しい変数を導入するためであり、この場合 <variable> 中の +<value> エレメントは省略できない。もう一つは "global.mimx" で宣言 +された変数を継承し、違ったデフォルト値を指定したり、この入力メソッド用 +にカスタマイズ可能にしたりするためである。この場合には <value> は +省略できる。 + +各 <variable> は一つの変数を宣言し、変数は属性 "id" によって参照 +される。すべての変数は暗黙のうちに整数値0に初期化されている。 +<insert> アクションは M-text である <value> を参照する。シ +ンボルである <value> は直接参照されず、ライブラリが暗黙的に使用す +る。(e.g. candidates-charset). 整数値である <value> は、 +<set>, <add>, <sub>, <mul>, <div> アクショ +ンによって設定、変更、参照され、<insert>, <select>, +<undo>, <if>, <cond> アクションに参照される。 + +<variable-value-candidate> は変数が取り得る値のリストである。 +<c-value> は可能な値の一つを表しており、M-text かシンボルか整数値 +である。 + +<c-range> は変数が取り得る整数値の範囲を示すものであり、 +<c-value> と併用できる。属性 "from" は変数のとる最小値を、"to" が +最大値を示す。 + +#if EXAMPLE_CODE + + + + Flag to tell whether or not to generate precomposed characters. + If 1, generate precomposed characters if available (e.g. "ྲྀ"(U+0F76). + If 0, generate only decomposed characters (e.g. "ྲྀ" (U+0FB2 U+0F80). + + 0 + + 0 + 1 + + + +#endif + +このコードは、変数 "precomposed" を宣言している。取り得る値は 0 か1 で +あり、初期値は 0 である。 -@c TITLE-TEXT ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤¬Í­¸ú¤Ê»þ¡¢¥¹¥¯¥ê¡¼¥ó¾å¤Ëɽ¼¨¤µ¤ì¤ë¥Æ -¥­¥¹¥È¤Ç¤¢¤ë¡£ +@verbatim -"global.mim" ¤È¤¤¤¦ÆÃÊ̤ʥե¡¥¤¥ë¤¬¤¢¤ê¡¢¶¦Ä̤¹¤ëÊÑ¿ô¤ä¥³¥Þ¥ó¥É¤¬ÄêµÁ¤µ -¤ì¤Æ¤¤¤ë¡£ÆþÎϥ᥽¥Ã¥É¥É¥é¥¤¥Ð¤ÏËè²ó¤³¤Î¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¡¢Â¾¤ÎÆþÎÏ¥á -¥½¥Ã¥É¤Ï¤³¤³¤ÇÄêµÁ¤µ¤ì¤¿ÊÑ¿ô¤ä¥³¥Þ¥ó¥É¤ò·Ñ¾µ¤Ç¤­¤ë¡£ + + predefined + + + handled-keys + predefined-surround-text-flag + @.+ + + + -@c VARIABLE-DECLARATION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤Ç»ÈÍѤµ¤ì¤ëÊÑ¿ô¤òÀë¸À¤¹¤ë¡£ -ÊÑ¿ô¤ò¥Ç¥Õ¥©¥ë¥ÈÃͤ˽é´ü²½¤·¤¿¤ê¡¢¥æ¡¼¥¶¤¬¥«¥¹¥¿¥Þ¥¤¥º¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë -¤Ï¡¢¤³¤³¤ÇÀë¸À¤µ¤ì¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤ÎÀë¸À¤ÏÆóÄ̤ê¤ËÍøÍѤµ¤ì¤ë¡£°ì¤Ä -¤á¤Ï¿·¤·¤¤ÊÑ¿ô¤òƳÆþ¤¹¤ë¤¿¤á¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç @c VALUE ¤Ï¾Êά¤Ç¤­¤Ê¤¤¡£ -¤â¤¦°ì¤Ä¤Ï "global.mim" ¤ÇÀë¸À¤µ¤ì¤¿ÊÑ¿ô¤ò·Ñ¾µ¤·¡¢°ã¤Ã¤¿¥Ç¥Õ¥©¥ë¥ÈÃͤò -»ØÄꤷ¤¿¤ê¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥ÉÍѤ˥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ë¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ç¤¢¤ë¡£ -¤³¤Î¾ì¹ç¤Ë¤Ï @c VALUE ¤Ï¾Êά¤Ç¤­¤ë¡£ +@endverbatim -@c COMMAND-DECLARATION ¤Ï¤³¤ÎÆþÎϥ᥽¥Ã¥É¤Ç»ÈÍѤµ¤ì¤ë¥³¥Þ¥ó¥É¤òÀë¸À¤¹¤ë¡£ -¥³¥Þ¥ó¥É¤ò¥Ç¥Õ¥©¥ë¥È¥­¡¼¥·¡¼¥±¥ó¥¹¤Ë³ä¤êÅö¤Æ¤¿¤ê¡¢¥æ¡¼¥¶¤¬¥«¥¹¥¿¥Þ¥¤¥º -¤·¤¿¤ê¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤³¤ÇÀë¸À¤µ¤ì¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£@c -VARIABLE-DECLARATION ƱÍÍ¡¢¤³¤ÎÀë¸À¤ÏÆóÄ̤ê¤ËÍøÍѤµ¤ì¤ë¡£°ì¤Ä¤á¤Ï¿·¤·¤¤ -¥³¥Þ¥ó¥É¤òƳÆþ¤¹¤ë¤¿¤á¤Ç¤¢¤ê¡¢¤³¤Î¾ì¹ç @c KEYSEQ ¤Ï¾Êά¤Ç¤­¤Ê¤¤¡£¤â¤¦°ì -¤Ä¤Ï "global.mim" ¤ÇÀë¸À¤µ¤ì¤¿¥³¥Þ¥ó¥É¤ò·Ñ¾µ¤·¡¢°ã¤Ã¤¿¥­¡¼¥Ð¥¤¥ó¥Ç¥£¥ó -¥°¤ò»ØÄꤷ¤¿¤ê¡¢¤³¤ÎÆþÎϥ᥽¥Ã¥ÉÍѤ˥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ë¤·¤¿¤ê¤¹¤ë¤¿¤á¤Ç -¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï @c KEYSEQ ¤Ï¾Êά¤Ç¤­¤ë¡£ +Predefined-variable は属性 "type" の値が "predefiend" である変数である。 +属性 "id" の値が "handled-keys" であるとき、変数の値はその時点で処理さ +れているキーの数である。属性 "id" の値が +"predefined-surround-text-flag" であるとき、変数の値はサラウンドテキス +トがサポートされていれば -1 、そうでなければ -2 である。 -@verbatim -MODULE-LIST ::= '(' 'module' MODULE * ')' -MODULE ::= '(' MODULE-NAME FUNCTION * ')' +#if EXAMPLE_CODE + +#endif + +このコードはその時点で処理されているキーの数を参照する。 +@verbatim -MODULE-NAME ::= SYMBOL + + + + + + command-.* + + + + + + + + + + -FUNCTION ::= SYMBOL @endverbatim -³Æ @c MODULE ¤Ï³°Éô¥â¥¸¥å¡¼¥ë (ưŪ¥é¥¤¥Ö¥é¥ê) ¤Î̾Á°¤È¤½¤Î¥â¥¸¥å¡¼¥ë¤¬ -¸ø³«¤·¤Æ¤¤¤ë´Ø¿ô̾¤òÀë¸À¤¹¤ë¡£@c FUNCTION ¤¬ "init" ¤È¤¤¤¦Ì¾Á°¤Ç¤¢¤ì¤Ð¡¢ -¤³¤ÎÆþÎϥ᥽¥Ã¥ÉÍѤÎÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤¬À¸À®¤µ¤ì¤ëºÝ¤Ë¡¢¥Ç¥Õ¥©¥ë¥È¤Î°ú¿ô -(@c CALL ¤ÎÀỲ¾È) ¤Î¤ß¤È¤È¤â¤Ë¸Æ¤Ð¤ì¤ë¡£ @c FUNCTION ¤¬ "fini" ¤È¤¤¤¦ -̾Á°¤ò»ý¤Æ¤Ð, ÆþÎÏ¥³¥ó¥Æ¥¯¥¹¥È¤¬Ç˲õ¤µ¤ì¤ëºÝ¤Ë¡¢¥Ç¥Õ¥©¥ë¥È¤Î°ú¿ô¤Î¤ß¤È -¤È¤â¤Ë¸Æ¤Ð¤ì¤ë¡£ +<command-list> は、この入力メソッドで使用されるコマンドを宣言する。 +コマンドをデフォルトキーシーケンスに割り当てたり、ユーザがカスタマイズ +したりする場合には、ここで宣言されなくてはならない。@c +<variable-list>, 同様、この宣言は二通りに利用される。一つめは新し +いコマンドを導入するためであり、この場合 <command> 中の +<keyseq> エレメントは省略できない。もう一つは "global.mimx" で宣 +言されたコマンドを継承し、違ったキーバインディングを指定したり、この入 +力メソッド用にカスタマイズ可能にしたりするためである。この場合には +<keyseq> は省略可能である。 + +各 <command> は一つのコマンドを宣言し、コマンドは属性 "id" によっ +て参照される。 + +#if EXAMPLE_CODE + + + + Commit + Commit the preedit text + + Return + Linefeed + + +#endif @verbatim -MACRO-LIST ::= MACRO-INCLUSION ? '(' 'macro' MACRO * ')' MACRO-INCLUSION ? -MACRO ::= '(' MACRO-NAME MACRO-ACTION * ')' + + + + + + module-.* + + + + + + function-.* + + + + + + + -MACRO-NAME ::= SYMBOL +@endverbatim -MACRO-ACTION ::= ACTION +各 <command> エレメントは一つの外部モジュール (動的ライブラリ)を +宣言し、属性 "id" は外部モジュールの名前を表す。 + +<function> エレメントはモジュールによってエクスポートされている関 +数名を示す。 + +属性 "id" の値が "function-init" であれば、その関数はこの入力メソッド用 +の入力コンテクストが生成される際に、デフォルトの引数 (<call> の節 +参照) のみとともに呼ばれる。 "function-fini" であれば、 入力コンテクス +トが破壊される際に、デフォルトの引数のみとともに呼ばれる。 + +#if EXAMPLE_CODE + + + + + + + + + + +#endif + +このコードは外部モジュール "module-libmimx-anthy" を宣言する。この外部 +モジュール は6つの関数をエクスポートしている。 -TAGS ::= `(` LANGUAGE NAME EXTRA-ID ? `)` +@verbatim -MACRO-INCLUSION ::= '(' 'include' TAGS 'macro' MACRO-NAME ? ')' + + + + + + macro-.* + + + + + + @endverbatim -@c MACRO-INCLUSION ¤Ï¡¢@c TAGS ¤Ç»ØÄꤵ¤ì¤ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤é¥Þ¥¯¥í¤ò -Æɤ߹þ¤à¡£@c MACRO-NAME ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢Á´¤Æ¤Î¥Þ¥¯¥í¤òÆɤࡣ +<macro-list> はこの入力メソッドで使用されるマクロを宣言する。 +<macro> エレメントは複数の <action> をまとめてそれに名前を付ける。 +属性 "id" が <macro> の名前であり、この属性によってマクロを参照する。 + +#if EXAMPLE_CODE + + + + + + + : : ;; more s + + +#endif + +このコードはマクロ "macro-forward" を宣言する。 @verbatim -MAP-LIST ::= MAP-INCLUSION ? '(' 'map' MAP * ')' MAP-INCLUSION ? -MAP ::= '(' MAP-NAME RULE * ')' + + + + + + -MAP-NAME ::= SYMBOL +@endverbatim -RULE ::= '(' KEYSEQ MAP-ACTION * ')' +マーカは preediting テキスト中での文字位置を示すシンボルである。 +<mark-current-position> はマーカを特定の位置に設定する。 +<move-to-marker> と <delete-to-marker> はマーカの位置を参照 +する。 -KEYSEQ ::= MTEXT | '(' [ SYMBOL | INTEGER ] * ')' +@verbatim -MAP-INCLUSION ::= '(' 'include' TAGS 'map' MAP-NAME ? ')' + + + + @[0-9] + + @first + @current + @last + @previous + @next + @previous_candidate_list + @next_candidate_list + + + @endverbatim -ÆþÎϥ᥽¥Ã¥É¤¬¤½¤ìñÂΤÇÍøÍѤµ¤ì¤ë¤³¤È¤¬¤Ê¤¯¾ï¤Ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤ËÆÉ -¤ß¹þ¤Þ¤ì¤ÆÍѤ¤¤é¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢@c MAP-LIST ¤Ï¾Êά¤Ç¤­¤ë¡£ +predefined-marker は @@ で始まるマーカである。 @@0, @@1, ... , @@9は、 +それぞれ 0番目, 1番目, ... , 9番目の位置を示す。 +@@previous_candidate_list 候補リストが変化する前の位置、 +@@next_candidate_list は候補リストが変化する際の次の位置を示す。 + +#if EXAMPLE_CODE + +#endif + +このコードは、バッファの最初の位置と現在の位置の間の文字を削除する。 -@c MAP-NAME ÄêµÁÃæ¤Î @c SYMBOL ¤Ï¡¢ @c t ¤¢¤ë¤¤¤Ï @c nil ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê -¤é¤Ê¤¤¡£ +@verbatim + + + + [^@].* + + -@c KEYSEQ ÄêµÁÃæ¤Î @c MTEXT ¤Ï¡¢¥­¡¼¥Ü¡¼¥É¤«¤éÀ¸À®¤Ç¤­¤ëʸ»ú¤Ç¹½À®¤µ¤ì -¤ë¡£¤¹¤Ê¤ï¤Á @c MTEXT ¤ÏÄ̾ï ASCII ʸ»ú¤Î¤ß¤ò´Þ¤à¡£¤·¤«¤·¡¢ÆþÎϥ᥽¥Ã¥É -¤¬¤¿¤È¤¨¤ÐÀ¾¥è¡¼¥í¥Ã¥ÑÍÑ¥­¡¼¥Ü¡¼¥É¤ò»È¤¦¤³¤È¤òÁÛÄꤷ¤¿¤â¤Î¤Ç¤¢¤ì¤Ð¡¢@c -MTEXT ¤Ï Latin-1 ʸ»ú¤ò´Þ¤ó¤Ç¤â¤è¤¤¡£ +@endverbatim -@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) ¤È¤Ê¤ë¡£ +User-defined-marker は @@ で始まってはならない。 -@c KEYSEQ ÄêµÁÃæ¤Î @c INTEGER ¤Ï¡¢Í­¸ú¤Êʸ»ú¥³¡¼¥É¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ +#if EXAMPLE_CODE + +#endif -@c MAP-INCLUSION ¤Ï¡¢@c TAGS ¤Ç»ØÄꤵ¤ì¤ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤é¥Þ¥Ã¥×¤òÆÉ -¤ß¹þ¤à¡£@c MAP-NAME ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢Á´¤Æ¤Î¥Þ¥Ã¥×¤òÆɤࡣ +このコードは、マーカをユーザ定義の位置 T へ移動する。 @verbatim -MAP-ACTION ::= ACTION -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' | '@-N' | '@+N' @endverbatim -@verbatim -STATE-LIST ::= STATE-INCUSION ? '(' 'state' STATE * ')' STATE-INCUSION ? +<predefined-nth-previous-or-following-character> エレメントは、プ +リエデットバッファ中の1文字を指定する。 -STATE ::= '(' STATE-NAME [ STATE-TITLE-TEXT ] BRANCH * ')' +属性 "position" の値が負の整数 @c -N である場合、 +<predefined-nth-previous-or-following-character> エレメントは、プ +リエデット中の現在の位置から @c N 文字前の文字である。もしプリエディッ +ト中で先行する文字がM (M +#endif -BRANCH ::= '(' MAP-NAME BRANCH-ACTION * ')' - | '(' nil BRANCH-ACTION * ')' - | '(' t BRANCH-ACTION * ')' +このコードは直前の文字を意味する。 + +@verbatim + + + @[0-9] + @first + @current + @last + @previous + @next + @previous_candidate_list + @next_candidate_list + + -STATE-INCLUSION ::= '(' 'include' TAGS 'state' STATE-NAME ? ')' @endverbatim -ÆþÎϥ᥽¥Ã¥É¤¬¤½¤ìñÂΤÇÍøÍѤµ¤ì¤ë¤³¤È¤¬¤Ê¤¯¾ï¤Ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤ËÆÉ -¤ß¹þ¤Þ¤ì¤ÆÍѤ¤¤é¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢@c STATE-LIST ¤Ï¾Êά¤Ç¤­¤ë¡£ +Predefined-selector は候補グループ中での位置を示し、<select> エレ +メント中で用いられる。@@0, @@1, ... , @@9は、それぞれ 0番目, 1番目, +... , 9番目の位置を指す。@@previous は前の候補を指す。もし今の候補が今 +の候補グループ中での最初のものであれば、前の候補グループの最後の候補を +指す。@@next は次の候補を指す。もし今の候補が今の候補グループ中での最後 +のものであれば、次の候補グループの最初の候補を指す。 +@@previous_candidate_list と@@next_candidate_list は、それぞれ前と後の +候補グループ中で、今の候補と同じ候補インデックスを持つものを指す。 -@c STATE-INCLUSION ¤Ï¡¢@c TAGS ¤Ç»ØÄꤵ¤ì¤ë¾¤ÎÆþÎϥ᥽¥Ã¥É¤«¤é¥¹¥Æ¡¼¥È -¤òÆɤ߹þ¤à¡£@c STATE--NAME ¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥È¤òÆÉ -¤à¡£ +#if EXAMPLE_CODE + + as below. +Note that this is just an example, and it ignores such important key +as Backspace. + +@verbatim + .. +"拼" + + + + + + + : : + + + + + + 被北备背悲辈杯倍贝碑... ... + + 好号毫豪浩耗皓嚎昊郝... ... + + 经京精境警竟静惊景敬... ... + + 你呢尼泥逆倪匿拟腻妮... ... + + + + + : : + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@endverbatim + +@elseif FOR-LATEX +@latexonly +\begin{center} +\fbox{This example is readable only in the documentation of HTML version.} +\end{center} +@endlatexonly +@endif -¤³¤Î¥¢¥¯¥·¥ç¥ó¤ÏÂбþ¤¹¤ë @c EXPRESSION ¤¬ 0 ¤Ç¤Ê¤¤Ãͤò¤È¤ëºÇ½é¤Î¥¢¥¯¥·¥ç -¥ó @c ACTION ¤ò¼Â¹Ô¤¹¤ë¡£ +@endif @section im-seealso SEE ALSO @@ -579,5 +1778,5 @@ Boston, MA 02110-1301, USA. */ /* Local Variables: */ -/* coding: euc-jp */ +/* coding: utf-8 */ /* End: */ diff --git a/FORMATS/IM.txt b/FORMATS/IM.txt index 465f5db..85cd28d 100644 --- a/FORMATS/IM.txt +++ b/FORMATS/IM.txt @@ -674,15 +674,15 @@ value may contain Latin-1 characters. The content of the element <key-event> must be the return value of the minput_event_to_key () function. Under the X window system, you can -quickly check the value using the xev command. For example, the +quickly check the value using the @c xev command. For example, the return key, the backspace key, and the 0 key on the keypad are -represented as Return, BackSpace, KP_0 respectively. If the shift, +represented as @c Return, @c BackSpace, @c KP_0 respectively. If the shift, control, meta, alt, super, and hyper modifiers are used, they are represented by the S- , C- , M- , A- , s-, and H- prefixes respectively in this order. Thus, "return with shift with meta with -hyper" is S-M-H-Return. Note that "a with shift" .. "z with shift" +hyper" is @c S-M-H-Return. Note that "a with shift" .. "z with shift" are represented simply as A .. Z . Thus "a with shift with meta with -hyper" is M-H-A. +hyper" is @c M-H-A. The content of the element <character-code> must be a valid character code. @@ -759,7 +759,7 @@ This code calls command "command-start". @endverbatim -The element <action>s appear in <rule>s. +<action>s appear in <rule>s. The element <show-candidates> instructs the input method driver to display a candidate list associated with the string before the current @@ -924,7 +924,7 @@ position and the character position. -3 #endif -This code deletes 3 characters before the current position in the buffer. +This code deletes 3 characters before the current position. The element <delete-n-characters> treats the value of the attribute "n" as the number of characters to be deleted, and executes the @@ -947,7 +947,7 @@ This code deletes one following character. - + variable @@ -988,17 +988,20 @@ These code selects the previous or the first candidate respectively. @endverbatim -These two <action>s moves marker positions. The element -<move-to-marker> makes the marker position to be the new current -position. The element <move-to-character-position> treats its -content integer value as a character position, and makes that position -to be the new current position. +These two <action>s move the current position. The element +<move-to-marker> moves the current position to the position of +the specified marker. The element <move-to-character-position> +treats its content integer value as a character position, and moves +the current position there. #if EXAMPLE_CODE 0 #endif +These codes moves the current position to the previous position and +the first position in the buffer respectively. + @verbatim @@ -1124,14 +1127,14 @@ appear in the element <module-list>. The element <function-reference> specifies a function to be called. It must appear in the element <module-list>. -The function can be called with an argument of the type (#MPlist -*). The key of the first element of the list is #Mt and its value is -a pointer to an object of the type #MInputContext. The key of the second -element of the list is #Msymbol and its value is the current state name. -The element <argument> specifies the value of the third element or later. -Their keys are determined automatically; if the value of the attribute "type" -is "integer", the corresponding key is #Minteger; if it is a symbol, the -corresponding key is #Msymbol, etc. +The function can be called with an argument of the type (#MPlist *). +The key of the first element of the list is #Mt and its value is a +pointer to an object of the type #MInputContext. The key of the +second element of the list is #Msymbol and its value is the current +state name. The element <argument> specifies the value of the +third element or later. Their keys are determined by the "type" +argument; if its value is "integer", the corresponding key is +#Minteger; if it is "symbol", the corresponding key is #Msymbol, etc. #if EXAMPLE_CODE @@ -1258,7 +1261,7 @@ operators @c +, @c -, @c *, @c / does arithmetics. @c |, @c &, @c @endverbatim The element <if> performs actions in <if-true-action-list> if the -relation between its two <expr>essions meets the attribute +relation between its two <expr>essions meets the attribute "condition". If not, <if> performs actions in the element <if-not-true-action-list> (if it exists.) @@ -1308,9 +1311,9 @@ and performs <saction>s in the first <case> whose <expr> has a #endif -This code performs the <delete-n-characters n="-1"/> and -following actions unless the second previous character is Thai -character RU (whose character code is 0x0E24). +This code performs the actions in the second <case> unless the +second previous character is Thai character RU (whose character code +is 0x0E24). @subsection imstate Input Method States @@ -1354,8 +1357,8 @@ The input method driver is always in one of the <state>s of an processing an input. The same input sequence can trigger different <saction>s and produce different results in different <state>s. When an input context is created, i.e. the input -method is invoked, it is in the first <state> of the -<state-list>. +method is invoked, the input method driver is in the first +<state> of the <state-list>. The attribute "id" gives the name of a <state>. The element <state-title-text> specifies a title text displayed on the @@ -1382,7 +1385,7 @@ will be executed. When an input sequence does not match with any of the <branch>s in the current <state>, @li If the <catch-all-branch> element exists, <saction>s in the <catch-all-branch> is executed. - @li If the <catch-all-branch> is omitted, + @li If <catch-all-branch> is omitted, the input method transits to the initial state. #if EXAMPLE_CODE @@ -1415,7 +1418,7 @@ This code defines state transitions in an input method. It has two states "state-init" and "state-join". The state "state-init" has three branches. When an input sequence belonging to "map-consonant", "map-misc" and "map-join" is given, the corresponding branch is -selected and its <saction>s are executed. When "map-join" is +selected and its <saction>s are executed. When the branch with "map-join" is selected, the state is shift to "state-join". The state "state-join" has one branch for input sequences from "map-consonant" and one catch-all-branch for everything else, both shifting the state to