lex的基本使用

pargen是一款很好的可视化语法分析器。

在.l文件中写入我们的规则。

写入规则
%{
    #include <stdio.h>
    char * sBlue = "<font color=Blue>";
    char * sRed = "<font color=Red>";
    char * sGreen = "<font color=Green>";
    char * sYellow = "<font color=Yellow>";
    char * s="</font>";
%}
Keys        int|double|float|char|#include|else|case|struct|return|while|for|do|return
thekey      {Keys}[ \t]+
keyif       if\(.*\)
keyswitch   switch\(.*\)
digits      [^A-Za-z][1-9][0-9]*|0
str          \".*\"
comment1     \/\/[^\n]*
comment2     \/\*(([^\*]*(\*[^\/])?)*)\*\/
%%
\n           {fputs("<br/>",yyout);}
{comment1}   {fputs(sGreen,yyout);  fputs(yytext,yyout);fputs(s,yyout);}
{comment2}   {fputs(sGreen,yyout);  fputs(yytext,yyout);fputs(s,yyout);}
{thekey}     {fputs(sBlue,yyout);   fputs(yytext,yyout);fputs(s,yyout);}
{keyif}      {fputs(sBlue,yyout);   fputs(yytext,yyout);fputs(s,yyout);}
{keyswitch}  {fputs(sBlue,yyout);   fputs(yytext,yyout);fputs(s,yyout);}
{str}        {fputs(sRed,yyout);    fputs(yytext,yyout);fputs(s,yyout);}
{digits}     {fputs(sYellow,yyout); fputs(yytext,yyout);fputs(s,yyout);}
.|\n         {fputs(yytext,yyout);}
%%
int main(void)
{
    //yyin=fopen("1.c","r");   
    yylex(); /* start the analysis*/
    //fclose(yyin);
}
int yywrap()
 {
    return 1;
 }

写入规则后,build生成我们的.c .h 等文件

用vc6新建工程,将.c .h的代码复制过去,然后配置环境变量, source,lib,include,yl.lib,之后编译生成exe文件。

进入vc的工程下,找到exe文件所在的目录,打开命令行,进入exe所在的目录,执行命令 exe文件+ 输入文件 + 输出文件

输入文件为二分查找的代码,输出为一个html文件。

最后效果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,499评论 9 467
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,184评论 1 19
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,205评论 2 33
  • 放飞文/一树繁花 此刻所有节日的喜庆都在半空圆圆的月亮露出半个脸在屋顶正如人群中的你露出半个看烟火的脸 此刻节日烟...
    一树繁花_649d阅读 142评论 0 0
  • 感谢婆婆晚上给阗阗做了晚饭,我下午下班晚,无法在6点之前赶回家做完饭,阗阗到奶奶家吃饭,和爷爷奶奶还能待会聊聊...
    丽萍在这阅读 150评论 0 3