Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 rep-
     resent 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  no-
     tation,  and  one matching the latter is interpreted as an integer in hexa-
     decimal notation. The value of the property is the  result  of  interpreta-
     tion.
     For  instance, the element 0xA0 represents a property whose value is 160 in
     decimal.
     * SYMBOL
     An element that matches the regular expression [^-(0-9]([^\()]|\.)+  repre-
     sents  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 back-
     slash is interpreted as it is. The value of the property is the symbol hav-
     ing 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 ap-
     plies 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 interpreta-
     tion.
     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 prop-
     erty 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  re-
     cursive 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 sim-
     ple 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/li-
     censes/fdl.html>.

Version 1.8.4			 Mon Sep 25 2023		   mdbGeneral(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mdbGeneral&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help