【发布时间】:2015-07-10 23:56:33
【问题描述】:
我正在编写一个输出 C++ 代码的语法转换器,但遇到了一个有趣的问题。假设我有两个文件:ln.x 和 ln.cpp。在ln.x:
abc
在ln.cpp:
#line 1 "ln.x"
(
当我尝试使用 GCC 编译它时,它会在 ln.x 中打印相应的行:
ln.x:1:1: error: expected unqualified-id at end of input
abc
^
ln.x:1:1: error: expected ‘)’ at end of inpu
但是,Clang 只是打印同一文件的行:
ln.x:1:2: error: expected unqualified-id
(
^
ln.x:1:2: error: expected ')'
ln.x:1:1: note: to match this '('
(
^
2 errors generated.
有没有办法让 Clang 像 GCC 一样打印文件的行?
【问题讨论】:
-
这没有多大意义。据我所知,编译器完全有理由抱怨,因为只包含一个左括号的文件不是有效的 C++。
-
您希望实现什么目标?那不是 C++ 代码,那么“绕过这个”是什么意思?
-
@DrewDormann 我澄清了我的问题。
-
赞成,因为这是一个简单但有趣的问题。 @downvoters:请不要对您不理解的其他问题投反对票。
-
@close-voters:请不要因为无知而投票关闭。不理解这个问题并不意味着你有资格投票结束。这意味着相反,你不合格。