我对自动过滤和解释gcc和其他编译器输出的错误消息感兴趣
例如,此正则表达式(可以进行改进,但您可以理解)
^(.+?):(\d+)(:(\d+))?:\s+(\w+):\s+(.*)$
x.cpp:5: error: expected initializer before 'std'
$1
=来源$2
=行号$4
=列号(并非所有gcc版本)$5
=类别(“错误”或“警告”)$6
=错误文本最佳答案
无法保证-标准将说“代码格式错误”,编译器将发出它确定的任何错误。
同样不要忘记,大多数C++编译器甚至都不会产生经过精心设计的错误消息-目前尚无标准化的消息。例如,如果您编写:
statement1 //no ;
statement2;
no ; before statement2
是正确的,但没有no ; after statement1
方便和有用。而且编译模板时发出的错误消息非常可怕,以至于甚至有独立的前缀。
https://stackoverflow.com/questions/7471579/