Previous: Syntax Class Table, Up: Syntax Descriptors [Contents][Index]
構文テーブル内の文字全体にたいして構文クラスに加えてフラグを指定できます。利用できる8つのフラグがあり、それらは文字‘1’、‘2’、‘3’、‘4’、‘b’、‘c’、‘n’、‘p’で表されます。
‘p’を除くすべてのフラグはコメント区切りを記述するために使用されます。数字のフラグは2文字から構成されるコメント区切りにたいして使用されます。これらは文字の文字クラスに関連付けられた構文的プロパティに加えて、その文字も同様にコメントシーケンスの一部となれることを示します。Cモードでは区切り文字であり、かつコメントシーケンス開始(‘/*’)の2文字目であり、かつコメントシーケンス終了(‘*/’)の1文字目である‘*’のような文字のためにフラグとクラスは互いに独立しています。フラグ‘b’、‘c’、‘n’は対応するコメント区切りを限定するために使用されます。
以下は文字cにたいして利用できるフラグと意味を示すテーブルです:
Emacsは任意の構文テーブル1つにたいして同時に複数のコメントスタイルをサポートする。コメントスタイルはフラグ‘b’、‘c’、‘n’の組み合わせで8個の異なるコメントスタイルが可能で、コメントスタイルはそれぞれフラグセットにより命名される。コメント区切りはそれぞれスタイルをもち、同じスタイルのコメント区切りとのみマッチできる。つまりコメントがスタイル“bn”のコメント開始シーケンスで開始されるなら、そのコメントは次のスタイル“bn”のコメント終了シーケンスにマッチするまで拡張されるだろう。フラグセットが‘b’と‘c’のいずれでもなければ、結果となるスタイルは“a”スタイルと呼ばれる。
C++にたいして適切なコメント構文は以下のようになる:
‘124’
‘23b’
‘>’
これは4つのコメント区切りシーケンスを定義する:
これは2文字目の‘*’が‘b’フラグをもつので、“b”スタイルのコメント開始シーケンス。
これは2文字目の‘/’が‘b’フラグをもたないので、“a”スタイルのコメント開始シーケンス。
これは1文字目の‘*’が‘b’フラグをもつので、“b”スタイルのコメント終了シーケンス。
これは改行文字が‘b’フラグをもたないので、“a”スタイルのコメント終了シーケンス。
関数backward-prefix-chars
はこれらの文字、同様にメインの構文クラスがプレフィクスであるような文字(‘'’)を超えて後方に移動する。Motion and Syntaxを参照のこと。