美文网首页
lex的基本使用

lex的基本使用

作者: 云胡同学 | 来源:发表于2018-04-10 11:13 被阅读0次

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文件。

最后效果

相关文章

  • lex的基本使用

    pargen是一款很好的可视化语法分析器。 在.l文件中写入我们的规则。 写入规则后,build生成我们的.c ....

  • Lex & Yacc 学习笔记(4)- Lex深入学习

    一、背景 为了读懂postgresql的语法分析和更好的使用 Lex ,所以继续学习lex的进阶部分。Lex & ...

  • Lex和Yacc

    Lex和Yacc的分工 Lex用于词法分析,Yacc用于语法分析,二者可以单独使用,亦可配合工作。Yacc和Lex...

  • 使用lex编写一个词法分析器

    1、编译步骤 vim lexical.lex flex lexical.lex //生成lex.yy.c文件...

  • 常精进English D3 Supergril Negotiat

    #常精进English 3 Supergril Negotiate with Lex Luther Lex: Ah...

  • 平台整编报错

    高通平台编译报错: LEX scripts/kconfig/lexer.lex.c/bin/sh: 1: ...

  • Lex & Yacc 学习笔记(1)- 简介

    一、背景 在分析阅读pg 11的源代码时,发现pg的语法分析模块使用了Lex&Yacc。pg使用的的Flex & ...

  • 无题

    这大概是最后一次在这里提起莱克斯了,那么lex,lex,lex。 我想这是最后一次了。 不可否认的是自己真的是自作...

  • Ubuntu中安装使用lex/yacc

    如果你没有安装yacc和lex的情况下去直接使用yacc命令是会提示 然后如果你直接用sudo apt-get i...

  • lex 基础

    一、Lex(Lexical Analyzar) 描述文件的结构介绍 Lex工具是一种词法分析程序生成器,它可以根据...

网友评论

      本文标题:lex的基本使用

      本文链接:https://www.haomeiwen.com/subject/ryfwhftx.html