JIS X 3017:2013 プログラム言語Ruby | ページ 37

                                                                                            175
X 3017 : 2013 (ISO/IEC 30170 : 2012)
b) が《パターン》(15.2.15.4参照)という形式でない場合は,RegexpErrorクラスの直接のインスタ
ンスを例外として発生させる。
c) レシーバのパターン属性をSに設定する。
d) lagがIntegerクラスのインスタンスの場合は,そのインスタンスの値をnとする。
1) egexpクラスの定数IGNORECASEの値とnとのビット単位の論理積が0でない場合は,レシーバ
の大小文字同一視フラグ属性を真に設定する。
2) egexpクラスの定数MULTILINEの値とnとのビット単位の論理積が0でない場合は,レシーバ
の複数行フラグ属性を真に設定する。
e) lagがIntegerクラスのインスタンス以外の真である場合は,レシーバの大小文字同一視フラグ属性
を真に設定する。
f) 処理系定義の値を返す。
15.2.15.7.6 Regexp#initializecopy
initializecopy(original)
可視性 : private
動作 :
a) riginalがレシーバのクラスのインスタンスでない場合は,TypeErrorクラスの直接のインスタンス
を例外として発生させる。
b) riginalのパターン属性をレシーバのパターン属性に設定する。
c) riginalの大小文字同一視フラグ属性をレシーバの大小文字同一視フラグ属性に設定する。
d) riginalの複数行フラグ属性をレシーバの複数行フラグ属性に設定する。
e) 処理系定義の値を返す。
15.2.15.7.7 Regexp#match
match(string)
可視性 : public
動作 :
a) tringがStringクラスのインスタンスでない場合は,このメソッドの動作は未規定とする。
b) tringの内容をSとする。
c) に対してレシーバのパターン属性のマッチを試みる(15.2.15.4及び15.2.15.5参照)。マッチ処理の結
果をMとする。
d) を返す。
15.2.15.7.8 Regexp#source
source
可視性 : public
動作 : その内容がレシーバのパターン属性であるStringクラスの直接のインスタンスを返す。

15.2.16 MatchData

15.2.16.1  概要
MatchDataクラスのインスタンスは,Stringクラスのインスタンスに対するRegexpクラスのイン
スタンスのマッチが成功した場合の結果を表す。
MatchDataクラスのインスタンスは文字列及びマッチ結果という属性をもつ。これらの属性は15.2.15.5

――――― [JIS X 3017 pdf 181] ―――――

176
X 3017 : 2013 (ISO/IEC 30170 : 2012)
の記述に従い初期化される。文字列属性は,マッチ処理の対象となった文字列Sとする。マッチ結果属性
は,Regexpクラスのインスタンスの《パターン》又はその《パターン》内の《グループ化》がマッチした部分
文字列Bと,S中でのBの先頭の文字の添字Iとの組を要素としてもつリストとする。Bをその要素の部
分文字列,Iをその要素の部分文字列の添字という。マッチ結果属性のそれぞれの要素は,0から始まる整
数によって添字付けされる。
あるMatchDataクラスのインスタンスMに対して,そのマッチする部分文字列,マッチ前及びマッチ
後という三つの値を次のように定義する。
Mの文字列属性の値をSとする。Mのマッチ結果属性の第1要素をFとする。Fの部分文字列をBとし,
Fの部分文字列の添字をOとする。Bの長さとOの和をiとする。
マッチする部分文字列 : Bとする。
マッチ前 : Sの先頭からO番目の文字の直前までを含むSの部分文字列とする。
マッチ後 : Sのi番目の文字から最後の文字までを含むSの部分文字列とする。
15.2.16.2 直接のスーパークラス
Objectクラス
15.2.16.3 インスタンスメソッド
15.2.16.3.1 MatchData#[]
[](*args)
可視性 : public
動作 : レシーバに対してtoaメソッド(15.2.16.3.12参照)を呼び出し,その戻り値であるArrayクラ
スのインスタンスに対して,このメソッドに渡されたのと同じ実引数で “[]” メソッド(15.2.12.5.4参照)
を呼び出し,“[]” メソッドの戻り値を返す。
15.2.16.3.2 MatchData#begin
begin(index)
可視性 : public
動作 :
a) ndexがIntegerクラスのインスタンスでない場合は,このメソッドの動作は未規定とする。
b) レシーバのマッチ結果属性をLとし,indexの値をiとする。
c) が0未満である場合,又はLの要素の数以上の場合は,IndexErrorクラスの直接のインスタンス
を例外として発生させる。
d) そうではない場合は,Lのi番目の要素の第2要素を返す。
15.2.16.3.3 MatchData#captures
captures
可視性 : public
動作 :
a) レシーバのマッチ結果属性をLとする。
b) rrayクラスの空の直接のインスタンスAを生成する。
c) の先頭から順に,その最初の要素を除くそれぞれの要素eについて,eの部分文字列をその内容とす
るStringクラスの直接のインスタンスをAの末尾に追加する。
d) を返す。

