c词法分析器实验报告.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c词法分析器实验报告

PAGE  PAGE 19 c词法分析器实验报告 篇一:词法分析器实验报告 实验报告 实验题目:词法分析器 院系班级:计科系0901班 姓名学号: 2009210603 实验时间:2011-10-21 设计。编制并调试一个词法分析程序,加深对词法分析原理的理解。 实验要求 设计出一个简单的词法分析程序,能够识别关键字(包含begin、if、end、 while、else、 then)、标识符、数字及数种符号(+、-、*、/、(、)、:、=、:=、#、gt;、lt;、lt;gt;、lt;=、gt;=、;)。返回并打印各类字符所对应的种类编码及该字符所组成的二元组。 算法设计流程图 # include lt;stdio.hgt; # include lt;string.hgt; # include lt;stdlib.hgt; # include lt;ctype.hgt; typedef struct { int num; char *word; }WORD; char token[255]=quot;quot;; char input[255]; int t=0; int i=0; char gjz[6][10]={quot;beginquot;,quot;ifquot;,quot;thenquot;,quot;whilequot;,quot;doquot;,quot;endquot;};char ch; WORD* start() { WORD*myword=new WORD; myword-gt;num=1; myword-gt;word=quot;quot;; t=0; ch=input[i]; i++; while(ch==#39; #39;||ch==10) { ch=input[i]; i++; } if (isalpha(ch)) { while(isalpha(ch)||isdigit(ch)) { token[t]=ch; t++; token[t]=#39;\0#39;; ch=input[i]; i++; } i--; int n=0; while(nlt;=6) { if(!strcmp(token,gjz[n])) { myword-gt;num=n+1;myword-gt;word=token;return myword; } n++; }//关键字 myword-gt;num=10; myword-gt;word=token; return(myword); }//标识符 else if(isdigit(ch)) { while (isdigit(ch)) { token[t]=ch; t++; token[t]=#39;\0#39;; ch=input[i]; i++; } i--; myword-gt;num=11; myword-gt;word=token; return(myword); }//数字 else switch(ch) { case#39;+#39;:myword-gt;num=13;myword-gt;word=quot;+quot;;return(myword);break; case#39;-#39;:myword-gt;num=14;myword-gt;word=quot;-quot;; return(myword);break; case#39;*#39;:myword-gt;num=15;myword-gt;word=quot;*quot;;return(myword);break; case#39;/#39;:myword-gt;num=16;myword-gt;word=quot;/quot;;return(myword);break; case#39;lt;#39;:ch=input[i]; i++; if(ch==#39;gt;#39;) { myword-gt;num=21; myword-gt;word=quot;lt;gt;quot;; return(myword);} else if (ch==#39;=#39;){ myword-gt;num=22; myword-gt;word=quot;lt;=quot;; return(myword);} i--; myword-gt;num=20;myword-gt;word=quot;lt;quot;;return(myword);break; case#39;gt;#39;:ch=input[i]; i++; if(ch==#39;=#39;) { myword-gt;num=24; myword-gt;word=quot;gt;=quot;; return(myword);} i-

文档评论(0)

1045141460 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档