6.63. kink/io/INPUT_SCANNER¶
input をラップする scanner を提供する。
6.63.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"