構文テーブルの各文字には、構文クラスに加えて、フラグも指定できます。 文字‘1’、‘2’、‘3’、‘4’、‘b’、‘p’で 表現される6つの可能なフラグがあります。
‘p’を除くすべてのフラグは、複数の文字から成るコメント区切りの記述に 使います。 数字フラグは、当該文字のクラスで表される構文上の属性に加えて、 コメント列の一部分でもあることを示します。 フラグはクラスや他のフラグとは独立であり、 Cモードの‘*’のような文字のためにあります。 Cモードの‘*’は、句読点文字であるとともに、 コメント開始列の2番目の文字‘/*’でもあり、 コメント終了列の最初の文字‘*/’でもあります。
文字cに対して可能なフラグとそれらの意味を以下に示します。
Emacsでは、任意の1つの構文テーブルで2つの形式のコメントを同時に扱える。 これはC++のためである。 コメント構文の各形式には、独自の開始列と独自の終了列がある。 各コメントはどちらか1つの形式である必要がある。 したがって、『b』形式のコメント開始列で始まるものは、 『b』形式のコメント終了列で終る必要がある。
2つのコメント開始列は同じ文字で始まる必要があり、2文字目のみが異なる。 『b』形式のコメント開始列の2番目の文字にフラグ‘b’を付ける。
(1文字か2文字の)コメント終了列は、 その最初の文字にフラグ‘b’が付いていると『b』形式に適用する。 さもなければ『a』形式に適用する。
C++向けの適切なコメント構文の設定はつぎのとおりである。
これは4つのコメント区切り列を定義する。
関数backward-prefix-chars
は後方へ向けて移動するときには、
構文クラスが式前置子(‘'’)である文字に加えて
これらの文字も飛び越す。
see Motion and Syntax。