zoukankan      html  css  js  c++  java
  • 用词法分析器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++; }
    { }
    . { }
    %%

    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. ", err_count);
    else
    printf("Successfully. ");

    return 0;
    }

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

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

  • 相关阅读:
    Spring
    华为OJ题目:扑克牌大小
    冒泡排序算法总结
    华为OJ题目:刷题
    求立方根
    假硬币问题求解
    SQL in Qt (一)
    Qt3D教程
    (Qt 翻译) QGLAbstractScene
    (Qt 翻译) QGLSceneNode
  • 原文地址:https://www.cnblogs.com/kuaishou/p/FLEX.html
Copyright © 2011-2022 走看看