开发者

Is there any way to "undo" the effect of #line in C?

开发者 https://www.devze.com 2022-12-15 05:02 出处:网络
I am generating C code based on information provided by another file (an XML file). Certain chunks of C are included in this XML file and should be included verbatim in my generated C file. I wish to

I am generating C code based on information provided by another file (an XML file). Certain chunks of C are included in this XML file and should be included verbatim in my generated C file. I wish to use the #line directive, so that if these chunks contain an error, the user will see the line number in the XML file that the chunk came from. For example, I wish to generate code like:

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

I wish to somehow "close" the #line section, I mean I think if there is an error e.g. with the closing } and that is generated by my program, the user should not see "error on line 36 of file.xml", that will be meaningless to them and confuse them.

For example, I could imagine a #line directive on its own (as in my example) would do something like that. But it doesn't work, and there is no such mentio开发者_如何学运维n of any such facility in the gcc docs on #line.

Is there any such facility I'm missing? Or am I just asking for something that doesn't exist? How would you go about such a problem?


You need to issue another #line directive "resetting" to the line and filename of your original file.

0

精彩评论

暂无评论...
验证码 换一张
取 消