――――― [JIS X 3017 pdf 182] ―――――

                                                                                            177
X 3017 : 2013 (ISO/IEC 30170 : 2012)
15.2.16.3.4 MatchData#end
end(index)
可視性 : public
動作 :
a) ndexがIntegerクラスのインスタンスでない場合は,このメソッドの動作は未規定とする。
b) レシーバのマッチ結果属性をLとし,indexの値をiとする。
c) が0未満,又はLの要素の数以上の場合は,IndexErrorクラスの直接のインスタンスを例外とし
て発生させる。
d) のi番目の要素の部分文字列をFとし,その要素の部分文字列の添字をSとする。
e) がnilの場合は,nilを返す。
f) そうではない場合は,Fの長さをfとする。fとSとの和をその値とするIntegerクラスのインスタ
ンスを返す。
15.2.16.3.5 MatchData#initializecopy
initializecopy(original)
可視性 : private
動作 :
a) riginalがレシーバのクラスのインスタンスでない場合は,TypeErrorクラスの直接のインスタンス
を例外として発生させる。
b) riginalの文字列属性を,レシーバの文字列属性に設定する。
c) riginalのマッチ結果属性を,レシーバのマッチ結果属性に設定する。
d) 処理系定義の値を返す。
15.2.16.3.6 MatchData#length
length
可視性 : public
動作 : レシーバのマッチ結果属性の要素数を返す。
15.2.16.3.7 MatchData#offset
offset(index)
可視性 : public
動作 :
a) ndexがIntegerクラスのインスタンスでない場合は,このメソッドの動作は未規定とする。
b) レシーバのマッチ結果属性をLとし,indexの値をiとする。
c) が0未満,又はLの要素の数以上の場合は,IndexErrorクラスの直接のインスタンスを例外とし
て発生させる。
d) のi番目の要素の部分文字列をSとし,その要素の部分文字列の添字をbとする。bとSの長さとの
和をeとする。
e) 及びeをそれぞれその値とする二つのIntegerクラスのインスタンスをこの順番で含む要素数が2
のArrayクラスを生成し,それを返す。
15.2.16.3.8 MatchData#postmatch
postmatch

――――― [JIS X 3017 pdf 183] ―――――

