*** empty log message ***
authorhanda <handa>
Fri, 25 Jul 2003 12:36:41 +0000 (12:36 +0000)
committerhanda <handa>
Fri, 25 Jul 2003 12:36:41 +0000 (12:36 +0000)
Makefile.am
data/dbformat.txt [deleted file]
data/mainpage.txt [deleted file]
mainpage.txt [new file with mode: 0644]
utils/dbformat.sh
utils/example.sh

index 9cdee0b..7f9a6fe 100644 (file)
@@ -68,7 +68,9 @@ EXAMPLE = \
        @M17NLIB@/example/mview.c \
        @M17NLIB@/example/mdate.c \
        @M17NLIB@/example/mdump.c \
-       @M17NLIB@/example/medit.c
+       @M17NLIB@/example/medit.c \
+       @M17NLIB@/example/mimx-anthy.c \
+       @M17NLIB@/example/mimx-ispell.c
 
 DBFORMAT = \
        @M17NDB@/FORMATS
@@ -85,24 +87,40 @@ MAN3 =      @M17NLIB@/src/m17n-core.h \
 MAN5 = ${DBFORMAT}
 
 SRCALL = \
-       data/mainpage.txt \
+       mainpage.txt \
        ${MAN3} \
        data/m17n-config.txt data/example.txt data/dbformat.txt
 
-usr-html html-usr: usr/html/index.html usr/html/parrot.png
-ja-html html-ja: ja/html/index.html ja/html/parrot.png
-dev-html html-dev: dev/html/index.html dev/html/parrot.png
+HTML_USR_TARGET = usr/html/index.html usr/html/parrot.png
+HTML_JA_TARGET = ja/html/index.html ja/html/parrot.png
+HTML_DEV_TARGET = dev/html/index.html dev/html/parrot.png
+HTML_TARGET = ${HTML_USR_TARGET} ${HTML_JA_TARGET} ${HTML_DEV_TARGET}
 
-usr-latex latex-usr: usr/latex/m17n-lib.ps
-ja-latex latex-ja: ja/latex/m17n-lib.ps
-dev-latex latex-dev: dev/latex/m17n-lib.ps
+usr-html html-usr: ${HTML_USR_TARGET}
+ja-html html-ja: ${HTML_JA_TARGET}
+dev-html html-dev: ${HTML_DEV_TARGET}
 
-usr-man man-usr: man/man1/m17n-config.1 man/man3/m17nIntro.3m17n man/man5/m17nDatabaseFormat.5
-ja-man man-ja: ja/man3/m17nIntro.3m
+LATEX_USR_TARGET = usr/latex/m17n-lib.dvi usr/latex/m17n-lib.ps
+LATEX_JA_TARGET = ja/latex/m17n-lib.dvi ja/latex/m17n-lib.ps
+LATEX_DEV_TARGET = dev/latex/m17n-lib.dvi dev/latex/m17n-lib.ps
+LATEX_TARGET = ${LATEX_USR_TARGET} ${LATEX_JA_TARGET} ${LATEX_DEV_TARGET}
 
-usr: html-usr latex-usr man-usr
-ja: html-ja latex-ja
-dev: html-dev latex-dev
+usr-latex latex-usr: ${LATEX_USR_TARGET}
+ja-latex latex-ja: ${LATEX_JA_TARGET}
+dev-latex latex-dev: ${LATEX_DEV_TARGET}
+
+MAN_USR_TARGET = man/man1/m17n-config.1 man/man3/m17nIntro.3m17n man/man5/m17nDBgeneral.5
+MAN_JA_TARGET = man/ja//man1/m17n-config.1 man/ja//man3/m17nIntro.3m17n man/ja/man5/m17nDatabaseFormat.5
+MAN_TARGET = ${MAN_USR_TARGET} ${MAN_JA_TARGET}
+
+usr-man man-usr: ${MAN_USR_TARGET}
+ja-man man-ja: ${MAN_JA_TARGET}
+
+TARGET = ${HTML_TARGET} ${LATEX_TARGET} ${MAN_TARGET}
+
+usr: usr-html usr-latex usr-man
+ja: ja-html ja-latex ja-man
+dev: dev-html dev-latex
 
 doxyfile-html: doxyfile
        sed -e 's|%PROJECT_NUMBER%|@PACKAGE_VERSION@|' \
@@ -189,14 +207,11 @@ doxyfile-man%.usr: doxyfile-man%
            -e 's/%OUTPUT_LANGUAGE%/English/' \
          < $< >$@
 
