2

別のファイル (XML ファイル) から提供される情報に基づいて C コードを生成しています。C の特定のチャンクがこの XML ファイルに含まれており、生成された C ファイルに逐語的に含まれている必要があります。#line ディレクティブを使用して、これらのチャンクにエラーが含まれている場合に、ユーザーがチャンクの元の XML ファイルの行番号を確認できるようにします。たとえば、次のようなコードを生成したいと考えています。

int main() {
   #line 35 "file.xml"
   ....
   #line
}

どういうわけか #line セクションを「閉じ」たいと思います。たとえば、終了 } でエラーが発生し、それが私のプログラムによって生成された場合、ユーザーには「file.xml の 36 行目のエラー」が表示されないはずです。それは彼らにとって無意味であり、彼らを混乱させます。

たとえば、(私の例のように) #line ディレクティブが単独でそのようなことを行うと想像できます。しかし、それは機能せず、 #lineの gcc ドキュメントにはそのような機能についての言及はありません。

私が見逃しているそのような施設はありますか?それとも存在しないものを求めているだけですか?このような問題にどう対処しますか?

4

1 に答える 1

3

#line元のファイルの行とファイル名に「リセット」する別のディレクティブを発行する必要があります。

于 2009-12-23T20:31:56.577 に答える