0

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

これらの中括弧をエスケープするにはどうすればよいですか?

TLDR: 左ブラケットと右ブラケットを@headerANTLR3 ツリー文法のセクションに書き込む必要があります。これを行うと、@headerセクションの構文が壊れます。生成された出力のヘッダー セクションに左右の括弧を含めることができるように、左右の括弧をエスケープするにはどうすればよいですか?

各出力後に手動で編集するのは...面倒です。

4

0 に答える 0