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