www.TimeGIS.com

时空地图 www.TimeGIS.com

交互式图形化建模仿真软件开发

导航

用词法分析器Flex过滤日志

每日构造中,我的项目中 Visual Studio 的 MakeFile 后会产生大量信息,如下

Microsoft (R) Visual Studio Version 10.0.40219.1.
Copyright (C) Microsoft Corp. All rights reserved.
========== Build: 0 succeeded, 0 failed, 23 up-to-date, 0 skipped ==========

Microsoft (R) Visual Studio Version 10.0.40219.1.
Copyright (C) Microsoft Corp. All rights reserved.
========== Build: 0 succeeded, 1 failed, 7 up-to-date, 0 skipped ==========

现在假如我想确定有多少个子工程 proj 失败了,可以用词法分析器 Flex 来解决,以下是我的 check.l 文件内容

%option noyywrap nodefault
%{
int err_count = 0;
%}

%%
.*" 0 failed".* { }
.*"failed".* { err_count++; }
\n { }
. { }
%%

int main(int argc, char **argv)
{
if (argc > 1)
{
if ( !(yyin = fopen(argv[1], "r")))
{
perror(argv[1]);
return 1;
}
}
yylex();

if (err_count > 0)
printf("%d error found.\n", err_count);
else
printf("Successfully.\n");

return 0;
}

然后就运行flex.exe check.l 产生lex.yy.c文件,并用Visual Studio生成一个工程check

之后在命令行下运行check.exe log.txt便可以简单地知道每日构造成功与否。

 

posted on 2013-07-22 16:42  时空地图-TimeGIS-com  阅读(418)  评论(0编辑  收藏  举报

www.TimeGIS.com