




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用C语言实现词法分析器#include#include#include#define _KEY_WORD_END waiting for your expandingtypedef struct int typenum; char *word; WORD; char input255; char token255=; int p_input; int p_token; char ch; char* rwtab=main,if,then,while,do,static,int,double,struct,break,else,long,switch,case,typedef,char,return,const,float,short,continue,for,void,defult,sizeof,do,printf,include,scanf,_KEY_WORD_END; WORD* scaner(); int main() int over=1; WORD* oneword= malloc(sizeof(WORD); printf(Enter Your words(end with $):); scanf(%$s,input); p_input=0; printf(Your words:n%sn,input); while(overtypenumtypenum,oneword-word); over=oneword-typenum; / printf(npress $ to exit: ); scanf(%$s,input); system(pause); return 0; /* char m_getch() ch=inputp_input; p_input=p_input+1; return(ch); /得到字符 void getbc() while(ch= | ch=10) ch=inputp_input; p_input=p_input+1; /去空格 void concat() tokenp_token=ch; p_token=p_token+1; tokenp_token=0; /连接单词 int letter() if(ch=a&ch=A&ch=0&ch typenum = 10;myword - word = ;p_token = 0;m_getch();getbc();if(letter()while(letter()|digit()concat();m_getch();retract(); myword - typenum =reserve(); myword - word = token; printf(n);return(myword);else if(digit()while(digit()concat();m_getch();retract(); myword - typenum = 20; myword - word = token; printf(n);return(myword);else switch(ch)case=:m_getch(); if(ch = =)myword - typenum = 39;myword - word = =;printf(n);return(myword); retract(); myword - typenum = 21; myword - word = =; printf(n); return(myword);break;case+: myword - typenum = 22; myword - word = +; printf(n); return(myword);break;case-: myword - typenum = 23; myword - word = -; printf(n); return(myword);break;case*: myword - typenum = 24; myword - word = *; printf(n); return(myword);break;case/: myword - typenum = 25; myword - word = /; printf(n); return(myword);break;case(: myword - typenum = 26; myword - word = (; printf(n); return(myword);break;case): myword - typenum = 27; myword - word = ); printf(n); return(myword);break;case: myword - typenum = 28; myword - word = ; printf(n); return(myword);break;case: myword - typenum = 29; myword - word = ; printf(n); return(myword);break;case: myword - typenum = 30; myword - word = ; printf(n); return(myword);break;case: myword - typenum = 31; myword - word = ; printf(n); return(myword);break;case,: myword - typenum = 32; myword - word = ,; printf(n); return(myword);break;case: myword - typenum = 33; myword - word = :; printf(n); return(myword);break;case;: myword - typenum = 34; myword - word = ; printf(n); return(myword);break;case:m_getch();if(ch = =)myword - typenum = 37;myword - word = =;printf(n);return(myword);retract(); myword - typenum = 35; myword - word = ; printf(n); return(myword);break;case typenum = 38;myword - word = typenum = 36; myword - word = typenum = 40;myword - word = !=;printf(n);return(myword);retract(); myword - typenum = -1; myword - word = ERROR; printf(n); return(myword);break;case0: myword - typenum = 1000; myword - word = OVER; printf(n); return(myword);break;case #: myword - typenum = 41; myword - word = #; printf(n); return(myword);break;case : myword - typenum = 41; myword - word = ; printf(n); return(myword);break
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 语文教育常规知识培训课件
- 红蓝搭配动漫课件
- 2025新款商业店铺转让合同样本
- 2025私人车位租赁协议
- 商业智能软件租赁合作协议
- 农田水利工程投资建设合作协议
- 农村新型种植技术引进与推广合同
- 保险公司理赔条款协议
- 红楼梦第16章课件讲解
- 红楼梦片段课件
- 2025年湖北省武汉市中考语文真题(含答案)
- 中国心房颤动管理指南2025解读
- Unit1Weletotheunit课件译林版八年级英语上册
- 离职交接事项协议书范本
- 【高考真题】海南省2025年高考真题物理(含答案)
- 体育教师自我介绍课件
- 银行员工职业操守课件
- 初中开学第一课心理健康课
- 艺康servsafe培训课件
- TDT1067-2021不动产登记数据整合建库技术规范
- 加气站投诉处理管理制度
评论
0/150
提交评论