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"