第一章 flex单词计数程序
2024-10-19 12:39:57
学习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); }
\n { chars++; lines++; }
. { chars++; }
%%
main(int argc, char **argv)
{
yylex();
printf("%8d%8d%8d\n", 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
得到结果
最新文章
- 从零开始编写自己的C#框架(13)——T4模板在逻辑层中的应用(二)
- Swift一些数据结构题目的编码实现
- Android网页中tel,sms,mailTo,Intent,Market协议用法总结
- 【GK101 谐波数据生成器】上位机软件升级(版本:1.1)
- Linux系统中为php添加pcntl扩展的方法
- 将Excel中数据导入数据库(三)
- 【UEditor】远程上传图片到【七牛云存储】
- android开发 WriteUTF与readUTF 原理
- Oracle分页查询语句的写法(转)
- 20151205 jquery 学习笔记--Ajax
- Excel2010 柱形图与折线图制表
- 4_Is Prime
- HDU 4709 Herding 几何题解
- 改动file header (測)
- ng-options的使用
- Centos 7 安装图形化环境
- Web Scraper爬取就是这么简单
- android的五个进程优先级,内存不足时被清理的顺序
- CentOS7主机名修改
- 一个简单web系统的接口性能分析及调优过程
热门文章
- 002_HTTP每日分析及翻译
- Android网络通信(8):WiFi Direct
- java FTPClient 上传文件 0kb 问题
- js继承的几种实现方法
- python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)
- J 判断二叉树每个结点的权值是否关于根节点完全对称
- google gcr.io、k8s.gcr.io 国内镜像
- 解决python中遇到的乱码问题
- ERROR 2003:Can't connect to MySQL server on 'localhost'
- HDU3031 To Be Or Not To Be 左偏树 可并堆