{
、}
および[
、]
および(
、については、次のように C++ テンプレートの使用に使用されるように、for)
を定義できるようにしたいと考えています。syntax region
<
>
a<b>
しかし、次のようなものと衝突することなく、そのような構文領域を作成する方法はありますか?
if( a < b<c>::d )
1 つ目<
は明らかに「より小さい」演算子であり、テンプレート パラメーターの領域の開始として破棄する必要があります。
いくつかのオプションを使用しようとしましたが、機能させることができませんでした。複雑な正規表現を使用してテンプレート引数領域を識別しようとすることは実際には不可能に思えますが、ネストされた自己参照パターンを使用してバランスの取れたペアをチェックすることによってのみ機能します。