dwww Home | Manual pages | Find package

mdbGeneral(5)                   The m17n Library                  mdbGeneral(5)

NAME
       mdbGeneral - General Format

DESCRIPTION
       The mdatabase_load() function returns the data specified by tags in the
       form of plist if the first tag is not Mchartable nor Mcharset. The keys
       of the returned plist are limited to Minteger, Msymbol, Mtext, and
       Mplist. The type of the value is unambiguously determined by the
       corresponding key. If the key is Minteger, the value is an integer. If
       the key is Msymbol, the value is a symbol. And so on.

       A number of expressions are possible to represent a plist. For instance,
       we can use the form (K1:V1, K2:V2, ..., Kn:Vn) to represent a plist
       whose first property key and value are K1 and V1, second key and value
       are K2 and V2, and so on. However, we can use a simpler expression here
       because the types of plists used in the m17n database are fairly
       restricted.

       Hereafter, we use an expression, which is similar to S-expression, to
       represent a plist. (Actually, the default database loader of the m17n
       library is designed to read data files written in this expression.)

       The expression consists of one or more elements. Each element represents
       a property, i.e. a single element of a plist.

       Elements are separated by one or more whitespaces, i.e. a space (code
       32), a tab (code 9), or a newline (code 10). Comments begin with a
       semicolon (;) and extend to the end of the line.

       The key and the value of each property are determined based on the type
       of the element as explained below.

       • INTEGER
       An   element   that   matches   the   regular   expression  -?[0-9]+  or
       0[xX][0-9A-Fa-f]+ represents  a  property  whose  key  is  Minteger.  An
       element  matching  the former expression is interpreted as an integer in
       decimal notation, and one matching  the  latter  is  interpreted  as  an
       integer in hexadecimal notation. The value of the property is the result
       of interpretation.
       For  instance, the element 0xA0 represents a property whose value is 160
       in decimal.
       • SYMBOL
       An element that  matches  the  regular  expression  [^-(0-9]([^\()]|\.)+
       represents a property whose key is  Msymbol. In the element, \t, \n, \r,
       and  \e  are  replaced  with  tab  (code 9), newline (code 10), carriage
       return (code 13), and escape (code 27)  respectively.  Other  characters
       following a backslash is interpreted as it is. The value of the property
       is the symbol having the resulting string as its name.
       For  instance, the element abc\ def represents a property whose value is
       the symbol having the name 'abc def'.
       • MTEXT
       An element that matches the regular expression '([^']|\')*' represents a
       property whose key is Mtext. The backslash escape explained  above  also
       applies  here.  r,  each  part  in  the  element  matching  the  regular
       expression  \[xX][0-9A-Fa-f][0-9A-Fa-f] is replaced with its hexadecimal
       interpretation.
       After having resolved the backslash escapes, the byte  sequence  between
       the double quotes is interpreted as a UTF-8 sequence and decoded into an
       M-text. This M-text is the value of the property.
       • PLIST
       Zero  or  more  elements surrounded by a pair of parentheses represent a
       property whose key is Mplist. Whitespaces before and after a parenthesis
       can be omitted. The value of the property  is  a  plist,  which  is  the
       result   of   recursive  interpretation  of  the  elements  between  the
       parentheses.
SYNTAX NOTATION
       In an explanation of a plist format of  data,  a  BNF-like  notation  is
       used.  In  the  notation,  non-terminals  are represented by a string of
       uppercase  letters  (including  '-'  in  the  middle),   terminals   are
       represented  by  a  string  surrounded  by  '''.  Special  non-terminals
       INTEGER, SYMBOL, MTEXT and PLIST represents  property  integer,  symbol,
       M-text, or plist respectively.
EXAMPLE
       Here  is  an  example of database data that is read into a plist of this
       simple format:
       DATA-FORMAT ::=
           [ INTEGER | SYMBOL | MTEXT | FUNC ] *

       FUNC ::=
           '(' FUNC-NAME FUNC-ARG * ')'

       FUNC-NAME ::=
           SYMBOL

       FUNC-ARG ::=
           INTEGER | SYMBOL | MTEXT | '(' FUNC-ARG ')'
       For instance, a data file that contains  this  text  matches  the  above
       syntax:
       abc 123 (pqr 0xff) "m
       and is read into this plist:
       1st element: key: Msymbol,  value: abc
       2nd element: key: Minteger, value: 123
       3rd element: key: Mplist,   value: a plist of these elements:
           1st element: key Msymbol,  value: pgr
           2nd element: key Minteger, value: 255
       4th element: key: Mtext,    value: m"text
       5th element: key: Mplist,   value: a plist of these elements:
           1st element: key: Msymbol, value: __
           2nd element: key: Mplist,  value: a plist of these elements:
               1st element: key: Mtext,    value: string
           2nd element: key: Msymbol,  value: xyz
           3rd element: key: Minteger, value: -456
COPYRIGHT
       Copyright (C) 2001 Information-technology Promotion Agency (IPA)
       Copyright  (C)  2001-2011  National  Institute  of  Advanced  Industrial
       Science and Technology (AIST)
       Permission is granted to copy, distribute and/or  modify  this  document
       under    the    terms    of   the   GNU   Free   Documentation   License
       <http://www.gnu.org/licenses/fdl.html>.

Version 1.8.4                   Mon Sep 25 2023                   mdbGeneral(5)

Generated by dwww version 1.16 on Sat Oct 3 04:57:46 CEST 2026.