=encoding utf-8

=head1 NAME

Unicode::GCString::JA_JP - UAX #29 書記素クラスタの列としての文字列

=head1 SYNOPSIS

    use Unicode::GCString;
    $gcstring = Unicode::GCString->new($string);
    
=head1 DESCRIPTION

B<注意: このモジュールはアルファバージョン以前なので、多くのバグや不確定な仕様を含んでいる。>

Unicode::GCString はUnicode文字列を、Unicode標準附属書29 [UAX #29] で定義される拡張書記素クラスタの列として扱う。

B<書記素クラスタ>〔grapheme cluster〕はUnicode文字の列で、ひとつのB<書記素基底>〔grapheme base〕と、付加的なB<書記素エキステンダ>〔grapheme extender〕および/またはB<前置文字>〔prepend character〕から成る。これは人が「文字」とみなすものに近い。

=head2 公開インタフェース

=head3 コンストラクタ

=over 4

=item new (STRING, [LINEBREAK])

I<コンストラクタ>。
Unicode文字列 STRING から新たに Unicode::GCString を作る。
オプションの Unicode::LineBreak オブジェクト LINEBREAK は分割の仕様を制御する。

=back

=head3 文字列としての操作

=over 4

=item append (STRING)

=item OBJECT C<.=> STRING

I<インスタンスメソッド>。
STRING をつけ加える。書記素クラスタ文字列は変更される。
STRING はUnicode文字列でも書記素クラスタ文字列でもよい。

=item as_string

=item C<">OBJECTC<">

I<インスタンスメソッド>。
書記素クラスタ文字列をUnicode文字列に変換する。

=item columns

I<インスタンスメソッド>。
組み込みの文字データベースで決定される書記素クラスタ文字列の桁数を返す。

=item concat (STRING)

=item STRING C<.> STRING

I<インスタンスメソッド>。
文字列を結合して新たな書記素クラスタ文字列を作る。
STRING のどちらかがUnicode文字列でもよい。

=item copy

I<コピーコンストラクタ>。
書記素クラスタ文字列の複製を作る。

=item length

I<インスタンスメソッド>。
書記素クラスタ文字列に含まれる書記素クラスタの数を返す。

=item substr (INDEX, [LEN])

I<インスタンスメソッド>。
書記素クラスタ文字列の部分文字列を返す。

=back

=head3 書記素クラスタの列としての操作

=over 4

=item eot

I<インスタンスメソッド>。
現在の位置が書記素クラスタ文字列の最後かどうか調べる。

=item next

I<インスタンスメソッド>、反復的。
次の書記素クラスタの情報を配列参照として返す。

=item prev

I<インスタンスメソッド>。
書記素クラスタ文字列中の位置をひとつ戻す。

=item reset

I<インスタンスメソッド>。
書記素クラスタ文字列の次の位置を初期化する。

=item rest

I<インスタンスメソッド>。
書記素クラスタの残りを返す。

=back

=head1 VERSION

$VERSION 変数を参照してほしい。

このモジュールの開発版が
L<http://hatuka.nezumi.nu/repos/Unicode-LineBreak/>
にある。

=head1 SEE ALSO

[UAX #29]
Mark Davis (2009).
<Unicode Standard Annex #29: Unicode Text Segmentation>, Revision 15.
L<http://www.unicode.org/reports/tr29/>.

=head1 AUTHOR

Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>

=head1 COPYRIGHT

Copyright (C) 2009 Hatuka*nezumi - IKEDA Soji.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
