资源简介
全套课程设计,经检验,程序无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级圆柱齿轮减速器零件图
相关资源
- 04741计算机网络原理知识点整理.docx(
- 2018全国大学生计算机博弈大赛 棋谱
- FTP课程设计(服务端+客户端)
- GBT 15532-2008 计算机软件测试规范
- 计算机图形学 边填充算法实现代码
- 编译原理实验工具及参考源码(lex&
- 类pascal语言编译器(编译原理实验)
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- 单片机课程设计 篮球计分器
- 计算机图形学课设 画板
- 硕士计算机英文文献翻译(中英对比
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 20篇关于计算机的毕业设计外文翻译
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 中科院 编译原理 习题及解答
- 编译原理四元式和逆波兰式
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- 计算机专业基础综合知识
评论
共有 条评论