Go to the first, previous, next, last section, table of contents.

入力関数

以下の関数では、変数 stream は(常に)オプショナルで、デフォルトで (standard-input の値を用いることを意味する) nil になります。

Variable: standard-input

このグローバル変数は、 (アーギュメント) stream が nil の場合、read 関数が そこから読み込みを行なうストリームになります。

Function: read &optional stream

この関数は stream から Lisp 式を(1つ)読み込み、それを Lisp オブジェクトと して返します。これは基本的な Lisp 入力関数です。

Function: read-from-string string &optional start end

この関数は、 (ユーザーがそれを Lisp にタイプした場合、Lisp reader が読み込 むと思われる) string 中の最初の関数を読み込みます。そして、その式と(次に読 み込まれることになる)そのストリング中の文字の位置とからなる dotted pair を 返します。

start が与えられた場合、読み込みはその文字 (最初の文字は文字(訳注:位置) 0 です)から行ない、 end も与えられた場合、読み込みはその文字の前までに終りま す。

ターミネートされてないリストかベクトルが見つかった場合、end-of-file エラー になります。

  (read-from-string "(setq x 55) (setq y 5)")
  => ((setq x 55) . 11)
  (read-from-string "\"A short string\"")
  ("A short string" . 16)
  ;;最初の文字から始める
  (read-from-string "(list 112)" 0)
  ((list 112) . 10)
  ;;2 番目の文字から始める
  (read-from-string "(list 112)" 1)
  (list . 6)
  ;;7 番目の文字から始め、9 番目で終える
  (read-from-string "(list 112)" 6 8)
  (11 . 8)

Function: parse-partial-sexp from to &optional target-depth stop-before state

from から始め to まで Lisp シンタックスをパーズし、(to における)パーズのリ ターンステータスを返します。パージングは to で止まるか、ある条件が満たされ た時に止まります。パージングが止まった所にポイントを設定します。

5 番目のアーギュメント state が省かれるか (値が)nil の場合、パージングにお いて from は関数の頭にあるとされます。

3 番目のアーギュメント targetdepth が non-nil の場合、パージングは括弧の深 さが targetdepth に等しくなった時、止まります。

4 番目のアーギュメント stopbefore が non-nil であることは、(何か)sexp を始

める文字が来た時(訳注:パージングを)止めることを意味します。

5 番目のアーギュメント state はこの関数が返すような six-list です。これは パーザーの状態を初期化するのに用います。

結果は、(パージングの最終状態を示す) 6 要素のリストです。

  1. 括弧の深さ
  2. 最も内側の containing リストの頭の文字アドレス(存在しない場合は nil)
  3. ターミネートされた(最後の)完全な sexp の頭の文字アドレス
  4. ストリング中では non-nil(そのストリングをターミネートする文字)
  5. コメント中では t
  6. クォート文字に続く時は t
  7. (この)スキャン中に出会った最小の括弧の深さ

Function: scan-lists from count depth

(primitive 関数) 文字番号(訳注:character number) from から count リスト分 スキャンします。結果のポジションの文字番号を返します。

depth が 0 でない場合、括弧の深さのカウンティングはそこから始め、括弧の深 さが 0 になった場所で(のみ)止めます。 count はそのような場所をカウントしま す。このため、 depth が正であることは、外のレベルに出ることを意味します。

parse-sexp-ignore-comment が non-nil の場合、コメントは無視します。

バッファ(の visible 部分)の先頭か終りに達し depth が誤まっている場合、 end-of-file エラーを出します。 depth は正しいが、カウントが使いつくされて いない場合、nil を返します。

Function: scan-sexps from count

(primitive 関数) 文字番号(訳注:character number) from から(括弧の対応し た) count 式分スキャンします。結果のポジションの文字番号を返します。

parse-sexp-ignore-comment が non-nil の場合、コメントを無視します。

括弧でグルーピングされるものの中で、バッファ(の visible 部分)の先頭か終り に達した場合、end-of-file エラーを出します。グルーピングされるものの間で、 先頭か終りに達した場合で、カウントが使いつくされていない場合、nil を返しま す。

Variable: parse-sexp-ignore-comments

non-nil は、forward-sexp 等がコメントを空白として扱わなくてはいけないこと を意味します。 non-nil はコメントのターミネーター(訳注:終了させるもの)が 何か `*/' のようなもので、それがコメントの終りにのみ現われる場合にのみ機能 します。コメントがニューラインでターミネートされている場合、(自分で)この変 数を nil にしなくてはいけません。


Go to the first, previous, next, last section, table of contents.