/* Copyright (C) 2003, 2004 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H15PRO112 See the end for copying conditions. */ /***ja @page mdbGeneral 一般的なフォーマット @section general-description 説明 関数 mdatabase_load () は、第一タグが @c Mchartable か @c Mcharset で ない限り、タグで指定されたデータをプロパティリストの形で返す。返される プロパティリストのキーはMinteger, Msymbol, Mtext, Mplist に限る。値の型はキーによって曖昧性なく 決定される。キーが Minteger ならば値は整数値であり、キーが Msymbol なら値はシンボル、Mtext ならば M-text、 Mplist ならばプロパティリストである。 プロパティリストを示すためにはさまざまな表現形式が可能である。たとえば (K1:V1, K2:V2, ..., Kn:Vn) という形で、最初のK1 と V1、二つ目 のキーと値がK2 と V2 といったプロパティリストを表現することもできる。 しかし、m17n データベースで用いられるプロパティリストのタイプはかなり 限定されているので、もっと単純な表現形式を用いることができる。 これ以降、プロパティリストの示すためには S 式に類似した表現を用いる。 (実際 m17n ライブラリのデフォルトのデータベースローダはこの表現で書か れたデータファイルを読むように設計されている。) この表現形式は 1 ないしそれ以上の 要素 (element) からなる。個々 の要素はプロパティすなわちプロパティリストの一つの要素を表す。 要素間は 1 ないしそれ以上の 空白 (whitespace) すなわちスペース (code 32)、タブ (code 9)、改行 (code 10) のいずれかで区切られる。セミ コロン(;) で始まる行はコメントである。 各プロパティのキーと値は、要素のタイプに基づいて以下のように決定される。 @section general-syntax 文法の表記 データのプロパティリストフォーマットの説明では、BNF風の記法が用いられ る。この記法では、非終端は大文字(間に'-'が入ってもよい) で、終端は " で囲って表される。特別な非終端 INTEGER, SYMBOL, MTEXT, PLIST はそれぞれ対応するプロパティを意味する。 @section general-example 例 次の単純な形式のプロパティリストに読み込まれる、データベースのデータの 一例を示す: @verbatim DATA-FORMAT ::= [ INTEGER | SYMBOL | MTEXT | FUNC ] * FUNC ::= '(' FUNC-NAME FUNC-ARG * ')' FUNC-NAME ::= SYMBOL FUNC-ARG ::= INTEGER | SYMBOL | MTEXT | '(' FUNC-ARG ')' @endverbatim たとえば、次のテキストを含むデータファイルは上の文法に合致する: @verbatim abc 123 (pqr 0xff) "m\"text" (_\\_ ("string" xyz) -456) @endverbatim そして次のようなプロパティリストとして読み込まれる: @verbatim 第1要素: キー: Msymbol, 値: abc 第2要素: キー: Minteger, 値: 123 第3要素: キー: Mplist, 値: 次の要素からなるプロパティリスト 第1要素: キー Msymbol, 値: pgr 第2要素: キー Minteger, 値: 255 第4要素: キー: Mtext, 値: m"text 第5要素: キー: Mplist, 値: 次の要素からなるプロパティリスト 第1要素: キー: Msymbol, 値: _\_ 第2要素: キー: Mplist, 値: 次の要素からなるプロパティリスト 第1要素: キー: Mtext, 値: string 第2要素: キー: Msymbol, 値: xyz 第3要素: キー: Minteger, 値: -456 @endverbatim */ /* Copyright (C) 2003, 2004 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H15PRO112 This file is part of the m17n database; a sub-part of the m17n library. The m17n library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The m17n library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */