使用lex+yacc地地分析simple语言

使用lex+yacc地地分析simple语言

ID:21257324

大小:38.00 KB

页数:8页

时间:2018-10-20

使用lex+yacc地地分析simple语言_第1页
使用lex+yacc地地分析simple语言_第2页
使用lex+yacc地地分析simple语言_第3页
使用lex+yacc地地分析simple语言_第4页
使用lex+yacc地地分析simple语言_第5页
资源描述:

《使用lex+yacc地地分析simple语言》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、使用lex yacc分析simple语言简单语句(2007-03-1818:01:07)转载   关于lex和yacc的理论知识大家可以从网上搜到一些,比较好的资料是机械工业出版社《lex与yacc》中文第二版,当然也可以从网上下到电子版看一看,这里就不赘述了。 下面介绍一个简单的算术表达式和变量说明语句的lex和yacc程序:LEX程序部分:%{//头文件,全局变量定义#include"myparser.h"#include#include#include

2、  intc;externintyylval;%}///////////////////////////////////////////////////////////////declarationssection说明部分可以为空//placeanydeclarationshere%%////////////////////////////////////////////////////////////rulessection 规则部分不可或缺//placeyourLexru

3、leshere/***********************空格,关键字的识别*********************/// return语句返回token标记yacc进行语法识别""      ;var      {printf("%10sKEY_var     ",yytext);return(VAR);}real     {printf("%10sKEY_real    ",yytext);return(REAL);}integer  {printf("%10sKEY_inte

4、ger ",yytext);return(INTEGER);}char     {printf("%10sKEY_char    ",yytext);return(CHAR);}bool     {printf("%10sKEY_bool    ",yytext);return(BOOL);}/*************************界线符的识别************************/:        {printf("%10sSYM_colon   ",yy

5、text);return(COLON);},        {printf("%10sSYM_comma   ",yytext);return(COMMA);}/*************************标志符的识别************************/[A-Za-z]+   {                       c=yytext[0];           yylval=c-'a';           return(LETTER);           pr

6、intf("%10s",yytext);            }/*************************整数的识别*********************/         [0-9]+   {            printf("%10s",yytext);          //c=yytext[0];           //yylval=c-'0';            yylval=atof(yytext);                   return

7、(DIGIT);         }/********************其他符号的识别***************************/[^a-z0-9]{           c=yytext[0];           return(c);         }%%/////////////////////////////////////////////////////////////////programssection 辅助程序部分 YACC程序部分:%{#include"my

8、lexer.h"#include#include  #include  #include  intregs[26];%}///////////////////////////////////////////////////////////////////declarationssection//attributetype%include{#ifndefYYSTYPE#defineYYSTYPEint#endif}//pl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。