4.6 词法分析器的自动构造工具
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
统一的Tiny源文件 Exam.tny
{Sample program compute factorial } read x; if 0<x then fact:=1; repeat fact:=fact*x; x:=x-1 until x=0; write fact end
输出结果
• • • • • • • • • • • • • • • • Token: (*,--) Token: (ID,x) Token: (;,--) Token: (ID,x) Token: (:=,--) Token: (ID,x) Token: (-,--) Token: (NUM,1) Token: (until,--) Token: (ID,x) Token: (=,--) Token: (NUM,0) Token: (;,--) Token: (write,--) Token: (ID,fact) Token: (end,--)
实验一 词法分析器的设计
• 实验目的
掌握词法分析器的构造和使用,学会使用flex工具来 构造词法分析程序。
• 实验内容
编制一个识别Tiny源程序的词法分析程序,它能够从 输入的源程序中,识别出各个具有独立意义的单词,即基 本保留字、标识符、常数、运算符、分隔符五大类。并依 次输出各个单词的内部编码及单词符号自身值。
• • • • • • • • • • • • • • • •
Token: (read,--) Token: (ID,x) Token: (;,--) Token: (if,--) Token: (NUM,10) Token: (<,--) Token: (ID,x) Token: (then,--) Token: (ID,fact) Token: (:=,--) Token: (NUM,1) Token: (;,--) Token: (repeat,--) Token: (ID,fact) Token: (:=,--) Token: (ID,fact)
• 实验步骤
1、学会使用flex工具. 2、写出Tiny语言的lex源文件。 3、要求按照如下格式输出文件中所有的单词符号 。 例如: (id , ‘Line’)
实验步骤
• 编写tiny.l文件,在Tiny-c->Lex->tiny.l文 件基础上修改得到。 • 在DOS提示符下运行(假定flex.exe在d:\lex 目录下),生成lex.yy.c d:\lex>flex tiny.l • 将lex.yy.c在VC编译器下编译成可执行文 件lex.yy.exe • 运行lex.yy.wk.baidu.comxe对exam.tny进行词法分析。