-data/mainpage.txt: data-usr/mainpage.txt
-       cp $< $@
-
-data/example.txt: ${MAN1} utils/example.sh
-       cat ${EXAMPLE} | utils/example.sh > $@
+data/example.txt: ${EXAMPLE} utils/example.sh
+       utils/example.sh ${EXAMPLE} > $@
 
 data/dbformat.txt: ${DBFORMAT} utils/dbformat.sh
-       cat ${DBFORMAT}/*.txt | utils/dbformat.sh > $@
+       utils/dbformat.sh ${DBFORMAT}/*.txt > $@
 
 data/m17n-config.txt: @M17NLIB@/m17n-config.in
        sed -n -e '/\/\*\*\*/,/\*\// p' < $< > $@
@@ -235,7 +250,7 @@ data/m17n-config.txt: @M17NLIB@/m17n-config.in
        rm -rf `dirname $@`
        ${DOXYGEN} $<
 
-%/man/man5/m17nDatabaseFormat.5: doxyfile-man5.% ${MAN5} utils/%_filter.rb
+%/man/man5/m17nDBgeneral.5: doxyfile-man5.% ${MAN5} utils/%_filter.rb
        rm -rf `dirname $@`
        ${DOXYGEN} $<
 
@@ -281,10 +296,10 @@ ja/man3m/%.3m: ja/man/man3/%.3m sample-ja.c utils/mkman.rb
        ruby utils/mkman.rb ja
        rm -rf doxytemp sample
 
-CLEANFILES=doxyfile-* *.tar.gz warning *~
+CLEANFILES=doxyfile-* ${TARGET} *.tar.gz warning *~
 
 clean-local:
-       rm -rf usr dev ja doxywork
+       rm -rf usr dev ja man doxywork
 
 WEBDIR = /project/web/extra/m17n-lib/m17n-docs
 
