6.56. kink/io/INPUT_SCANNER

input をラップする scanner を提供する。

6.56.1. INPUT_SCANNER.new(Input Charset ...[$config={}])

new は input のメソッドもサポートする scanner を作る。作られた scanner は、 Input からバイト列を読み込み、 Charset を使って文字列に変換する。 input 型のメソッドは Input に委譲される。

コンフィグメソッド:

• C.replace_conversion_error

scan_line メソッドと scan が不正な形式のバイト列を検出した場合、またはUnicodeにマッピングできない文字を検出した場合、これらのメソッドはデフォルトで $error を末尾呼び出しする。C.replace_conversion_errorが呼ばれた場合は、 scan と scan_line は$errorを呼ぶ代わりに代替文字シーケンスを文字列に挿入する。

事前条件

Input は input 型でなければならない。

Charset は charset 型でなければならない。

:INPUT_SCANNER.require_from('kink/io/')
:BIN_INPUT.require_from('kink/io/')
:BIN.require_from('kink/')
:CHARSET.require_from('kink/')

:In <- BIN_INPUT.new(BIN.of(102 111 111 10))
:S <- INPUT_SCANNER.new(In CHARSET.utf8)

# the result suppors input
stdout.print_line(S.read(1).repr) # => (bin 0x66)

# the result suppors scanner
stdout.print_line(S.scan_line.repr) # => "oo\n"