欢迎来到天天文库
浏览记录
ID:34102478
大小:49.28 KB
页数:15页
时间:2019-03-03
《编译原理课程设计语言编译器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、编译原理课程设计报告课题名称:词法分析器小组成员:陈锋:姚珂:王自然:王力:丁昭岩:周德娇:李文莉:庄黎:20082211051100102008221104210527200822110421000120082211042100552008221104210518200822110421050820082211042105172008221104210042提交报告时间:2010年6月10日目录:课程设计目标2实验建立词法分析器。可分离单词并判断单词属性。2册代码实现4实验总结15课程设计目标实验建立词法分析器。可分离单词
2、并判断单词属性。1.分析与设计(1)实现方法:编程语言为C卄语言。编程方法:首先扫描表达式,依次分开单词,保存于数组中。然后,依次判断单词属性并写入文件保存。(2)扫描器:C—惯用的词法1、语言的关键字:chardoubleenumfloatintlongshortsignedstruetunionunsignedvoidfordowhilebreakcontinueifelsegotoswichcasereturnautoexternregisterstaticsizeoftypedefvolatileconstdefau
3、lt#includemainttdefine2、专用符号:+-*/<<=>>==!==;,()[]{}/**/3、其他标记是ID和NUM,通过下列正则表达式定义:ID=letterletter*NUM=digitdigit*letter=a
4、..
5、z
6、A
7、..
8、Zdigit=0
9、..
10、94、空格由空白、换行符和制表符组成。空格通常被忽略。5、注释用通常的C语言符号/*・・・*/围起来。保存注释符忽略注释内容。⑶代码设计说明:程序结构:编写CEditDatc类来扫描并分析单词属性。文件和类的设计说明:CEditDatc类包含两
11、个成员和两个函数。classCEditDataprivatc:CStringfileTcxt;CStringwordArray[N];public:CEditData(CStringf订cTcxt);virtual^CEditDataO;BOOLrcadTcxt();BOOLjudgcPropcrty();};readText(),judgcPropcrty()是最主要的两个函数,分别实现分离单词和判断属性功能。WordStruct类此类用于保存单词属性值。classWordStructprivatc:CStringword
12、Namc;//Savcthenameoftheword;CStringworcIPropcrty;//Savethepropertyoftheword;intwordValuc;//Savethevalueoftheword;public:voidsetWordNamc(CStringname);voidsetJVordPropcrty(CStringpro);voidsetWordValuc(intva’l);CStringgetWordNamc();CStringgetJVordPropcrty();intgetWord
13、Valuc();};程序代码实现文件CEditDate.h代码女口下:〃实验建立C-编译器。只含有scanner和parser部分。#include〈string〉usingnamespacestd;#if!defined(AFX_EDTTDATA_H_16C35366_8E9C_4067_97BE_F5BEE9F03CA8_INCLUDED_)#defineAFX_EDTTDATA_H_16C35366_8E9C_4067_97BE_F5BEE9F03CA8_TNCLUDED_#if_MSC_VER>1000ttpragm
14、aonceSendif//_MSC_VER>1000ttdefineN10000classCEditData{private:CStringfileText;CStringwordArray[N];public:CEditData(CStringfileText);virtual'CEditData();BOOLreadText();BOOLjudgeProperty0;};文件CEditDate.cpp代码女口下:文件ut订・c代码如下://EditData.cpp:implementationoftheCEditData
15、class.////////////////////////////////////////////////////////////////////////tiincludc"stdafx.h"tiincludc"EditProjcct.h〃Sincludcz,EditData.h〃tii
此文档下载收益归作者所有