C をターゲット言語とする ANTLR3 ツリー文法があります。このツリー文法は実際に C++ オブジェクトを生成するため、これらのクラスのヘッダーを含める必要があります。@header
これにはセクションを使用します。ただし、出力には、ヘッダー セクションの出力も含むextern C {
andブロックがあります。}
これは、ヘッダーにテンプレートがあり、「C」リンケージを持つと宣言できないため、エラーが発生しています。ヘッダー セクションの出力の先頭でそのブロックを閉じ、最後に再度開きたいと思います。残念ながら、@header
セクション内に中括弧を記述すると、ANTLR3 構文が壊れます。中括弧は、@header
セクションの開始と終了を示します。
これらの中括弧をエスケープするにはどうすればよいですか?
TLDR: 左ブラケットと右ブラケットを@header
ANTLR3 ツリー文法のセクションに書き込む必要があります。これを行うと、@header
セクションの構文が壊れます。生成された出力のヘッダー セクションに左右の括弧を含めることができるように、左右の括弧をエスケープするにはどうすればよいですか?
各出力後に手動で編集するのは...面倒です。