实验一词法分析器1

实验一词法分析器1

ID:1960467

大小:52.00 KB

页数:3页

时间:2017-11-14

实验一词法分析器1_第1页
实验一词法分析器1_第2页
实验一词法分析器1_第3页
资源描述:

《实验一词法分析器1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、班级:计算机科学与技术系计算机应用学号:1010411057姓名:吴锐实验一词法分析器一实验目的1.通过本实验加深对词法分析程序的功能及实现方法的理解;2.使用FLex实现词法分析程序。二实验内容下面是简单C语言的词法:1.关键字:elseifintreturnvoidwhile所有的关键字都是保留字,并且必须是小写。2.下面是专用符号:+-*/<<=>>===!==;,()[]{}3.其他标记是ID和NUM,通过下列正则表达式定义:ID=letterletter*NUM=digitdigit*letter=a

2、..

3、z

4、A

5、..

6、Zdigit=0

7、..

8、9小写和

9、大写字母是有区别的。请利用flex生成上述语言的词法分析器。要求写出详细的步骤和相应的flex源程序。三实验步骤1.在linux中安装flex,使用如下命令:Undoapt-lexinstallflex2.用flex词法分析器实现词法分析测试内容:intvoidelsewhilereturni=1+3.9;a3=909/6bcd=4%9-333源程序:%{#include"stdio.h"intlinenum;%}%%"else"showKEYWord();"if"showKEYWord();班级:计算机科学与技术系计算机应用学号:1010411057姓名:吴锐"

10、int"showKEYWord();"return"showKEYWord();"void"showKEYWord();"while"showKEYWord();[]linenum++;[0-9][0-9]*printf("NUM:%s",yytext);[a-zA-Z][a-zA-Z]*printf("ID:%s",yytext);[+-*/<=>>===!==;,)([]{}%]printf("Op:%s",yytext);"."printf("Unknown:%c",yytext[0]);%%show

11、Word(){printf("KEYWord:%s",yytext);}intmain(){linenum=0;yylex();printf("LineCount:%d",linenum);return0;}intyywrap(){return1;}四实验结果班级:计算机科学与技术系计算机应用学号:1010411057姓名:吴锐五实验内容中遇到的问题、解决方法和体会。Lex(LexicalAnalyzar 词法分析生成器)是Unix下十分重要的词法分析工具。经常用于语言分析,公式编译等广泛领域。本实验加深对词法分析程序的功能及实现方法的理解,同时也在l

12、inux中安装了flex,使用FLex实现词法分析程序。本次实验中遇到的主要问题是flex源文件的编写,对词法的构造和编写理解不深刻,需要在以后的学习中继续努力,此次实验收获颇丰。

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

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

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