178
X 3017 : 2013 (ISO/IEC 30170 : 2012)
可視性 : public
動作 : レシーバのマッチ後をその内容とするStringクラスのインスタンスを返す。
15.2.16.3.9 MatchData#prematch
prematch
可視性 : public
動作 : レシーバのマッチ前をその内容とするStringクラスのインスタンスを返す。
15.2.16.3.10 MatchData#size
size
可視性 : public
動作 : lengthメソッドと同じとする(15.2.16.3.6参照)。
15.2.16.3.11 MatchData#string
string
可視性 : public
動作 : レシーバの文字列属性をその内容とするStringクラスのインスタンスを返す。
15.2.16.3.12 MatchData#toa
toa
可視性 : public
動作 :
a) レシーバのマッチ結果属性をLとする。
b) rrayクラスの空の直接のインスタンスAを生成する。
c) の先頭の方から,そのそれぞれの要素eについて,eの部分文字列をその内容とするStringクラ
スの直接のインスタンスをAの末尾に追加する。
d) を返す。
15.2.16.3.13 MatchData#tos
tos
可視性 : public
動作 : レシーバのマッチする部分文字列をその内容とするStringクラスのインスタンスを返す。

15.2.17 Proc

15.2.17.1  概要
Procクラスのインスタンスは,《ブロック》を表す。
Procクラスのインスタンスは次の属性をもつ。
ブロック : このインスタンスの表す《ブロック》。
15.2.17.2 直接のスーパークラス
Objectクラス
15.2.17.3 特異メソッド
15.2.17.3.1 Proc.new
Proc.new(&block)
可視性 : public
動作 :

――――― [JIS X 3017 pdf 184] ―――――

                                                                                            179
X 3017 : 2013 (ISO/IEC 30170 : 2012)
a) lockが与えられている場合,Bをblockとする。
b) そうではない場合,次の手順を行う。
1) ブロック の一番上の要素がblock-not-givenの場合,ArgumentErrorクラスの直接のインスタン
スを例外として発生させる。
2) そうではない場合,Bを ブロック の一番上の値とする。
c) をブロック属性としてもつ新しく作ったProcクラスの直接のインスタンスを作る。
d) 作ったインスタンスを返す。
15.2.17.4 インスタンスメソッド
15.2.17.4.1 Proc#[]
[](*args)
可視性 : public
動作 : callメソッドと同じとする(15.2.17.4.3参照)。
15.2.17.4.2 Proc#arity
arity
可視性 : public
動作 : Bをレシーバのブロック属性とする。
a) 《ブロック仮引数》がBに現れない場合,処理系定義の値をもつIntegerクラスのインスタンスを返
す。
b) 《ブロック仮引数》がBに現れる場合,次の手順を行う。
1) 《ブロック仮引数リスト》が《ブロック仮引数》に現れない場合,値が0のIntegerクラスのインス
タンスを返す。
2) 《ブロック仮引数リスト》が《ブロック仮引数》に現れる場合,次の手順を行う。
i) 《ブロック仮引数リスト》が《左辺》という形式の場合,値が1のIntegerクラスのインスタンス
を返す。
ii) 《ブロック仮引数リスト》が《多重代入左辺》という形式の場合,次の手順を行う。
I) 《多重代入左辺》が《グループ化された左辺》という形式の場合,値が処理系定義のIntegerク
ラスのインスタンスを返す。
II) 《多重代入左辺》が《一括左辺》という形式の場合,値が−1のIntegerクラスのインスタンスを
返す。
III) そうではない場合,nを《多重代入左辺》の《多重代入左辺項目》の個数とする。
IV) 《多重代入左辺》が《一括左辺》で終わっている場合,値が−(n+1)のIntegerクラスのインスタ
ンスを返す。
V) そうではない場合,値がnのIntegerクラスのインスタンスを返す。
15.2.17.4.3 Proc#call
call(*args)
可視性 : public
動作 : Bをレシーバのブロック属性とする。Lを空のリストとする。
a) rgsのそれぞれの要素を添字順に,Lの末尾に追加する。
b) を実引数リストとして,Bを呼び出す(11.3.3参照)。Vを呼出し結果の値とする。

――――― [JIS X 3017 pdf 185] ―――――

次のページ PDF 186

JIS X 3017:2013の引用国際規格 ISO 一覧

  • ISO/IEC 30170:2012(IDT)

JIS X 3017:2013の国際規格 ICS 分類一覧