diff --git a/data/dbformat.txt b/data/dbformat.txt
deleted file mode 100644 (file)
index c9769b6..0000000
+++ /dev/null
@@ -1,684 +0,0 @@
-/***en @page m17nDBFormat Data format of the m17n database
-
-This section describes the data formats of the m17n database. */
-
-/***en
-
-@section m17nDBgeneral General format
-
-@subsection description DESCRIPTION
-
-The mdatabase_load () function returns the data specified by tags in
-the form of plist if the first tag is not @c Mchartable nor @c
-Mcharset.  The keys of the returned plist are limited to
-<tt>Minteger</tt>, <tt>Msymbol</tt>, <tt>Mtext</tt>, and
-<tt>Mplist</tt>.  The type of the value is unambiguously determined by
-the corresponding key.  If the key is <tt>Minteger</tt>, the value is
-an integer.  If the key is <tt>Msymbol</tt>, 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 <tt>(K1:V1, K2:V2, ..., Kn:Vn)</tt> 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 <i>elements</i>.  Each element
-represents a property, i.e. a single element of a plist.
-
-Elements are separated by one or more <i>whitespaces</i>, i.e. a space
-(code 32), a tab (code 9), or a newline (code 10).  Comments begin
-with a semicolon (<tt>;</tt>) 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.
-
-<ul>
-
-<li> INTEGER
-
-An element that matches the regular expression <tt>-?[0-9]+</tt> or
-<tt>0[xX][0-9A-Fa-f]+</tt> represents a property whose key is
-<tt>Minteger</tt>.  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 <tt>0xA0</tt> represents a property whose value is
-160 in decimal.
-
-<li> SYMBOL
-
-An element that matches the regular expression
-<tt>[^-0-9(]([^\\()]|\\.)+</tt> represents a property whose key is
-<tt> Msymbol</tt>.  In the element, <tt>\\t</tt>, <tt>\\n</tt>,
-<tt>\\r</tt>, and <tt>\\e</tt> 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 <tt>abc\ def</tt> represents a property
-whose value is the symbol having the name "abc def".
-
-<li> M-TEXT
-
-An element that matches the regular expression <tt>"([^"]|\\")*"</tt>
-represents a property whose key is <tt>Mtext</tt>.  The backslash escape
-explained above also applies here.  Moreover, each part in the
-element matching the regular expression <tt>
-\\[xX][0-9A-Fa-f][0-9A-Fa-f]</tt> 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.
-
-<li> PLIST
-
-Zero or more elements surrounded by a pair of parentheses represent a
-property whose key is <tt>Mplist</tt>.  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.
-
-</ul>
-
-@subsection example EXAMPLE
-
-Here is an example of plist that is written in the expression
-explained above.
-
-@verbatim
-abc 123 (pqr 0xff) "m\"text" (_\\_ ("string" xyz) -456)
-@endverbatim
-
-It represents the following plist:
-
-@verbatim
-(Msymbol:abc,
- Minteger:123,
- Mplist:(Msymbol:pqr,
-         Minteger:255),
- Mtext:m"text,
- Mplist:(Msymbol:_\_,
-         Mplist:(Mtext:string,
-                 Msymbol:xyz),
-         Minteger:-456))
-@endverbatim
-*/
-/***en
-
-@section m17nDBflt Font Layout Table
-
-@subsection description DESCRIPTION
-
-Usually, the rendering engine converts character codes of into glyph
-codes one by one by consulting information about encoding of each
-selected font.  But, for rendering a text that requires complicated
-layouting (e.g. Thai and Indic), such an one to one conversion is not
-sufficient.  In addition, some glyphs must be shifted 2-dimensionally
-on the screen.  For such a case, a font layout table (FLT in short)
-must be used.
-
-A FLT can contain the information equivarent to OpenType Layout Table
-(CMAP, GSUB, and GPOS) in addition to the information about how to
-extract a grapheme cluster and how to re-order characters.
-
-The m17n library loads a FLT from the m17n database by the tags
-\<font, layouter, FLT-NAME\>.  The plist format of the data is as
-follows:
-
-@verbatim
-FONT-LAYOUT-TABLE ::=
-    '(' CATEGORY-TABLE GENERATOR
-        ( CATEGORY-TABLE ? GENERATOR ) * ')'
-
-CATEGORY-TABLE ::=
-    '(' 'category' CATEGORY-SPEC + ')'
-
-CATEGORY-SPEC ::=
-    '(' ( CODE | CODE-FROM CODE-TO ) CATEGORY-CODE ')'
-
-CATEGORY-CODE ::=
-    [ '?A' | ... | '?Z' | '?a' | ... | '?z' ]
-
-GENERATOR ::=
-    '(' 'generator' RULE RULE-DEF * ')'
-
-RULE-DEF ::=
-    '(' RULE-NAME RULE ')'
-
-RULE ::=
-    REGEXP-RULE | MATCH-RULE | MAP-RULE | PREDEFINED-RULE
-    | OTF-RULE
-
-REGEXP-RULE ::=
-    '(' REGEXP RULE * ')' | RULE-NAME
-
-MATCH-RULE ::=
-    '(' MATCH-IDX RULE * ')' | RULE-NAME
-
-PREDEFINED-RULE ::= 
-    '=' | '*' | '<' | '>' | '|'
-
-OTF-URLE ::=
-    'otf:SCRIPT-TAG[:LANGSYS-TAG]' 
-  where
-    SCRIPT-TAG is OTF's ScriptTag name (four letters) listed at:
-        <http://www.microsoft.om/typograph/otspec/scripttags.htm>
-    LANGSYS-TAG is OTF's Language System name (four letters) listed at:
-        <http://www.microsoft.om/typograph/otspec/languagetags.htm>
-  Example: 'otf:deva'
-
-MAP-RULE ::=
-    '(' ( SEQ-TO-SEQ | RANGE-TO-CODE ) + ')' | RULE-NAME
-
-SEQ-TO-SEQ ::=
-    '(' CODE + '-1' ( COMBINING ? CODE ) * ')'
-
-RANGE-TO-CODE ::=
-    '(' '(' CODE-FROM CODE-TO ')' COMBINING ? CODE ')'
-
-COMBINING ::=
-    'VHOVH'
-  where V ::= ( 't' | 'c' | 'b' | 'B' )
-        H ::= ( 'l' | 'c' | 'r' )
-        O ::= ( '.' | XOFF | YOFF XOFF ? )
-        XOFF ::= ('<' | '>') DIGITS
-        YOFF ::= ('+' | '-') DIGITS
-  Example: 'tc+bc', 'Bl-10<20Br'
-
-Semantics of PREDEFINED-RULE:
-
- '*': repeat the previous command (if successful)
- '<': start grapheme cluster
- '>': end grapheme cluster
- '|': produce a special glyph that has category-code ' '
- '=': use the first glyph of the current run as is
-@endverbatim
-
-@subsection seealso SEE ALSO
-
-m17nDBgeneral(5)
-*/
-/***en
-
-@section m17nDBfontenc Font Encoding
-
-The m17n library loads information about the encoding of each font
-form the m17n database by the tags \<font, encoding\>.  The plist
-format of the data is as follows:
-
-@verbatim
-FONT-ENCODING ::=
-    PER-FONT-INFO *
-
-PER-FONT-INFO ::=
-    '(' FONT-SPEC ENCODING ')'
-
-FONT-SPEC ::=
-    '(' 
-    [ FOUNDRY FAMILY [ WEIGHT [ STYLE [ STRETCH [ ADSTYLE ] ] ] ] ] REGISTRY
-    ')'
-@endverbatim
-
-@c FOUNDRY to @c REGISTRY are symbols specifying the corresponding
-XLFD font name fields.  Omitted symbols are regarded as @c nil, and
-@c nil means a wild card.  For instance, this @c FONT-SPEC:
-
-@verbatim
-    (nil alice0\ lao iso8859-1)
-@endverbatim
-
-should be applied to all fonts whose family is "alice0 lao", and
-registry is "iso8859-1".
-
-@c ENCODING is a symbol representing a charset.  A font matching @c
-FONT-SPEC supports all characters of the charset, and a character code
-is mapped to the corresponding glyph code of the font by this charset.
-*/
-/***en
-
-@section m17nDBfontset Fontset
-
-The m17n library loads a fontset definition from the m17n database by
-the tags \<fontset, FONTSET-NAME\>.  The plist format of the data is
-as follows:
-
-@verbatim
-FONTSET ::=
-    PER-SCRIPT * PER-CHARSET * FALLBACK *
-
-PER-SCRIPT ::=
-    '(' SCRIPT PER-LANGUAGE + ')'
-
-PER-LANGUAGE ::=
-    '(' LANGUAGE FONT-SPEC-ELEMENT + ')'
-
-PER-CHARSET ::=
-    '(' CHARSET FONT-SPEC-ELEMENT + ')'
-
-FALLBACK ::=
-    FONT-SPEC-ELEMENT
-
-FONT-SPEC-ELEMENT ::=
-    '(' FONT-SPEC [ FLT-NAME ] ')'
-
-FONT-SPEC ::=
-    '(' 
-    [ FOUNDRY FAMILY [ WEIGHT [ STYLE [ STRETCH [ ADSTYLE ] ] ] ] ] REGISTRY
-    ')'
-@endverbatim    
-
-@c SCRIPT is a symbol of script name (e.g. latin, han) or @c nil.  @c
-LANGUAGE is a two-letter symbol of language name code defined by ISO
-639 (e.g. ja, zh) or @c nil.  The meanings of @c FOUNDRY to @c
-REGISTRY are the same as @e Font @e Encoding.  @c FLT-NAME is a name
-of @ref flt.
-
-For instance, this @c PER_SCRIPT:
-
-@verbatim
-(han
-  (ja
-    ((jisx0208.1983-0)))
-  (zh
-    ((gb2312.1980-0)))
-  (nil
-    ((big5-0))))
-@endverbatim
-
-instructs the rendering engine to use a font of registry
-"jisx0208.1983-0" for a "han" character that has @c Mlanguage text
-propert "ja" if the character is in the repertories of such fonts.
-Otherwise, try a font of registry "gb2312.1980-0" or "big5-0".  If a
-"han" character does not have @c Mlangauge text property, try all
-three fonts.
-*/
-/***en
-
-@section m17nDBfontsize Font Resizing
-
-In some case, a font contains incorrect information about its size
-(typically in the case of a hacked TrueType font), which results in a
-bad text layout when such a font is used in combination with the other
-fonts.  To overcome this problem, the m17n library loads information
-about font-size correction from the m17n database by the tags \<font,
-resize\>.  The plist format of the data is as follows:
-
-@verbatim
-FONT-RESIZE ::=
-    PER-FONT-INFO *
-
-PER-FONT-INFO ::=
-    '(' FONT-SPEC RESIZE-RATIO ')'
-
-FONT-SPEC ::=
-    '(' 
-    [ FOUNDRY FAMILY [ WEIGHT [ STYLE [ STRETCH [ ADSTYLE ] ] ] ] ] REGISTRY
-    ')'
-@endverbatim
-
-The meanings of @c FOUNDRY to @c REGISTRY are the same as @e Font @e
-Encoding.  @c RESIZE-RATIO is an integer number specifying by
-percentage how much the font-size must be adjusted.  For instance,
-this @c PER-FONT-INFO:
-
-@verbatim
-    ((devanagari-cdac) 150)
-@endverbatim
-
-means that, to use a font of registry "devanagari-cdac" with a
-specific size, we have to open an 1.5 times bigger one.
-*/
-/***en
-
-@section m17nDBinput Input Metod
-
-@verbatim
-INPUT-METHOD ::=
-    '(' TITLE MAP-LIST MODULE-LIST ? STATE-LIST ')'
-
-TITLE ::=
-    '(' title MTEXT ')'
-
-MAP-LIST ::=
-    '(' 'map' MAP * ')'
-
-MAP ::=
-    '(' MAP-NAME RULE * ')'
-
-MAP-NAME ::=
-    symbol
-
-RULE ::=
-    '(' KEYSEQ MAP-ACTION * ')'
-
-KEYSEQ ::=
-    mtext | '(' [ symbol | integer ] * ')'
-
-MAP-ACTION ::=
-    ACTION
-
-ACTION ::=
-    mtext | CANDIDATES | '(' ACTION-NAME ACTION-ARG * ')'
-
-CANDIDATES ::=
-    '(' CANDIDATE-GROUP * ')'
-
-  (in ASCTION,
-       MTEXT is a short form of "(insert MTEXT)"
-       CANDIDATES is a short form of "(candidates CANDIDATE-GROUP *)")
-
-ACTION-NAME ::=
-    'insert' | 'candidates' | 'delete' | 'select' | 'select-group'
-       | 'move' | 'mark' | 'pushback' | 'undo' | 'shift' | 'call'
-
-ACTION-ARG ::=
-       integer | symbol | mtext | CANDIDATE-GROUP
-
-CANDIDATE-GROUP ::=
-       mtext | '('  mtext * ')'
-
-PREDEFINED-SYMBOL ::=
-    '@0' | '@1' | '@2' | '@3' | '@4' | '@5' | '@6' | '@7' | '@8' | '@9'
-    | '@<' | '@=' | '@>' | '@-' | '@+'
-
-MARKER ::=
-    PREDEFINED-SYMBOL | symbol
-
-CANDIDATE-INDEX ::=
-    PREDEFINED-SYMBOL
-
-CANDIDATE-GROUP-INDEX ::=
-    PREDEFINED-SYMBOL
-
-;; The first five actions ('insert' .. 'select-group') are for
-;; editing a text in the preediting buffer.  The buffer can keep
-;; multiple markers.  Each marker is represented by a symbol, and
-;; keeps a position between characters in the preediting buffer.
-
-;; PREDEFINED-SYMBOL has special meanings when used as MARKER:
-;;   '@0', '@1', ... '@9'
-;;      The 0th, 1th, ... 9th position.
-;;   '@<', '@=', '@>'
-;;      The first, current, and end position.
-;;   '@-', '@+'
-;;      The previous and next position.
-
-;; PREDEFINED-SYMBOL has special meanings when used as CANDIDATE-INDEX:
-;;   '@0', '@1', ... '@9'
-;;      The 0th, 1th, ... 9th candidate of the current candidate group.
-;;   '@<', '@=', '@>'
-;;      The first, current, and end candidate of the current candidate
-;;      group.
-;;   '@-'
-;;      The previous candidate.  If the current candidate is the
-;;      first of the current candidate group, the last candidate of
-;;      the previous candidate group.
-;;   '@+'
-;;      The next candidate.  If the current candidate is the last of
-;;      the current candidate group, the first candidate of the
-;;      previous candidate group.
-
-;; PREDEFINED-SYMBOL has special meanings when used as CANDIDATE-INDEX:
-;;   '@0', '@1', ... '@9'
-;;      The 0th, 1th, ... 9th candidate of the current candidate group.
-;;   '@<', '@=', '@>'
-;;      The first, current, and end candidate of the current candidate
-;;      group.
-;;   '@-'
-;;      The previous candidate.  If the current candidate is the
-;;      first of the current candidate group, the last candidate of
-;;      the previous candidate group.
-;;   '@+'
-;;      The next candidate.  If the current candidate is the last of
-;;      the current candidate group, the first candidate of the
-;;      previous candidate group.
-
-;; PREDEFINED-SYMBOL has special meanings when used as
-;; CANDIDATE-GROUP-INDEX:
-;;   '@0', '@1', ... '@9'
-;;      The 0th, 1th, ... 9th candidate group.
-;;   '@<', '@=', '@>'
-;;      The first, current, and end candidate group.
-;;   '@-', '@+'
-;;      The previous and the next candidate group.
-
-;; (insert MTEXT) inserts MTEXT before @=.
-
-;; (candidates CANDIDATE-GROUP *) set the current candidates list
-;; to the list of arguments, set the current candidate group to the
-;; first argument, insert the first candidate of the current group
-;; before @=, and mark the inserted text as the current candidate.
-;; Each element of CANDIDATE-GROUP represents a candidate, i.e. if
-;; CANDIDATE-GROUP is MTEXT, each character in MTEXT is a
-;; candidate, if CANDIDATE-GROUP is a list of MTEXT, each MTEXT is
-;; a candidate.
-
-;; (select CANDIDATE-INDEX) replaces the current candidate with
-;; what specified by CANDIDATE-INDEX.  If a candidate of the
-;; different candidate group is specified, set the current
-;; candidate group to that group.
-
-;; (select-group CANDIDATE-GROUP-INDEX) sets the current candidate
-;; group to a group indicated by CANDIDATE-GROUP-INDEX, and relaces
-;; the current candiate with the candiate of the same index in the
-;; new group.
-
-;; (delete MARKER) deletes characters between @= and the position
-;; specified by MARKER.
-
-;; (move MARKER) sets @= to the position of specified by MARKER.
-
-;; (mark MARKER) sets MARKER to the position of @=.  MARKER must
-;; not be PREDEFINED-SYMBOL.
-
-;; (pushback) pushbacks the latest key events to the event queue.
-
-;; (undo) cancels the last key events.
-
-;; (shift STATE-NAME) shifts the current state to the state
-;; specified by STATE-NAME.
-
-;; (call FUNCTION ARG *) calls the function FUNCTION of an external
-;; module.  FUNCTION must be defined in MODULE-LIST.
-
-;; The function is called with a property list (MPlist *) that has
-;; these properties in this order.
-;;   KEY               VALUE
-;;   ---               -----
-;;   mtext             The current preedit text.
-;;   symbol            The current state name (MSymbol).
-;; The remaining properties (if any) are ARGs.
-;;
-;; The function must return a property list (MPlist *) that
-;; represents a list of ACTIONs to take.
-
-MODULE-LIST ::=
-    '(' 'module' MODULE * ')'
-
-MODULE ::=
-    '(' MODULE-NAME FUNCTION * ')'
-
-MODULE-NAME ::=
-    mtext
-
-FUNCTION ::=
-    symbol
-
-STATE-LIST ::=
-    '(' 'state' STATE * ')'
-
-STATE ::=
-    '(' STATE-NAME BRANCH * ')'
-
-STATE-NAME ::=
-    symbol
-
-BRANCH ::=
-    '(' [ MAP-NAME | 'nil' ]  BRANCH-ACTION * ')'
-
-;; If MAP-NAME is specified, it must be a name of a map defined in
-;; MAP-LIST.  Otherwise, BRANCH is the default branch of STATE.
-
-BRANCH-ACTION ::=
-    ACTION
-
-
-;; Example:
-
-(title "sample")
-(maps
- (single
-  ("a" "A")
-  ("b" "B"))
- (double
-  ("bb" (("BB" "Bb"))))
- (select
-  ((Left) (select @-))
-  ((Right) (select @+))))
-
-(states
- (init
-  (single)
-  (double (shift selection)))
- (selection
-  (select)))
-  
-;; When this input method is loaded, the following state transition
-;; machine is created.
-
-;; STATE-TRANSITION-MACHINE ::=
-;;     '(' STATE-NAME ROOT-MAP ')' *
-;; ROOT-MAP ::= TRANSITION-MAP
-;; TRANSITION-MAP ::=
-;;     '(' INDEX [ KEY | 'nil' ]
-;;         MAP-ACTIONS TRANSITION-MAPS BRANCH-ACTIONS ')'
-;; TRANSITION-MAPS ::=
-;;     '(' TRANSITION-MAP * ')'
-;; MAP-ACTIONS ::=
-;;     '(' MAP-ACTION * ')'
-;; BRANCH-ACTIONS ::=
-;;     '(' BRANCH-ACTION * ')'
-
-(init
- (#0 nil nil
-    ((#1 'a' ((insert "A")) nil nil)
-     (#2 'b' ((insert "B"))
-       ((#3 'b' ((candidates (("BB" "Bb")))) nil (shift selection)))
-       nil))
-    nil))
-(selection
- (#4 nil nil
-     ((#5 'Left' ((delete @<) (select @-)) nil nil)
-      (#6 'Right' ((delete @<) (select @+)) nil nil))
-    nil))
-
-;; The state transition machine keeps these things:
-;; STATE: the current state, initially 'init'.
-;; MAP: current transition map, initially #0.
-;; PREEDIT: the preediting buffer, initially empty.
-;; MARKERS: the positions assigned to each marker, @= is initially 0.
-;; PRODUCED: the produced text, initially empty.
-;; CANDIDATE-LIST: the current candidate group list, initially NULL.
-;; CANDIDATE-GROUP: the current candidate group, initially NULL.
-;; CANDIDATE: the the current candidate, initially NULL.
-;;
-;; When MAP is changed to the root map of the initial state, PREEDIT
-;; is concatenated to PRODUCED and reset to empty.  This way, the
-;; machine produces a text.
-;;
-;; The machine accepts one key KEY, handles it while updating internal
-;; information, and return 'nil' (if KEY is correctly handled) or KEY
-;; (if KEY can't be handled in the machine).
-
-;; Here we describes how the key sequence:
-;;     'a' 'b' 'b' 'Right' 'b' 'a'
-;; is handled by the machine and "aBbba" is produced.
-
-;; 'a' arrives.
-;;
-;; Lookup the transition maps of #0 for 'a' and find #1.  Change MAP
-;; to #1.  Perform its map actions.  Now PREEDIT contains "a".  As it
-;; has no sub transition maps, no branch actions, no state to shift,
-;; change MAP to #0, the root map of the current state.
-;;
-;; As we have changed MAP to the root map of the initial map,
-;; concatenate PREEDIT to PRODUCED, and reset PREEDIT to empty.
-;;
-;; Now we have consumed the key.  As MAP has sub transition maps, wait
-;; for the next key.
-
-;; 'b' arrives.
-;;
-;; Lookup #0 for 'b' and find #2.  Change MAP to #2.  Perform the map
-;; actions.  Now, PREEDIT contains "B".  As it has sub transition
-;; maps, and we have consumed the key, wait for the next key.
-
-;; 'b' arrives.
-;;
-
-;; Lookup #2 for 'b' and find #3.  Cancel the change in PREEDIT done
-;; by the map actions of #2, and change MAP to #3.  Perform the map
-;; actions.  Now, PREEDIT is "BB", CANDIDATE-LIST is (("BB" "Bb")),
-;; CANDIDATE is "BB".  As #3 has no sub transition maps and no branch
-;; actions, change STATE to 'selection' and change MAP to #4, the root
-;; map of 'selection'.  As it has sub transition maps, and we have
-;; consumed the key.  Wait for the next key.
-
-;; 'Right' arrives.
-;;
-;; Lookup #4 for 'Right' and find #5.  Change MAP to #5.  Perform the
-;; map actions.  Now PREEDIT is "Bb".  As #5 has no sub transition
-;; maps, no branch actions, no state to shift, change MAP to #4 (the
-;; initial map of the current state 'selection'.
-;;
-;; As #4 has sub transition maps, and we have consumed the key.  Wait
-;; for the next key.
-
-;; 'b' arrives.
-;;
-;; Lookup #4 for 'b' and fail.  As #4 has no branch maps, no shift to
-;; transit, change STATE to 'init', MAP to #0.
-;;
-;; As we have changed MAP to the root map of the initial map,
-;; concatenate PREEDIT to PRODUCED, and reset PREEDIT to empty.  Now
-;; PRODUCED has "aBb".
-;;
-;; As we have not yet consumed the key 'b', handle it in MAP (#0).
-;;
-;; Lookup #0 for 'b' and find #2.  Change MAP to #2.  Perform the map
-;; actions.  Now, PREEDIT contains "B".  As it has sub transition
-;; maps, and we have consumed the key, wait for the next key.
-
-;; 'a' arrives.  Lookup #2 for 'a' and fail.  As #2 has no branch
-;; actions, no state to shift, Change MAP to #0, the root map of the
-;; current state.
-;;
-;; As we have changed MAP to the root map of the initial map,
-;; concatenate PREEDIT to PRODUCED, and reset PREEDIT to empty.  Now
-;; PRODUCED has "aBbb".
-;;
-;; As we have not yet consumed the key 'a', handle it in MAP (#0).
-;;
-;; Lookup #0 for 'a' and find #1.  Change MAP to #1.  Perform its map
-;; actions.  Now PREEDIT contains "a".  As it has no sub transition
-;; maps, no branch actions, no state to shift, change MAP to #0, the
-;; root map of the current state.
-;;
-;; As we have changed MAP to the root map of the initial map,
-;; concatenate PREEDIT to PRODUCED, and reset PREEDIT to empty.  Now
-;; PRODUCED has "aBbba".
-
-;; Now we have consumed the key.  As MAP has sub transition maps, wait
-;; for the next key.
-@endverbatim
-*/
-////
diff --git a/data/mainpage.txt b/data/mainpage.txt
deleted file mode 100644 (file)
index 902a3b3..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/***@mainpage The M17N Library Documentation
-
-@section what What is the m17n library?
-
-The @e m17n @e library is a multilingual text processing library for
-the C language.
-
-<ul>
-
-<li> It is a free and open source software.
-
-<li> It is for any GNU/Linux and Unix applications/libraries.
-
-<li> It realizes multilingualization of many aspects of
-applications/libraries.
-
-</ul> 
-
-The word "m17n" is an abbreviation of "multilingualization".
-
-The m17n library provides following facilities to handle
-multilingual text.
-
-<ul>
-
-<li> @e M-text: A data structure for a multilingual text.  It is
-basically a string but with attributes called text property, and
-is designed to substitute for the C string.  It is the most important
-object of the m17n library.
-
-<li> Functions for creating and processing M-texts.
-
-<li> Functions for converting M-texts from/to strings encoded in
-various existing formats.
-
-<li> A huge character space, which contains all the Unicode
-characters and more non-Unicode characters.
-
-<li> @e Chartable: A data structure that contains per-character
-information efficiently.
-
-<li> Functions for inputting and displaying M-text on a window
-system.
-
-</ul>
-
-@section usage How to use it?
-
-Just include <m17n.h> in your program, and link it with the m17n
-library by -lm17n.  See @ref m17nIntro @latexonly
-(P.\pageref{group__m17nIntro}) @endlatexonly for the detail.
-
-@section contact Contact us:
-
-Global IT Security Group\n
-National Information Technology Research Institute\n
-Institute of Advanced Industrial Science and Technology
-
-Web: http://www.m17n.org/m17n-lib/
-
-Bug report: m17n-lib-bug@m17n.org
-
-Mailing list (English): m17n-lib@m17n.org
-
-Mailing list (Japanese): m17n-lib-ja@m17n.org
-*/
-////
diff --git a/mainpage.txt b/mainpage.txt
new file mode 100644 (file)
index 0000000..52a07db
--- /dev/null
@@ -0,0 +1,68 @@
+/***en
+@mainpage The M17N Library Documentation
+
+@section what What is the m17n library?
+
+The @e m17n @e library is a multilingual text processing library for
+the C language.
+
+<ul>
+
+<li> It is a free and open source software.
+
+<li> It is for any GNU/Linux and Unix applications/libraries.
+
+<li> It realizes multilingualization of many aspects of
+applications/libraries.
+
+</ul> 
+
+The word "m17n" is an abbreviation of "multilingualization".
+
+The m17n library provides following facilities to handle
+multilingual text.
+
+<ul>
+
+<li> @e M-text: A data structure for a multilingual text.  It is
+basically a string but with attributes called text property, and
+is designed to substitute for the C string.  It is the most important
+object of the m17n library.
+
+<li> Functions for creating and processing M-texts.
+
+<li> Functions for converting M-texts from/to strings encoded in
+various existing formats.
+
+<li> A huge character space, which contains all the Unicode
+characters and more non-Unicode characters.
+
+<li> @e Chartable: A data structure that contains per-character
+information efficiently.
+
+<li> Functions for inputting and displaying M-text on a window
+system.
+
+</ul>
+
+@section usage How to use it?
+
+Just include <m17n.h> in your program, and link it with the m17n
+library by -lm17n.  See @ref m17nIntro @latexonly
+(P.\pageref{group__m17nIntro}) @endlatexonly for the detail.
+
+@section contact Contact us:
+
+Global IT Security Group\n
+National Information Technology Research Institute\n
+Institute of Advanced Industrial Science and Technology
+
+Web: http://www.m17n.org/m17n-lib/
+
+Bug report: m17n-lib-bug@m17n.org
+
+Mailing list (English): m17n-lib@m17n.org
+
+Mailing list (Japanese): m17n-lib-ja@m17n.org
+*/
+
index 1a4b108..7376bd5 100755 (executable)
@@ -3,14 +3,20 @@
 cat <<EOF
 /***en @page m17nDBFormat Data format of the m17n database
 
-This section describes the data formats of the m17n database. */
+This section describes formats of these data supplied by the m17n
+database.
 
