网站大量收购独家精品文档,联系QQ:2885784924

Win7下lex_与_yacc的安装配置.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Win7下lex_与_yacc的安装配置Win7下lex_与_yacc的安装配置

Win7下lex 与 yacc的安装配置 一、如何在windows下安装。 下载flex和bisonProgram Files文件夹里面,因为文件夹名字带空格会影响以后的使用安装在c:\gnuwin32下面c:\gnuwin32\lib里面libfl.a和liby.a右键点击“计算机”,“属性”、“高级系统设置”、“环境变量”,在下面系统变量里面找到PATH,修改,在后面加上c:\gnuwin32\bin和C:\MinGW\bin注意每一个路径是用分号分隔的,然后写第一个路径,然后分号,第二个路径。如果你的安装的目录和我不一样,就对应修改。 开始两个简单的文件来测试。 新建文本文件,更改名称为lex.l,敲入下面代码 %{ int yywrap(void); %} %% %% int yywrap(void) { return 1; } 新建文本文件,更改名称为yacc.y,敲入下面代码 %{ void yyerror(const char *s); %} %% program: ; %% void yyerror(const char *s) { } int main() { yyparse(); return 0; } 打开控制台,进入到刚才所建立文件(lex.l,yacc.y)所在的文件夹。 输入 flex lex.l 输入 bison yacc.y 如果看到当前文件夹上多了两个文件(yacc.tab.c,lex.yy.c),那么说明lexyacc已经安装配置成功 二、使用lex生成此法分析器: 新建文本文件,更改名称为a.lex,敲入下面代码-------词法分析器的源代码 %{ int wordCount = 0; int numcount = 0; %} chars [A-Za-z\_\\.\] numbers ([0-9])+ delim [ \n\t] whitespace {delim}+ words {chars}+ %% while {ECHO; printf(%s\n,yytext);} {words} { wordCount++; /* increase the word count by one*/ } {whitespace} { /* do nothing*/ } ([0-9])+ { numcount++; /* one may want to add some processing here*/ } %% void main() { printf(ok1\n); yylex(); /* start the analysis*/ printf(ok2\n); printf( No of words: %d\n number: %d\n, wordCount, numcount); return 0; } int yywrap() { return 1; } 2、新建文本文件,更名为b.c,敲入下面代码 --------此为输入源代码 asd asdf 23 q a1 b2 !#@ while 3、打开菜单,运行,输入cmd。 输入:cd 文件夹路径 输入:flex a.lex 回车后生成一个 lex.yy.c文件 输入:gcc -o a lex.yy.c -lfl 回车后生成一个a.exe文件,现在我们已得到了一个简易的词法分析器,下面就是运用次词法分析器,分析下b.c文件 输入:a.exe b.c a.txt 回车后生成一个a.txt文件 流程图如下: 结果如下:

文档评论(0)

yyanrlund + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档