资源简介
全套课程设计,经检验,程序无BUG
#include
#include"lex.h"
main()
{
//LexScan()
//{
char ch,ch1;//存放读入的字符
char token[50]={'\0'};//存放识别的字符串
int i=0;//字符串的指针
int flag;//字符串比较的标志
AttrWord attrword[200]={{"\0"}};//定义属性字
int AWflag=1;//属性字计数器
int k,c,flag1=0,Linenum=1;
FILE*fp=fopen("d:\\lex.txt","r");
if(fp==NULL)
{
printf("can't open text!");
exit(0);
}
ch=fgetc(fp);
代码片段和文件信息
#include
#include“lex.h“
main()
{
//LexScan()
//{
char chch1;//存放读入的字符
char token[50]={‘\0‘};//存放识别的字符串
int i=0;//字符串的指针
int flag;//字符串比较的标志
AttrWord attrword[200]={{“\0“}};//定义属性字
int AWflag=1;//属性字计数器
int kcflag1=0Linenum=1;
FILE*fp=fopen(“d:\\lex.txt““r“);
if(fp==NULL)
{
printf(“can‘t open text!“);
exit(0);
}
ch=fgetc(fp);
while(ch!=EOF)
{
if(ch==‘ ‘||‘\t‘||‘\n‘) c=1;//略去空字
if((ch>=65&&ch<=90)||(ch>=97&&ch<=122)) c=2;//关键字以及标识符判断
if(ch>=48&&ch<=57) c=3;//ID
if((ch>=40&&ch<=45)||(ch>=58&&ch<=62)||ch==33||ch==93||ch==91||ch==123||ch==125) c=4;//运算符等
if(ch==‘/‘) c=5;//‘/‘符号单独处理
switch(c)
{
case 1: if(ch==‘\n‘)
Linenum++;
ch=fgetc(fp);break;
case 2:
while((ch>=65&&ch<=90)||(ch>=97&&ch<=122))
{
token[i]=ch;
i++;
ch=fgetc(fp);
}
i=0;
for(k=1;k<=29;k++)
{
flag=strcmp(tokensymbolcode[k].Letter);
if(flag==0)//关键字
{
attrword[AWflag].x=symbolcode[k].x;
strcpy(attrword[AWflag].Lettersymbolcode[k].Letter);
attrword[AWflag].Linenum=Linenum;
AWflag++;
flag1=1;
break;
}
}
//标识符(NUM)
if(flag1==0)
{
strcpy(attrword[AWflag].Lettertoken);
attrword[AWflag].x=26;attrword[AWflag].Linenum=Linenum;
AWflag++;
}
flag1=0;
for(k=0;k<=50;k++) token[k]=‘\0‘;
break;
case 3://ID
while(ch>=48&&ch<=57)
{
token[i]=ch;
i++;
ch=fgetc(fp);
}
i=0;
strcpy(attrword[AWflag].Lettertoken);
attrword[AWflag].x=25;attrword[AWflag].Linenum=Linenum;
AWflag++;
for(k=0;k<=50;k++) token[k]=‘\0‘;
break;
case 4:
ch1=ch;
if(ch1==‘<‘)//双字符处理
{
ch=fgetc(fp);
if(ch==‘=‘)
{
strcpy(attrword[AWflag].Letter“<=“);
attrword[AWflag].x=11;attrword[AWflag].Linenum=Linenum;
AWflag++;ch=fgetc(fp);
}
else{strcpy(attrword[AWflag].Letter“<“);
attrword[AWflag].x=10;attrword[AWflag].Linenum=Linenum;
AWflag++;}
}
else if(ch1==‘>‘)
{
ch=fgetc(fp);
if(ch==‘=‘)
{
strcpy(attrword[AWflag].Letter“>=“);
attrword[AWflag].x=13;attrword[AWflag].Linenum=Linenum;
AWflag++;ch=fgetc(fp);
}
else{strcpy(attrword[AWflag].Letter“>“);
attrword[AWflag].x=12;
attrword[AWflag].Linenum=Linenum; AWflag++;}
}
else if(ch1==‘=‘)
{
ch=fgetc(fp);
if(ch==‘=‘)
{
strcpy(attrword[AWflag].Letter“==“);
attrword[AWflag].x=14;
attrword[AWflag].Linenum=Linenum;AWflag++;ch=fgetc(fp);
}
else{strcpy(attrword[AWflag].Letter“=“);
attrword[AWflag].x=16;
attrword[AWflag].Linenum=Linenum;AWflag++;}
}
else if(ch1==‘!‘)
{
ch=fgetc(fp);
i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 91136 2010-01-10 14:28 编译原理课程设计\程序.doc
文件 4174 2010-01-09 23:35 编译原理课程设计\词法部分\lex.c
文件 163890 2010-01-09 23:35 编译原理课程设计\词法部分\lex.exe
文件 612 2010-01-07 23:44 编译原理课程设计\词法部分\lex.h
文件 8833 2010-01-09 23:35 编译原理课程设计\词法部分\lex.obj
文件 163890 2010-01-09 23:35 编译原理课程设计\词法部分\tempfile.exe
文件 180274 2010-01-09 19:04 编译原理课程设计\语法部分\tempfile.exe
文件 3172 2010-01-09 19:04 编译原理课程设计\语法部分\text.cpp
文件 3377 2010-01-08 23:08 编译原理课程设计\语法部分\text.dsp
文件 533 2010-01-08 23:24 编译原理课程设计\语法部分\text.dsw
文件 180274 2010-01-09 19:04 编译原理课程设计\语法部分\text.exe
文件 50176 2010-01-08 23:24 编译原理课程设计\语法部分\text.ncb
文件 11527 2010-01-09 19:04 编译原理课程设计\语法部分\text.obj
文件 48640 2010-01-08 23:24 编译原理课程设计\语法部分\text.opt
文件 734 2010-01-08 23:10 编译原理课程设计\语法部分\text.plg
文件 180272 2010-01-08 23:10 编译原理课程设计\语法部分\Debug\text.exe
文件 234876 2010-01-08 23:10 编译原理课程设计\语法部分\Debug\text.ilk
文件 11887 2010-01-08 23:10 编译原理课程设计\语法部分\Debug\text.obj
文件 272408 2010-01-08 16:26 编译原理课程设计\语法部分\Debug\text.pch
文件 484352 2010-01-08 23:10 编译原理课程设计\语法部分\Debug\text.pdb
文件 50176 2010-01-08 23:10 编译原理课程设计\语法部分\Debug\vc60.idb
文件 61440 2010-01-08 23:10 编译原理课程设计\语法部分\Debug\vc60.pdb
文件 760320 2010-01-11 00:59 编译原理课程设计\课程答辩.ppt
文件 211456 2010-01-10 19:35 编译原理课程设计\课设报告2007024306常江.doc
文件 338 2010-01-07 22:12 编译原理课程设计\新建文件夹\entry.h.txt
文件 730 2010-01-07 22:12 编译原理课程设计\新建文件夹\node.h.txt
文件 873 2010-01-07 22:10 编译原理课程设计\新建文件夹\parse.txt
文件 1177 2010-01-07 22:20 编译原理课程设计\新建文件夹\symboltable.cpp.txt
文件 371 2010-01-07 22:13 编译原理课程设计\新建文件夹\symtable.h.txt
文件 576 2010-01-07 22:11 编译原理课程设计\新建文件夹\token.h.txt
............此处省略10个文件信息
- 上一篇:使用LabVIEW读取DXF文件并显示该图形直线
- 下一篇:2级圆柱齿轮减速器零件图
相关资源
- pid单纯形法
- 编译原理算符优先文法实验源码
- 计算机网络第五版 清华大学出版社
- 计算机操作系统答案+方敏版
- 计算机图形学裁剪算法
- 北邮数字逻辑课程设计实验报告 调试
- 微机原理课程设计压力测控系统
- 计算机组成原理课程设计-硬布线加中
- 杭电计算机组成原理复习卷
- 数据库课程设计—房屋销售管理
- 微机接口技术课程设计计算机钢琴实
- 校运动会管理系统.zip
- opengl雪花代码
- 计算机系微机接口实验代码
- 计算机网络第五版(andrew)官方英文
- RSA加密解密网络课程设计
- IOS Swift 表达式计算机
- 单片机课程设计任务书,单片机课程
- 国内非常权威计算机会议排名
- 单片机电子密码锁课程设计
- 数据结构课程设计 线索二叉树
- 计算机网络课程设计:简单FTP客户端
- 计算机网络课程设计,校园局域网建
- EDA课程设计 点阵实验
- 操作系统课程设计源代码
- 微机综合课程设计,模拟电梯控制系
- 多径衰落信道的仿真模拟.doc
- VC课程设计-指针式时钟
- 哈工大 编译原理作业
- 广东工业大学数据结构课设---航空航
评论
共有 条评论