以下の関数では、変数 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 要素のリストです。
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 にしなくてはいけません。