• 用词法分析器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便可以简单地知道每日构造成功与否。

  • 相关阅读:
    如何编译Linux内核
    linux启动过程
    linux ifconfig
    Android 4.0 x86安装教程 附带联网参数详细设置
    linux ntfs模块
    Java 入门进阶
    深入理解Java中的String
    Java中字符串string的数据类型
    IDEA设置JVM运行参数
    Java11实战:模块化的 Netty RPC 服务项目
  • 原文地址:https://www.cnblogs.com/kuaishou/p/FLEX.html
Copyright © 2020-2023  润新知