while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)

while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)

ID:18329628

大小:68.00 KB

页数:26页

时间:2018-09-16

while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)_第1页
while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)_第2页
while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)_第3页
while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)_第4页
while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)_第5页
资源描述:

《while循环语句的翻译程序设计(ll(1)法、输出三地址表示)_1_1(国外英语资料)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、WHILE循环语句的翻译程序设计(LL(1)法、输出三地址表示)_1_1#include“iostream”使用命名空间性病。定义最大化使用源程序的最大字符数。定义最大化的关键字长度的18///关键字的最长字符数。定义MaxiTokenNumer118//标识符可以包含字符的最大数量*.........*/定义最大化的长度为18#定义maxitokennumer1118*.........*/字符是[MaxiTokenNumer1][MaxiWordLength1]Int顶级=0;Int=1;//初始化……下面的定义堆栈结构,堆栈中的元

2、素是一个结构。*/类型定义结构体{Int添加;Int下;CharSTR(MaxiWordLength1);ADDL;//ADDL是用来识别时间的对于已定义的结构名称,ADDLLmaxitoken算术1;//LInt问=0;Intnadd使它们更接近=1;//初始化/*.........输入堆栈,堆栈中的元素。*/类型定义结构体{IntID;Char(MaxiWordLengthb);}的联系;令牌的联系[MaxiTokenNumer];链接Token2[MaxiTokenNumer];整型符号numer=1;//标记位置Char,[Ma

3、xiProgramNumber]。//数组用于加载源程序IntnLength=0;//指向数组中的元素……函数声明(在词法分析中使用的函数)……*/空GetProgram();//将源程序加载到数组a中CharGetChr();//读取数组a中的元素判断“0”的判断(char&CHR);字母(char);//为字母Void输入(charp、charc、int&nx);//标识符或关键字进入数组,即指向指针的nx+1元素空白保存(char字、intx);//加载密钥、标识符或操作符令牌空白Getcode();……函数声明(语法分析中使用的

4、函数)……*/将Pop();//从堆栈中取出无效的输入();空白InputE1();空白InputE2();空白InputE3();空白InputA();Intfirstset();IntpanduanSEA();//识别非终端字符IntEStrcmp();*.........词法分析的部分……*/IntWordanalyze(){Intjieshu=0;CharCRH。Cout<<<<<<<“>=<<<<<<<>>>:"<<<<<<<<>>>;GetProgram();//将源程序加载到数组a中Intx;Char的单词长度;//声明一

5、个临时数组当(CHR=GetChr())='0'时{如果(科){打破;//跳过空格并返回元素X=0;x='0';//空如果(胰岛(CRH)){jieshu=1;而(胰岛(CRH)){输入(单词、CRH、x);//一个字符将其加载到一个数组单词中CRH=GetChr();}如果(CHR='='CHR='='=')NLength=NLength-1;//指针x='0'保存(单词,x);//加载密钥或标识符或操作符令牌}否则,如果(CHR==')//输入'{输入(词,CRH,x);x='0'保存(单词,x);}Elseif(CHR==“=”)

6、//加载令牌{输入(词,CRH,x);x='0'保存(单词,x);}Elseif(CHR==“小于”)//装入令牌{输入(词,CRH,x);x='0'保存(单词,x);}其他的{Printf("输入错误!n);//错误处理Jieshu=0;返回0;}//这个函数是输入符号的函数if(jieshu==1)//词法分析结束{Getcode();在词汇分析的词汇分析阶段。Printf(“词法分析结果:n小于范畴,单词n”);For(intI=1;I小于n记号numer;I++)//输出词法分析{Printf("<");Printf(“%d”,

7、令牌I.id);Printf(",");Printf(“%s”,令牌I。b);Printf(“n”);(b)//复制符号2中的输入符号}For(intd=1;d小于n记号numer;d++)//用id替换标识符{如果令牌[d]。ID==6){(令牌[d]。b"id");}}(令牌[nTokenNumer]。b,“#”);令牌(nTokenNumer)。ID=7;//'不被编码为7返回1;}//getch();Intabcd;Cin>>abcd。}VoidGetProgram()//将源程序加载到数组a中{Charch;(ch=getch

8、ar())!='#'){如果(nLength=最大化-2)打破;其他的一个[n]=ch;}一个nLength='0';NLength=0;}CharGetChr()//读取数组a中的元素{如果(nLengt

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

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

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