クラスに加えて、構文テーブルの文字のエントリではフラグを指定できます。指定可能なフラグは8種類あり、文字 ‘1’、‘2’、‘3’、‘4’、‘b’、‘c’、‘n’、および ‘p’ で表されます。
‘p’ を除くすべてのフラグは、コメント区切り文字を記述するために使用されます。数字フラグは、2文字で構成されるコメント区切り文字に使用されます。これらは、文字クラスに関連付けられた構文上の特性に加えて、その文字がまたコメントシーケンスの一部となり得ることを示します。これらのフラグは、Cモードにおける ‘*’ のような文字(句読点文字であり、かつコメント開始シーケンスの2文字目(‘/*’)であり、かつコメント終了シーケンスの1文字目(‘*/’)でもある)の場合、クラスおよび互いに独立しています。‘b’、‘c’、および ‘n’ の各フラグは、対応するコメント区切り文字を修飾するために使用されます。
文字 c に指定可能なフラグとその意味をまとめた表を以下に示します。
Emacsでは、任意の構文テーブルにおいて、複数のコメントスタイルを同時にサポートしています。コメントスタイルとは、フラグ ‘b’、‘c’、および ‘n’ の集合であり、最大で8種類の異なるコメントスタイルが存在し、それぞれはそのフラグの集合によって命名されます。各コメント区切り文字にはスタイルが割り当てられており、同じスタイルのコメント区切り文字にのみ一致します。したがって、コメントがスタイル “bn” の comment-start シーケンスで始まる場合、次の一致するスタイル “bn” の comment-end シーケンスまで続きます。フラグの集合にフラグ ‘b’ もフラグ ‘c’ も設定されていない場合、結果として得られるスタイルは “a” スタイルと呼ばれます。
C++ に適したコメント構文の設定は、以下の通りです。
‘124’
‘23b’
‘>’
これにより、4つのコメント区切りシーケンスが定義されます:
2文字目の ‘*’ に ‘b’ フラグが付いているため、これは “b” スタイル用のコメント開始シーケンスです。
2文字目の ‘/’ に ‘b’ フラグが付いていないため、これは “a” スタイル用のコメント開始シーケンスです。
最初の文字「*」に「b」フラグが付与されているため、これは「b」スタイル用のコメント終了シーケンスです。
これは、改行文字に ‘b’ フラグが付与されていないため、“a” スタイル用のコメント終了シーケンスです。
関数 backward-prefix-chars は、これらの文字に加え、主要な構文クラスが
prefix である文字(‘'’)に対しても後方に移動します。移動と構文を参照してください。