四川大学 c minus语法分析器 纯代码
26页1、#include#include#include#includeusingnamespacestd; #defineBUFLEN256#defineMAXLEN256#defineMAXTOKENLEN40#defineMAXCHILDREN4staticintlineno;staticintlinepos=0;/读取的字符在lineBuf的位置staticintEOF_FLAG=false;staticintbufsize=0;/lineBuf的长度staticcharlineBufBUFLEN;FILE*source;chartokenStringMAXTOKENLEN+1;stringoutput;/输出文件 enumTokenTypeENDFILE,ERROR,IF,ELSE,INT,RETURN,VOID,WHILE,ID,NUM,ASSIGN,EQ,LT,PLUS,MINUS,TIMES,OVER,LPAREN,RPAREN,SEMI,LBRACKET,RBRACKET,LBRACE,RBRACE,COMMA,GT,GEQ,NEQ,LEQ; enumStateTypeSTA
2、RT,INASSIGN,INCOMMENT,INNUM,INID,DONE,PRECOMMENT,AFTERCOMMENT; structchar*str;TokenTypetok;ReserverWords6=if,IF,else,ELSE,int,INT,return,RETURN,void,VOID,while,WHILE; voidUnGetNextChar()if(!EOF_FLAG)linepos-; intGetNextChar()if(!(lineposbufsize)lineno+;if(fgets(lineBuf,BUFLEN-1,source)bufsize=strlen(lineBuf);linepos=0;returnlineBuflinepos+;elseEOF_FLAG=true;returnEOF;elsereturnlineBuflinepos+; TokenTypeReservedLookUp(char*s)inti;for(i=0;i6;i+)if(!strcmp(s,ReserverWordsi.str)returnReserverWordsi.
3、tok;returnID; TokenTypeGetToken()StateTypestate=START;/初始状态为startboolsave;TokenTypeCurrentToken;inttokenStringIndex=0;stringassign=;while(state!=DONE)intc=GetNextChar();save=true;switch(state)caseSTART:if(isdigit(c)state=INNUM;elseif(isalpha(c)state=INID;elseif(c=)|(c=)|(c=!)state=INASSIGN;assign+=char(c);elseif(c=)|(c=t)|(c=n)save=false;elseif(c=/)save=false;state=PRECOMMENT;elsestate=DONE;switch(c)caseEOF:save=false;CurrentToken=ENDFILE;break;case+:CurrentToken=PLUS;break;case-:CurrentToken=MI
《四川大学 c minus语法分析器 纯代码》由会员小**分享,可在线阅读,更多相关《四川大学 c minus语法分析器 纯代码》请在金锄头文库上搜索。
2020年高考真题——理科综合(全国卷Ⅲ)+Word版含答案
2021年绝味鸭脖策划书
2021年熟食店创业方案
2021年熟食店开店策划
2021年卤菜店创业计划书
2021年周黑鸭网络营销策划方案
东大21年1月考试《现代设计方法》考核作业
谈我国行政管理效率的现状及其改观对策(论文)
单证员考试-备考辅导-复习资料:无贸易背景信用证案分析.docx
土木工程毕业生答辩自述.docx
建筑学毕业后工作状态真实写照.doc
C#代码规范(湖南大学).doc
xx区食药监局2019年工作总结及2020年工作计划
2019年中医院药物维持治疗门诊工人先锋号先进事迹
2019年度xx乡镇林长制工作总结
2019年性艾科工作计划书
2019年人才服务局全国扶贫日活动开展情况总结
关于组工信息选题的几点思考
摘了穷帽子 有了新模样
2019年某集团公司基层党支部书记培训班心得体会
2024-04-08 33页
2024-04-08 10页
2024-04-08 25页
2024-04-08 12页
2024-04-08 10页
2024-04-08 21页
2024-04-08 40页
2024-04-08 34页
2024-04-08 28页
2024-04-08 28页