欢迎来到天天文库
浏览记录
ID:29058897
大小:260.04 KB
页数:10页
时间:2018-12-16
《《词法分析器设计》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1、实验目的1、为初等函数运算语言构造语法分析器。2、掌握生成词法分析器的方法,加深对词法分析原理的理解。3、掌握设计、编制并调试词法分析程序的思想和方法。2、实验内容2.1词法模式设计/正则式1、初等函数运算语言的常量为实数类型,其定义方式为实数的最一般书写方式,如:123.321。具体要求:不支持整数部分大于0时首数字为0;不支持小数点后结尾为0;不支持科学记数法;不支持仅为整数时有小数点。^[1-9][0-9]*(.[0-9]*[1-9]+)?$2、初等函数运算语言的变量采用与C语言的标识符定义一样的方式:首字符为字母或下划线;其他的为字母、数字及下划线的混合串;区分大小写;变量
2、长度不超过32个字符。^[a-zA-Z_][A-Za-z0-9]{0,31}$3、初等函数运算语言需要处理的函数仅为表一中所列举的内容。4、初等函数运算语言支持四则运算,其计算的符号与C语言相同,为:+-*/。^[+-*/]$5、初等函数运算语言的合法的分隔符包括:空格、制表符、、分行符圆括号(左、右)、分号。其中空格、制表符、分行符可以出现在任何两个不同的单词中间;圆括号(左、右)用于表达式中,用于改变运算的优先级,以及标识函数的参数;分号用于标识一个语句的结束。^[ft();]$6、初等函数运算语言支持的常量还包括:PI,E。^PI
3、E$2.2DFA2.3状态转换表_字符数
4、字运算符小数点0012、40101102003300304004032.4记号表1、实验程序清单function.cppmains.cppname.hwordID.txt2、调试过程和运行结果3、"x=0.5*PI;y=E;?1/3*(ln(y)+5*sin(x))+(7+z)^2;"1、程序的主要部分及其功能说明函数声明----------------------------------------name.h------------------------------------------------------#include#include
5、usingnamespacestd;constintMax=1000;conststringFunctionName[]={"sin","cos","tg","ctg","log","lg","ln","PI","E"};//关键字classOperate{private:stringstr;//输入的字符串stringword[Max];//输出的结果intnum[Max];//输出的类型public:intstartPostion;//字符开始位置intnowPostion;//字符当前位置intlength;//结果个数Operate(strings);voidgetWordAn
6、dNum();boolisNumber(charc);boolisChar(charc);//boolisChar(charc);intisOperaters(charc);boolisblank(charc);voidaddWords(strings,intn);};intisKey(stringstr);voidwork(stringstr);-----------------------------------------function.cpp------------------------------------------------函数定义----------------
7、-------------------------function.cpp------------------------------------------------#include#include#include#include"name.h"usingnamespacestd;//Operate类定义Operate::Operate(strings){str=s;startPostion=0;nowPostion=0;length=0;}voidOperate::getWordAndNum(){for(inti=0;i<=(
8、length-1);i++)cout<<"<"<";}boolOperate::isNumber(charc){if(c>='0'&&c<='9')returntrue;returnfalse;}boolOperate::isChar(charc){if((c>='a'&&c<='z')
9、
10、(c>='A'&&c<='Z')
11、
12、c=='_')returnt
此文档下载收益归作者所有