Next: 低レベルのパース, Previous: ある位置のパース状態を調べる, Up: 式のパース [Contents][Index]
パーサー状態(parser state)とはparse-partial-sexp (低レベルのパースを参照)を使用してバッファー内の指定された開始位置と終了位置の間のテキストをパースした後の構文パーサーの状態を記述する(現在のところは)11要素のリストです。syntax-ppssのようなパース関数
(ある位置のパース状態を調べるを参照)
も値としてパーサー状態をリターンします。 parse-partial-sexp can
はパースを再開するために引数としてパーサー状態を受け取ります。
以下はパーサー状態の要素の意味です:
nil。
nil。
nil。より正確には文字列を終端させるであろう文字、または汎用文字列区切りが終端すべきような場合にはt。
t、ネスト可なコメントの内部ならコメントのネストレベル。
t。
nil、スタイル‘b’のコメントなら1、スタイル‘c’のコメントなら2、汎用コメント区切り文字で終端されるべきコメントならsyntax-table。
nil。
nil。
パース継続のための引数としてparse-partial-sexpに渡す場合には要素1、2、6は無視されます。要素9と10は主にパーサーコードにより内部的に使用されます。
以下の関数を使用することにより追加でパーサー状態からいくつかの有用な情報を利用できます:
この関数はパーサー状態stateから文法構造上トップレベルでのパースでのスキャンした最後の位置をリターンする。“トップレベル”とはすべてのカッコ、コメント、文字列の外部であることを意味する。
stateがトップレベルの位置に到達したパースを表す場合には値はnil。
stateをリターンするスキャン終了位置が文字列内にあればstring、コメント内にあればcomment、それ以外はnilをリターンする。