README.ja  2005/02/04

鬼車  ----   (C) K.Kosako <sndgk393 AT ybb DOT ne DOT jp>

http://www.geocities.jp/kosako3/oniguruma/
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/oniguruma/
http://www.freebsd.org/cgi/cvsweb.cgi/ports/devel/oniguruma/

鬼車は正規表現ライブラリである。
このライブラリの特長は、それぞれの正規表現オブジェクトごとに
文字エンコーディングを指定できることである。

サポートしている文字エンコーディング:

  ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE,
  EUC-JP, EUC-TW, EUC-KR, EUC-CN,
  Shift_JIS, Big5, KOI8-R, KOI8 (*),
  ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5,
  ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10,
  ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16

* KOI8はデフォルトのセットアップではライブラリの中に含まれない。
  (必要であればMakefileを編集すること)
------------------------------------------------------------

インストール

 ケース１: UnixとCygwin環境

   1. ./configure
   2. make
   3. make install

    ライブラリファイル: libonig.a

   動作テスト (ASCII/EUC-JP)

     make ctest

   アンインストール

     make uninstall



 ケース２: Win32(VC++)環境

   1. copy win32\Makefile Makefile
   2. copy win32\config.h config.h
   3. nmake

      onig_s.lib:  static link library
      onig.dll:    dynamic link library

  * 動作テスト (ASCII/Shift_JIS)
   4. copy win32\testc.c testc.c
   5. nmake ctest


ライセンス

  このソフトウェアがRubyと一緒に使用または配布される場合には、
  Rubyのライセンスに従う。
  それ以外の場合には、BSDライセンスに従う。


正規表現

  doc/RE.jaを参照


使用方法

  使用するプログラムで、oniguruma.hをインクルードする(Native APIの場合)。
  Native APIについては、doc/API.jaを参照。

  Win32でスタティックリンクライブラリ(onig_s.lib)をリンクする場合には、
  コンパイルするときに -DONIG_EXTERN=extern をコンパイル引数に追加すること。


使用例プログラム

  sample/simple.c    最小例 (native API)
  sample/names.c     名前付きグループコールバック使用例
  sample/encode.c    幾つかの文字エンコーディング使用例
  sample/listcap.c   捕獲履歴機能の使用例
  sample/posix.c     POSIX API使用例
  sample/sql.c       可変メタ文字機能使用例 (SQL-like パターン)
  sample/syntax.c    PerlとJava文法のテスト


ソースファイル

  oniguruma.h        鬼車APIヘッダ (公開)

  regenc.h           文字エンコーディング枠組みヘッダ
  regint.h           内部宣言
  regparse.h         regparse.cとregcomp.cのための内部宣言
  regcomp.c          コンパイル、最適化関数
  regenc.c           文字エンコーディング枠組み
  regerror.c         エラーメッセージ関数
  regext.c           拡張API関数
  regexec.c          検索、照合関数
  regparse.c         正規表現パターン解析関数
  regsyntax.c        正規表現パターン文法関数、組込み文法定義
  regtrav.c          捕獲履歴木巡回関数
  regversion.c       版情報関数
  st.h               ハッシュテーブル関数宣言
  st.c               ハッシュテーブル関数

  oniggnu.h          GNU regex APIヘッダ (公開)
  reggnu.c           GNU regex API関数

  onigposix.h        POSIX APIヘッダ (公開)
  regposerr.c        POSIX APIエラーメッセージ関数
  regposix.c         POSIX API関数

  enc/mktable.c      文字タイプテーブル生成プログラム
  enc/ascii.c        ASCII エンコーディング
  enc/euc_jp.c       EUC-JP エンコーディング
  enc/euc_tw.c       EUC-TW エンコーディング
  enc/euc_kr.c       EUC-KR, EUC-CN エンコーディング
  enc/sjis.c         Shift_JIS エンコーディング
  enc/big5.c         Big5 エンコーディング
  enc/koi8.c         KOI8 エンコーディング
  enc/koi8_r.c       KOI8-R エンコーディング
  enc/iso8859_1.c    ISO-8859-1  (Latin-1)
  enc/iso8859_2.c    ISO-8859-2  (Latin-2)
  enc/iso8859_3.c    ISO-8859-3  (Latin-3)
  enc/iso8859_4.c    ISO-8859-4  (Latin-4)
  enc/iso8859_5.c    ISO-8859-5  (Cyrillic)
  enc/iso8859_6.c    ISO-8859-6  (Arabic)
  enc/iso8859_7.c    ISO-8859-7  (Greek)
  enc/iso8859_8.c    ISO-8859-8  (Hebrew)
  enc/iso8859_9.c    ISO-8859-9  (Latin-5 または Turkish)
  enc/iso8859_10.c   ISO-8859-10 (Latin-6 または Nordic)
  enc/iso8859_11.c   ISO-8859-11 (Thai)
  enc/iso8859_13.c   ISO-8859-13 (Latin-7 または Baltic Rim)
  enc/iso8859_14.c   ISO-8859-14 (Latin-8 または Celtic)
  enc/iso8859_15.c   ISO-8859-15 (Latin-9 または West European with Euro)
  enc/iso8859_16.c   ISO-8859-16
                     (Latin-10 または South-Eastern European with Euro)
  enc/utf8.c         UTF-8    エンコーディング
  enc/utf16_be.c     UTF-16BE エンコーディング
  enc/utf16_le.c     UTF-16LE エンコーディング
  enc/utf32_be.c     UTF-32BE エンコーディング
  enc/utf32_le.c     UTF-32LE エンコーディング
  enc/unicode.c      Unicode情報

  win32/Makefile     Win32用 Makefile (for VC++)
  win32/config.h     Win32用 config.h



Ruby 1.8/1.6の日本語化GNU regexとのAPIの違い

   + re_compile_fastmap()   は削除された。
   + re_recompile_pattern() が追加された。
   + re_alloc_pattern()     が追加された。


残件

  ? Unicode全コードポイント領域での大文字小文字照合
  ? Unicodeプロパティ
  ? ambig-flag Katakana <-> Hiragana
  ? ONIG_OPTION_NOTBOS/NOTEOS追加 (\A, \z, \Z)
  ? ONIG_SYNTAX_ASIS追加
 ?? \X (== \PM\pM*)
 ?? 文法要素 ONIG_SYN_CONTEXT_INDEP_ANCHORSの実装
 ?? 改行文字(文字列)を変更できる
 ?? 検索位置移動停止演算子 (match_at()からONIG_STOPを返す)

and I'm thankful to Akinori MUSHA.


Mail Address: K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
