R6RS:翻訳:Standard Libraries:8.2.9 Textual input

R6RS:翻訳:Standard Libraries:8.2.9 Textual input

8.2.9 テキスト入力

[procedure] (get-char textual-input-port)

完全な文字が読み込み可能になるか、ファイル終端に達するまで、必要に応じてブロックしつつ textual-input-port から読み込みをする。

次のファイル終端より前に完全な文字が読み込み可能な場合、 get-char はその文字を返し、入力ポートがその文字の次を指すように更新する。文字を読む前にファイル終端に達した場合には、ファイル終端オブジェクトが返る。

[procedure] (lookahead-char textual-input-port)

lookahead-char 手続きは get-char 手続きと類似であるが、その文字の後ろを指すよう textual-input-port を更新することをしない。

: 本文書で述べる標準のコード変換器には 4 文字以上の先読みの必要なものもある。非標準のコード変換器にはさらに多くの先読みが必要であるかもしれない。

[procedure] (get-string-n textual-input-port count)

count は、読み込まれる文字の数を表す正確な非負の整数オブジェクトでなければならない。

get-string-n 手続きは count 文字の文字が読み込み可能になるか、ファイル終端に達するまで、必要に応じてブロックしつつ textual-input-port から読み込をする。

ファイル終端より前に count 文字の文字が読み込み可能な場合、 get-string-n はそれだけの文字数の文字列を返す。ファイル終端の前にそれ以下の文字数の文字しかなく、 1 文字以上の文字が読み込める場合には、その文字数の文字列を返す。どちらの場合も、入力ポートは読み込まれた文字の後を指すように更新される。ファイル終端以前に文字を読み込むことができなかった場合には、ファイル終端オブジェクトが返る。

[procedure] (get-string-n! textual-input-port string start count)

startcount は正確な非負の整数オブジェクトでなければならない。 count は読み込む文字の数を表す。 string には最低でも start + count の文字がなければならない。

get-string-n! 手続きは get-string-n と同じ方法で textual-input-port から読み込みを行う。ファイル終端以前に count 文字の文字が読み込み可能であった場合、それが stringstart に始まる位置に書き込まれ、 count が戻り値になる。ファイル終端の前にある文字がそれより少なく、 1 文字以上の文字が読み込める場合には、その文字群が stringstart 番目以降に書き込まれ、実際に読み込まれた文字数が正確な整数オブジェクトとして返される。ファイル終端以前で文字を読むことができなかった場合には、ファイル終端オブジェクトが返る。

[procedure] (get-string-all textual-input-port)

textual-input-port からファイル終端まで文字を読み込む。文字群は get-string-n や get-string-n! と同様の方法でデコードされる。

ファイル終端の前に読み込み可能な文字がある場合、そのデータをデコードした文字群を格納した文字列が返る。ファイル終端の前に文字がまったくない場合には、ファイル終端オブジェクトが返る。

[procedure] (get-line textual-input-port)

textual-input-port から改行文字を含む部分までかファイル終端まで文字を読み込む。文字群は get-string-n や get-string-n! と同様の方法でデコードされる。

改行文字が読まれると、改行文字までの(ただし改行文字は含まない)テキストを格納した文字列が返り、ポートは改行文字の次を指すように更新される。改行文字を読む前にファイル終端に達し、いくばくかの文字が読み込まれ文字としてデコードされていた場合、その文字群を格納した文字列が返る。文字をまったく読まないうちにファイル終端に達した場合には、ファイル終端オブジェクトが返る。

: 行終端形式が none でなければ、すべての行終端が改行文字として読まれる。R6RS:翻訳:Standard Libraries:8.2.4 Transcoders参照。

[procedure] (get-datum textual-input-port)

textual-input-port から外部表現を読み込み、それの表現するデータを返す。 get-datum 手続きは与えられた textual-input-port から次に構文解析できるデータを返し、 textual-input-port の位置をそのオブジェクトの外部表現の最後のちょうど後ろに更新する。

入力中の任意の <interlexeme space> (R6RS:翻訳:R6RS:4.2 Lexical syntax参照)はまず読み飛ばされる。 <interlexeme space> の後にファイル終端オブジェクトが現れた場合には、ファイル終端オフジェクト(R6RS:翻訳:Standard Libraries:8.2.5 End-of-file object)が返る。

入力中で外部表現に適合しない文字に遭遇した場合には、 &lexical と &i/o-read コンディション型の例外が発生する。また、外部表現の最初以降にファイル終端オフジェクトに遭遇したため、外部表現が不完全で構文解析を行うことができない場合にも &lexical と &i/o-read コンディション型の例外が発生する。

More ...