6.67. kink/io/SCANNER

scanner型のコンパニオンモジュール。

6.67.1. scanner型

scannerは文字列、またはUnicodeコードポイントの入力ポートである。scannerは下にあるソースへのシーケンシャルな前方アクセスを提供する。

例

6.67.1.1. Scanner.scan(Max_codepoints ...[$config])

scanは最大Max_codepoints個のコードポイントからなるstrを読み込む。

コンフィグメソッド:

• C.on_success($success): default = VAL.identity

• C.on_eof($eof): default = 例外を投げる関数

• C.on_error($error): default = 例外を投げる関数

end-of-fileに達しなかった場合、 scan は$successを、ソースから読まれた str を渡して末尾呼び出しする。

end-of-file に達した場合、 scan は$eofを引数なしで末尾呼び出しする。

IOエラーが発生した場合、 scan は$errorを exception を渡して末尾呼び出しする。

事前条件

$successは str を取る関数でなければならない。

$eofは引数なしの関数でなければならない。

$errorは exception を取る関数でなければならない。

例

6.67.1.2. Scanner.scan_line(...[$config={}])

scan_line は"n"かend-of-fileに達するまで str を読み込む。

コンフィグメソッド:

• C.on_success($success): default = VAL.identity

• C.on_eof($eof): default = 例外を投げる関数

• C.on_error($error): default = 例外を投げる関数

"n"に達した場合、scan_lineは$successを、strを渡して末尾呼び出しする。str値は末尾に"n"を含む。

end-of-fileに達した場合、scan_lineは$eofを引数なしで末尾呼び出しする。

IOエラーが起きた場合、scan_lineは$errorをexceptionを渡して末尾呼び出しする。

事前条件

$successは str を取る関数でなければならない。

$eofは引数なしの関数でなければならない。

$errorは exception を取る関数でなければならない。

例

6.67.1.3. Scanner.scan_all(...[$config={}])

scan_allはend-of-fileに達するまでstrを読み込む。

コンフィグメソッド:

• C.on_success($success): default = VAL.identity

• C.on_error($error): default = 例外を投げる関数

end-of-fileに達した場合、scan_allは$successを、ソースから読まれたstrを渡して末尾呼び出しする。

IOエラーが起きた場合、scan_allは$errorを、exceptionを渡して末尾呼び出しする。

事前条件

$successは str を取る関数でなければならない。

$errorは exception を取る関数でなければならない。

例

例: IOエラー

6.67.2. SCANNER.is?(Val)

is?はValがscanner型かどうかを戻す。

6.67.3. SCANNER.mixin

mixinはScanner.scan_allの実装を提供するミックスイントレイトを戻す。scan_allはscanメソッドを使って実装される。