lr编译器(LR compiler).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lr编译器(LR compiler)

lr编译器(LR compiler) #包含iostream #包括栈 使用名称空间; 堆栈符号符号; [ d ] 50; int = 0; 堆栈状态; 煤焦森[ 50 ]; 字符符号[ 12 ] [ 6 ] = { //符号表 {“、“e”,“e”,是的,“e”,“e”}, {“e”,是的,e,e,e、a }, { e、R’,是的,e、R,R’}, { e、R,R,R,R e、“}, {“、“e”,“e”,是的,“e”,“e”}, { e、R,R,R,R e、“}, {“、“e”,“e”,是的,“e”,“e”}, {“、“e”,“e”,是的,“e”,“e”}, {“e”,是的,e,e,是的,“e”}, { e、R’,是的,e、R,R’}, { e、R,R,R,R e、“}, { e、R,R,R,R e、“} }; char SNUM [ 12 ] [ 6 ] = { //数字表 { 5,1,1,4,2,1 }, { 3,6,5,3,2,0 }, { 2,2,7,2,2,2 }, { 4,4,4,4,4,4 }, { 5,1,1,4,2,1 }, { 6,6,6,6,6,6 }, { 5,1,1,4,2,1 }, { 5,1,1,4,2,1 }, { 3,6,5,3,11,4 }, { 1,1,7,1,1,1 }, { 3,3,3,3,3,3 }, { 5,5,5,5,5,5 } }; int GO2 [ 12 ] [ 3 ] = { //转到表 {1,2,3}, { 0,0,0 }, { 0,0,0 }, { 0,0,0 }, { 8,2,3 }, { 0,0,0 }, { 0,9,3 }, { 0,0,10 }, { 0,0,0 }, { 0,0,0 }, { 0,0,0 }, { 0,0,0 } }; 无效的动作(int,char *和,焦和如何,int、char、int num,,和B)/ /行动函数[我] { Int J; 开关(*) { 案例I: j=0;断裂; 案例+: j=1;断裂; 案例*: j=2;断裂; 案例: j=3;断裂; 案例“”: j=4;断裂; 案例#”: j=5;断裂; 违约: j=1;断裂; } 如果(j)!= 1) { 如何为对称的[我] [ J ]; Num = SNUM [我] [ J ]; 如果(如何= = R’) { 开关(数字) { 案例1: a e,B = 3,D = D [ N-1 N-2 ] [ ] [ ] + D n,n = N-2; cout “按E - E T规约” endl; 打破; 案例2: a e,B = 1; cout “按E - T规约” endl; 打破; 案例3: =不,B = 3,D = D [ N-1 N-2 ] [ ] [ ] * D n,n = N-2; cout “按T>T F规约” endl; 打破; 案例4: a =,b=1; cout “按T>F规约” endl; 打破; 案例5: = F,B = 3; cout “按F—(E)规约” endl; 打破; 案例6: = F,B = 1; cout “按F - ID规约” endl; 打破; 违约: 打破; } } } } (int,int去char)/去[,] { 开关(a) { 案例E: 返回GO2 [吨],[ 0 ];打破; 案例t: 返回GO2 [吨],[ 1 ];打破; 案例F: 返回GO2 [吨],[ 2 ];打破; } } 无效的错误(int,int,char * )/错误处理函数 { cout “错误” endl; 开关(j) { 案例1:/ /期望输入ID或左括号,但是碰到+,*,或美元,就假设已经输入ID了,转到状态5 状态(推)(5); 的象征。推(“我”);/ /必须有这个,如果假设输入ID的话,符号栈里必须有的… cout “缺少运算对象ID” endl; 打破; 案例2:/ /从输入中删除右括号 ++; cout “不配对的右括号” endl; 打破; 案例3:/ /期望碰到+,但是输入ID或左括号,假设已经输入算符+,转到状态6 状态(推)(6); symbol.push (+); court 缺少运算符 endl; break; case 4: / / 缺少右括号, 假设已经输入右括号, 转到状态11 state.push (11). symbol.push ()); court 缺少右括号 endl; break; case 5: a + +; court * 号无效, 应该输入 + 号! endl; case 6: a + +; } } int main () { int s; char * a; char how; int n

您可能关注的文档

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档