+<ul>
 EOF
 
-sed -n -e '/\/\*\*\*/,/\*\// p' | \
-sed -e 's/@section/@subsection/' \
-    -e 's/@page/@section/'
+cat $* | grep '@page' | sed -e 's/@page mdb\([^ ]*\)/<li> @ref mdb\1 "\1" --/'
 
 cat <<EOF
-////
+</ul>
+*/
 EOF
+
+cat $* | \
+sed -n -e '/\/\*\*\*/,/\*\// p' | \
+sed -e 's/@section/@subsection/' \
+    -e 's/@page/@section/'
index c0f9aa2..91f795e 100755 (executable)
@@ -3,15 +3,20 @@
 cat <<EOF
 /***en @page m17nExample Example Programs
 
-This section describes the example programs.  They are to demonstrate
-the usage of the m17n library, not for practical use. */
+This section describes these example programs.  They are to demonstrate
+the usage of the m17n library, not for practical use.
 
+<ul>
 EOF
 
-sed -n -e '/\/\*\*\*/,/\*\// p' | \
-sed -e 's/@section/@subsection/' \
-    -e 's/@page \([^ ]*\)/@section \1 \1 --/'
+cat $* | grep '@page' | sed -e 's/@page \([^ ]*\)/<li> @ref \1 "\1" --/'
 
 cat <<EOF
-////
+</ul>
+*/
 EOF
+
+cat $* | \
+sed -n -e '/\/\*\*\*/,/\*\// p' | \
+sed -e 's/@section/@subsection/' \
+    -e 's/@page \([^ ]*\)/@section \1 \1 --/'