zoukankan      html  css  js  c++  java
  • 第一章 flex单词计数程序

    学习Flex&Bison目标, 读懂SQLite中SQL解析部分代码

    Flex&Bison简介
    Flex做词法分析
    Bison做语法分析

    第一个Flex程序, wc.fl, 单词计数程序

    %{
    int chars = 0;
    int words = 0;
    int lines = 0;
    %}
    %%
    [a-zA-Z]+ { words++; chars += strlen(yytext); }
    
     { chars++; lines++; }
    . { chars++; }
    %%
    main(int argc, char **argv)
    {
    yylex();
    printf("%8d%8d%8d
    ", lines, words, chars);
    }
    




    程序说明
    程序包含3部分
    1. 声明和选项设置
    2. 模式和动作
    3. 会被拷贝到生成的词法分析器里的C代码

    1. 声明部分的代码, 会被原样拷贝到C代码头文件中
    2. 模式部分是: 正则表达式+C代码{}
    3. yylex()是词法分析程序入口, 有主程序main调用

    编译执行
    flex wc.l
    cc lex.yy.c -lfl
    ./a,out
    然后在标准输入, 输入文字
    ^D
    得到结果

  • 相关阅读:
    Mac下django简单安装配置步骤
    NuGet 使用笔记
    gulp es7配置文件
    HaProxy配置
    Java工作环境笔记
    ReactJs笔记
    架构应该解决好对象的克隆问题
    Kotlin笔记
    Scala 笔记
    spark 笔记
  • 原文地址:https://www.cnblogs.com/xzpp/p/4638015.html
Copyright © 2011-2022 走看看