C/MigemoCu
                                                            Since: 15-Aug-2001
                                                                Version: 1.2.0
                                                  Author: MURAOKA Taro (KoRoN)
                                                     Last Change: 20-Sep-2009.


  C/MigemoMigemo(Ruby/Migemo)CŎ̂łBC/MigemoCu
  p\tgEFÁu[}̂܂ܓ{(CN^)v
  @\Ƃ\ɂȂ܂BCŎƂɂA{Ruby/Migemo
  ׁACŏꂽ̃\tgEFA̗peՂɂȂ邱ƁAy(
  )sx̌オ҂ł܂B

  ܂C/Migemo𗘗p邽߂ɂ͕ʓrt@C(dict/migemo-dict)쐬
  ͓肷Kv܂Bł܂̃[玫쐬邱Ƃł
  ARuby/Migemomigemo-dict𗬗pASKK̎Ro[g邱
  \łBڂ͉ĹuɂāṽZNVQƂĂB

  Ruby/Migemo͍ N񂪍lĂu[}͂{ꌟ̂߂̐K\
  ɕϊvc[łBEmacsŃ[}̂܂ܓ{CN^
  邽߂ɁARubyEmacs LISPŎĂ܂B

  - {Ruby/MigemoTCg (MigemoɊւڍ׏)
      http://migemo.namazu.org/
  - C/MigemoEzzTCg (C/Migemȍ)
      http://www.kaoriya.net/

t@C\
  C/MigemõpbP[W݂͌̂Ƃ뎟̂悤ȃt@CEfBNg\
  Ă܂B
  (fBNg)
    compile/            :evbgz[p̃CNt@Cu
    compile/vs6         :VS6pvWFNg
    compile/vs2003      :VS2003pvWFNg
    doc/                :hLgu
    dict/               :u
    tools/              :ec[
    src/                :\[Xt@C
  (t@C)
    Makefile            :CNt@C
    README.txt          :ehLgւ̃|C^
    VERSION             :o[Wԍ
    config.mk           :ftHgRtBM[V
  (\[XR[h) src/
    depend.mak          :\t@Cƈˑ֌W
    migemo.h            :Cu𗘗p̂߂̃CN[ht@C
    main.c              :Cu𗘗pTvvO(cmigemo)
    *.c                 :Cũ\[X
    *.h                 :Cũ\[XpCN[ht@C

RpC@
  RpCɂ͈ȉ3iK̎菇܂B
    1. CuƃvÕrh
    2. t@C̃rh
    3. CXg[
  ut@C̃rhvɂ͕ʓrȉ4킪KvɂȂ܂B
    1. Perl
    2. C^[lbgANZXvO(cURL, wget, fetch̓ǂꂩ1)
    3. 𓀐LvOgzip
    4. GR[hϊvO(nkf, qkc)
  ܂C/MigemõrhɕKvȊOvOconfig.mkҏW邱
  ŕύX\łB܂ȉ̃vbgz[ʂ̃rh@ŗpĂ悤
  UNIXCNȊł͎Iconfig.mkCdg(configure)𗘗pł
  Bconfig.mk̃IWit@Ccompile/config_default.mkƂĎ^Ă
  ̂łł\łB

  evbgz[ł̃rh@̗͈̋ȉQƂĂB
    1. Windows + VisualC++
    2. Windows + Cygwin
    3. Windows + Borland C++
    4. MacOS X + Developer Tools
    5. GNU/gcc:Linux
  ݂̂Ƃȏ5œ̊mFĂ܂B5.GNU/gccɂĂFreeBSD
  5.0łB

  (Windows + VisualC++)
  ̃R}hRelease/migemo.dllcmigemo.exe쐬܂B
    > nmake msvc
  KvȊOvOAlbg[NڑĂ
    > nmake msvc-dict
  Ŏt@Crhł܂Bmigemo.dswVC++6.0ŊJArh@
  ܂BȏオIΎ̃R}hŃeXgvO삵܂B
    > .\build\cmigemo -d dict/migemo-dict

  (Windows + Cygwin)
  KvȊOvOAlbg[Nڑ𑵂Ĉȉs邱ƂŃeXgv
  OcmigemoƎt@Crh܂:
    $ ./configure
    $ make cyg
    $ make cyg-dict
  scp932(Shift-JIS)ŗpȂ:
    $ ./build/cmigemo -d dict/migemo-dict
  euc-jpŗpȂ:
    $ ./build/cmigemo -d dict/euc-jp.d/migemo-dict
  s܂BCXg[ƃACXg[rootŎ̃R}hs
  邱ƂōsȂ܂BCXg[ꏊɂĂconfig.mkQƂĂB
    # make cyg-install
    # make cyg-uninstall

  (Windows + Borland C++)
  ̃R}hmigemo.dllcmigemo.exe쐬܂B
    > make bc
  KvȊOvOAlbg[NڑĂ
    > nmake bc-dict
  Ŏt@Crhł܂BȏオIΎ̃R}hŃeXgvO
  삵܂B
    > .\build\cmigemo -d dict/migemo-dict

  (MacOS X + Developer Tools)
  KvȊOvOAlbg[Nڑ𑵂Ĉȉs邱ƂŃeXgv
  OcmigemoƎt@Crh܂:
    % ./configure
    % make osx
    % make osx-dict
  scp932(Shift-JIS)ŗpȂ:
    % ./build/cmigemo -d dict/migemo-dict
  euc-jpŗpȂ:
    % ./build/cmigemo -d dict/euc-jp.d/migemo-dict
  s܂BCXg[ƃACXg[rootŎ̃R}hs
  邱ƂōsȂ܂BCXg[ꏊɂĂconfig.mkQƂĂB
    # make osx-install
    # make osx-uninstall
  CXg[ɂ莫t@C
    /usr/local/share/migemo/{GR[h}
  ɒu܂B

  (GNU/gcc:Linux)
  KvȊOvOAlbg[Nڑ𑵂Ĉȉs邱ƂŃeXgv
  OcmigemoƎt@Crh܂:
    $ ./configure
    $ make gcc
    $ make gcc-dict
  scp932(Shift-JIS)ŗpȂ:
    $ ./build/cmigemo -d dict/migemo-dict
  euc-jpŗpȂ:
    $ ./build/cmigemo -d dict/euc-jp.d/migemo-dict
  s܂BCXg[ƃACXg[rootŎ̃R}hs
  邱ƂōsȂ܂BCXg[ꏊɂĂconfig.mkQƂĂB
    # make gcc-install
    # make gcc-uninstall
  CXg[ɂ莫t@C
    /usr/local/share/migemo/{GR[h}
  ɒu܂B

p
  C/MigemoMITCZXƓƎCZX̃fACZXƂĔzz
  ܂Bp҂͓sɉāAK郉CZXIėpĂ
  B

  MITCZXɂĂdoc/LICENSE_MIT.txtQƂĂB
  ƎCZXɂĂdoc/LICENSE_j.txtQƂĂB

̒쌠Ep
  C/Migemoŗp鎫̏Apyђ쌠͂̎̒߂
  ɏ]܂BC/MigemoSKKp悤ɏݒ肳Ă܂ASKK
  ̗pC/MigemôƂ͖@Iɕʂł邱ƂɒӂĂB

EA
  C/MigemoɊւ鎿Ev]͑(LAhXQ)܂ŘAĂB\
  tgEFAC/Migemogpꍇ̖₢킹󂯕t܂B

ӎ
  Migemo𔭈ĂRuby/Migemo쐬AC/MigemoɂĂ̑kMLŐe؂ɓ
  Ă NɊӂ܂B܂A̔zzpbP[Wɂ͈ȉ
  ̕XɂhLgACfA܂܂Ă܂B肪Ƃ܂B

  (At@xbg)
  - AIDA Shinra
    CygwinLinuxpMakefile̊b
  - FUJISHIMA Hiroshi <pooh@nature.tsukuba.ac.jp>
    SolarispMakefile̒
  - MATSUMOTO Yasuhiro
    Borland C++pMakefile̊b
    migemo.vimcmigemoɑΉ
    VBpTv
  - SUNAOKA Norifumi
    SolarispMakefile̕s
  - TASAKA Mamoru
    MITCZXł̃[Xɋ


t^

ɂ {{{1
  C/Migemoł̓[}{֕ϊ̂Ɏt@Cdict/migemo-dictKv
  Ƃ܂Bt@Cdict/migemo-dict͂̃A[JCuɊ܂܂Ă܂񂪁A
  t@C̃rhɃC^[lbgʂĎIɃ_E[hdg݂ɂ
  Ă܂B܂ςł0쐬邱Ƃ\łB

  Ɋւc[A̎gp@dict/MakefileQƂĂB

  C/Migemoł
    1. dict/migemo-dictȊOɂA
    2. [}𕽉ɕϊ邽߂̃t@C(dict/roma2hira.dat)A
    3. Љɕϊ邽߂̃t@C(dict/hira2kata.dat)A
    4. pSpɕϊ邽߂̃t@C(dict/han2zen.dat)
    5. Sp𔼊pɕϊ邽߂̃t@C(dict/zen2han.dat)
  gpĂ܂B̑SẴt@C͒PɃf[^e[uƂċ@\Ă
  邾łȂAVXẽGR[h(R[h)̈ႢzSĂ
  ܂B܂ɋ4t@CWindowsŎgꍇɂcp932ɁAUNIXLinux
  gꍇɂeuc-jpɕϊKv̂łBϊKvƗ\zꍇ
  ́At@C̃rhƓɎIɍsȂ悤ɂȂĂ܂B

  - Migemo DLLzzy[W (cp932migemo-dict\)
      http://www.kaoriya.net/
  - Ruby/Migemo (euc-jpmigemo-dict\)
      http://migemo.namazu.org/
  - SKK Openlab (ŐVSKK-JISYO.L\)
      http://openlab.ring.gr.jp/skk/index-j.html

^t@X {{{1
  C/Migemoŗp^ɂďqׂB

- migemo*;
    MigemoIuWFNgBmigemo_open()ō쐬Amigemo_close()ŔjB

- int (*MIGEMO_PROC_CHAR2INT)(const unsigned char*, unsigned int*);
    oCg(unsigned char*)𕶎R[h(unsigned int)ɕϊvV[W
    ^BShift-JISEUC-JPȊÕGR[h̕ƂA͓ꕶ
    ̏sƂɒ`B߂l͕̂oCgŁA0
    Ԃ΃ftHg̃vV[WsB̎dg݂ŕKvȕ
    {ƂoB

- int (*MIGEMO_PROC_INT2CHAR)(unsigned int, unsigned char*);
    R[h(unsigned int)oCg(unsigned char*)ɕϊvV[W^B
    Shift-JISEUC-JPȊÕGR[hƂA͓ꕶ̏
    sƂɒ`B߂l͏o͂ꂽ̃oCgŁA0Ԃ
    ftHg̃vV[WsB̎dg݂ŕKvȕɏ{
    ƂoB

֐t@X {{{1
  C/MigemoCuŒ񋟂APIȉŉBۂ̎gp̓A[JCu
  Ɋ܂܂main.cQƂ̂ƁB

- migemo* migemo_open(const char* dict);
    MigemoIuWFNg쐬B쐬ɐƃIuWFNg߂lƂĕ
    AsNULLԂBdictŎw肵t@Cmigemo-dictƂăI
    uWFNg쐬ɓǂݍ܂BƓfBNg:
      1. roma2hira.dat  ([}ϊ\)
      2. hira2kata.dat  (J^Jiϊ\)
      3. han2zen.dat    (pSpϊ\)
      3. zen2han.dat    (Sppϊ\)
    ƂÕt@C݂΁Â݂ǂݍ܂Bdict
    NULLw肵ꍇɂ́A܂߂ĂȂt@Cǂݍ܂ȂBt@
    C̓IuWFNg쐬ɂmigemo_load()֐gp邱ƂŒǉǂݍ
    łB

- void migemo_close(migemo* object);
    MigemoIuWFNgjAgpĂ\[XB

- unsigned char* migemo_query(migemo* object, const unsigned char* query);
    queryŗ^ꂽ([}){ꌟ̂߂̐K\֕ϊB
    ߂l͕ϊꂽʂ̕(K\)ŁAgpmigemo_release()֐
    nƂŉȂ΂ȂȂB

- void migemo_release(migemo* object, unsigned char* string);
    gImigemo_query()֐œꂽK\B

- int migemo_load(migemo* obj, int dict_id, const char* dict_file);
    MigemoIuWFNgɎA܂̓f[^t@Cǉǂݍ݂B
    dict_file͓ǂݍރt@Cw肷Bdict_id͓ǂݍގEf[^̎
    ނw肷̂ňȉ̂ǂꂩw肷:

      MIGEMO_DICTID_MIGEMO      mikgemo-dict
      MIGEMO_DICTID_ROMA2HIRA   [}ϊ\
      MIGEMO_DICTID_HIRA2KATA   J^Jiϊ\
      MIGEMO_DICTID_HAN2ZEN     pSpϊ\
      MIGEMO_DICTID_ZEN2HAN     Sppϊ\

    ߂l͎ۂɓǂݍ񂾎ނAL̑ɓǂݍ݂ɎsƂ
    ̉Ԃ邱ƂB
      MIGEMO_DICTID_INVALID     

- int migemo_is_enable(migemo* obj);
    MigemoIuWFNgmigemo_dictǂݍ߂Ă邩`FbNBL
    migemo_dictǂݍ߂ēɕϊe[u\złĂ0ȊO(TRUE)A
    \złĂȂƂɂ0(FALSE)ԂB

- int migemo_set_operator(migemo* object, int index, const unsigned char* op);
    MigemoIuWFNg鐳K\Ɏgp郁^(Zq)w肷B
    indexłǂ̃^w肵AopŒuBindexɂ͈ȉ̒lw\
    ł:

      MIGEMO_OPINDEX_OR
        _aBftHg "|" Bvimŗpۂ "\|" B
      MIGEMO_OPINDEX_NEST_IN
        O[sOɗpJʁBftHg "(" Bvimł̓WX^\1`\9
        ɋLȂ悤ɂ邽߂ "\%(" pBPerlłl̂Ƃ
        _ނȂ "(?:" gp\B
      MIGEMO_OPINDEX_NEST_OUT
        O[sȌI\ʁBftHgł ")" Bvimł "\)" B
      MIGEMO_OPINDEX_SELECT_IN
        I̊Jn\JpʁBftHgł "[" B
      MIGEMO_OPINDEX_SELECT_OUT
        ȈI\pʁBftHgł "]" B
      MIGEMO_OPINDEX_NEWLINE
        e̊Ԃɑ}u0ȏ̋󔒂͉sɃ}b`vp^[
        BftHgł "" łݒ肳ȂBvimł "\_s*" w肷B

    ftHg̃^͓ɒf肪ȂPerl̂ƓӖłBݒ
    Ɩ߂l1(0ȊO)ƂȂAs0ɂȂB

- const unsigned char* migemo_get_operator(migemo* object, int index);
    MigemoIuWFNg鐳K\ɎgpĂ郁^(Zq)擾
    BindexɂĂmigemo_set_operator()֐QƁB߂lɂindex̎w
    ΃^i[ւ̃|C^AsłNULL
    B

- void migemo_setproc_char2int(migemo* object, MIGEMO_PROC_CHAR2INT proc);
    MigemoIuWFNgɃR[hϊp̃vV[Wݒ肷BvV[Wɂ
    Ă̏ڍׂ́u^t@XvZNVMIGEMO_PROC_CHAR2INTQƁB

- void migemo_setproc_int2char(migemo* object, MIGEMO_PROC_INT2CHAR proc);
    MigemoIuWFNgɃR[hϊp̃vV[Wݒ肷BvV[Wɂ
    Ă̏ڍׂ́u^t@XvZNVMIGEMO_PROC_INT2CHARQƁB

R[fBOTv {{{1
  C/Migemo𗘗pR[fBOBȉ̃Tv͈؂̃G[s
  ȂĂȂ̂ŁAۂ̗pɂ͒ӂKvB
    #include <stdio.h>
    #include "migemo.h"
    int main(int argc, char** argv)
    {
        migemo *m;
        /* C/Migemȍ: Ǎɂ̓G[ôload𐄏 */
        m = migemo_open(NULL);
        migemo_load(m, MIGEMO_DICTID_MIGEMO, "./dict/migemo-dict");
        /* Kvȉ񐔂querysȂ */
        {
            unsigned char* p;
            p = migemo_query(m, "nezu");
            printf("C/Migemo: %s\n", p);
            migemo_release(m, p); /* query̌ʂ͕Krelease */
        }
        /* pImigemoIuWFNgclose */
        migemo_close(m);
        return 0;
    }

XVӏ {{{1
   (1.3 J)
    VC9(VisualStudio2008)ł64bitł̃RpCɑΉ
    VC9(VisualStudio2008)ł̃RpCɑΉ
    [}qŏIۂɁuxtu{q}{ꉹ}v悤ɕύX
    configure--prefix@\ĂȂ̏C
    querył̎ignore case
    pP̃GgŐK
    VBpTv(tools/clsMigemo.cls)ǉ
    p^[̐(rxget.c:rxgen_add)
    VS2003pvWFNgt@Cǉ
    Sppϊǉ
    Sppǉ
    [}ϊŃ}`oCgl(Vimf:1281)
    CP932/EUCJP/UTF8̃GR[hʋ@\ǉ
    migemo.vimcmigemo.exeΉ̉ǔłɍւ
    wvbZ[W̗]ȋ󔒂폜
   29-Dec-2003 (1.2 )
    p啶Sp啶ɕϊłȂoOC
    [XpɃhLgC
    configureXNvg𓱓
    Doxygen𓱓
    querŷ̂Ŏ̂YĂ̂C
    tools/Migemo.cs:ُ̍C
    rhfBNgύX(mF:mvc,cyg,gcc,bc5)
    (1.1.023)migemo.c:EXPORTS̍폜
    (1.1.022)dict/roma2hira.dat~`̕ϊǉ
    (1.1.021)WindowspMakefileC
    (1.1.020)romaji.c̃eXgR[h𕪗
    (1.1.019)ǂݍݎ̃G[sSȂ猵
    (1.1.018)roma2hira.datɃw{m[bmp]ytch[aiueo]ǉ
    (1.1.017)p𐮗
    (1.1.016)cmigemoTu([U)ɑΉ
    (1.1.015)cmigemoo͌fflush()ǉ
    (1.1.014)MSVCpvWFNgt@Cmsvc/ȉֈړ
    (1.1.013)cmigemo--emacs/-ey--nonewline/-nǉ
    (1.1.012)mkpkg
    (1.1.011)dict/roma2hira.dat[bp]y[aiueo]̃Ggǉ
    (1.1.010)migemo.vimcmigemoɑΉ(by.܂񂳂)
    (1.1.009)SolarisŃRpCł悤ɂ邽߂̕ύX
    (1.1.008)SKK̔zz`ԕύXɒǏ]
    (1.1.007)fobObZ[WRgɂ폜
    (1.1.006)config.mkɐݒRgƂĒǉ
    (1.1.005)C#pTvtools/*.csǉ
    (1.1.004)A߂ɑΉ(ň)
    (1.1.003)SolarispCNt@CMake_sun.makǉA`FbN
    (1.1.002)1sɕGgo͂łȂȂĂC
    (1.1.001)migemo.vimUNIXnɑΉ
   27-May-2002 (1.1 )
    Ń[X
    hLgubVAbv
    MakefileC:release./Releasê߂ɃrhłȂ
   16-May-2002 (1.1-beta2)
    BC5Ή̂߃u`؂ꐡOc(_ _;;;
    Makefile̍\ύX(BC5Ή̂)
    ӎǉ
    pbP[W쐬pXNvg̒ǉ
    cmigemovOg₷B
   15-May-2002 (1.1-beta1)
    migemo_set_operator()̖߂l̈ӖύX
    hLgubVAbv
    Cygwin/MacOS X/LinuxpMakefile쐬
    strip.pllensort.pltool/optimize-dict.plɓ
    tool/conv.pltool/skk2migemodict.plɖ̕ύX
    hLgC
    cacheœKč (mnode_load())
    wordbuf_add()œKč (wordbuf.c)
    migemoǂݍݎsołȂȂĂoOC
    mnode܂Ƃ߂Ċmۂ邱Ƃō (mnode.c)
    𒷂~Ƀ\[g (tools/lensort.pl)
    N12 (mnode.c)
   21-Aug-2001
    main.cgets()fgets()ɕύX
}}}

-------------------------------------------------------------------------------
                  鎖ւ̋ӎuɎƈقȂ鐶ԐSƂȂ
                                    MURAOKA Taro/Y<koron@tka.att.ne.jp>

 vi:set ts=8 sts=2 sw=2 tw=78 et fdm=marker ft=memo:
