FLEX&BISON:去除C代码注释和其中的多余空行
来源:互联网 发布:数据结构图的遍历代码 编辑:程序博客网 时间:2024/06/05 19:30
使用两个flex程序来完成。
去除注释flex代码文件flex1:
%option noyywrap%x COMMENT%{%}%%"//".* {}"/*" {BEGIN COMMENT;}<COMMENT>"*/" {BEGIN INITIAL;}<COMMENT>. {}. {printf("%s", yytext);}%%int main(int argc, char *argv[]){ const char *input_filename = "input"; if (argc == 2){ input_filename = argv[1]; } yyin = fopen(input_filename, "r"); yylex(); fclose(yyin); return 0;}
去除多余空行(连续的多行空行会被合并为一个空行)代码文件flex2
%option noyywrap%x COMMENT%{int num_newline = 0;%}%%^[ \t\n]+ {if (num_newline == 0){++num_newline; printf("\n");}}. {printf("%s", yytext); num_newline = 0;} %%int main(int argc, char *argv[]){ const char *input_filename = "input"; if (argc == 2){ input_filename = argv[1]; } yyin = fopen(input_filename, "r"); if (!yyin){ perror("failed to open file\n"); return -1; } yylex(); fclose(yyin); return 0;}
编译:
flex -o c1 flex1gcc -o exe1 c1flex -o c2 flex2gcc -o exe2 c2
测试:
./exe1 input > tmp./exe2 tmp > output
output中的代码以及没有了注释和多余空行。
0 0
- FLEX&BISON:去除C代码注释和其中的多余空行
- 用正则表达式去除dreamweaver代码中多余的空行
- 基于flex和bison的C语言代码分析器统计圈复杂度程序设计图
- 用sed去除配置文件空行和注释
- bison和flex的基本原理
- bison和flex的例子
- flex 和 bison 的计算机
- Bison和Flex的学习
- 去除word中多余的空格及空行
- 使用Python去除C/C++源程序中的所有注释和空行
- PHP统计目录下的文件总数及代码行数(去除注释及空行)
- 下载bison和flex的好地方
- WINDOWS下bison和flex的使用
- Linux Shell Script中去除注释和空行
- Flex和Bison
- DREAMWEAVER中消除代码中多余空行的方法
- hexo 解决代码块前后多余空行的问题
- C语言解释器-2 用于参考的Flex和Bison脚本
- 最简单的基于FFmpeg的解码器-纯净版(不包含libavformat)
- mac下好用的截屏工具--QQ截图
- 删除掉mysql数据库某张表中完全重复数据的方法
- mysql环境配置
- MongoDB日志轮转和日志级别
- FLEX&BISON:去除C代码注释和其中的多余空行
- 机器学习笔迹(二)
- 经典题HDU1271:整数对
- java string 反转
- 深圳的面试之旅--还是有一家公司没有拿到offer
- 算法基础--快速排序详解
- Java 中十进制和十六进制的相互转换
- 快速搭建subversion服务器
- Cocos2d-x 3.2 大富翁游戏项目开发-第十一部分 提升角色行走体验