-
大小: 961KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-09
- 語言: 其他
- 標(biāo)簽: 編譯原理??課程設(shè)計(jì)??計(jì)算機(jī)??
資源簡介
全套課程設(shè)計(jì),經(jīng)檢驗(yàn),程序無BUG
#include
#include"lex.h"
main()
{
//LexScan()
//{
char ch,ch1;//存放讀入的字符
char token[50]={'\0'};//存放識別的字符串
int i=0;//字符串的指針
int flag;//字符串比較的標(biāo)志
AttrWord attrword[200]={{"\0"}};//定義屬性字
int AWflag=1;//屬性字計(jì)數(shù)器
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“l(fā)ex.h“
main()
{
//LexScan()
//{
char?chch1;//存放讀入的字符
char?token[50]={‘\0‘};//存放識別的字符串
int?i=0;//字符串的指針
int?flag;//字符串比較的標(biāo)志
AttrWord?attrword[200]={{“\0“}};//定義屬性字
int?AWflag=1;//屬性字計(jì)數(shù)器
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;//關(guān)鍵字以及標(biāo)識符判斷
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;//運(yùn)算符等
if(ch==‘/‘) c=5;//‘/‘符號單獨(dú)處理
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)//關(guān)鍵字
{
attrword[AWflag].x=symbolcode[k].x;
strcpy(attrword[AWflag].Lettersymbolcode[k].Letter);
attrword[AWflag].Linenum=Linenum;
AWflag++;
flag1=1;
break;
}
}
//標(biāo)識符(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??編譯原理課程設(shè)計(jì)\程序.doc
?????文件???????4174??2010-01-09?23:35??編譯原理課程設(shè)計(jì)\詞法部分\lex.c
?????文件?????163890??2010-01-09?23:35??編譯原理課程設(shè)計(jì)\詞法部分\lex.exe
?????文件????????612??2010-01-07?23:44??編譯原理課程設(shè)計(jì)\詞法部分\lex.h
?????文件???????8833??2010-01-09?23:35??編譯原理課程設(shè)計(jì)\詞法部分\lex.obj
?????文件?????163890??2010-01-09?23:35??編譯原理課程設(shè)計(jì)\詞法部分\tempfile.exe
?????文件?????180274??2010-01-09?19:04??編譯原理課程設(shè)計(jì)\語法部分\tempfile.exe
?????文件???????3172??2010-01-09?19:04??編譯原理課程設(shè)計(jì)\語法部分\text.cpp
?????文件???????3377??2010-01-08?23:08??編譯原理課程設(shè)計(jì)\語法部分\text.dsp
?????文件????????533??2010-01-08?23:24??編譯原理課程設(shè)計(jì)\語法部分\text.dsw
?????文件?????180274??2010-01-09?19:04??編譯原理課程設(shè)計(jì)\語法部分\text.exe
?????文件??????50176??2010-01-08?23:24??編譯原理課程設(shè)計(jì)\語法部分\text.ncb
?????文件??????11527??2010-01-09?19:04??編譯原理課程設(shè)計(jì)\語法部分\text.obj
?????文件??????48640??2010-01-08?23:24??編譯原理課程設(shè)計(jì)\語法部分\text.opt
?????文件????????734??2010-01-08?23:10??編譯原理課程設(shè)計(jì)\語法部分\text.plg
?????文件?????180272??2010-01-08?23:10??編譯原理課程設(shè)計(jì)\語法部分\Debug\text.exe
?????文件?????234876??2010-01-08?23:10??編譯原理課程設(shè)計(jì)\語法部分\Debug\text.ilk
?????文件??????11887??2010-01-08?23:10??編譯原理課程設(shè)計(jì)\語法部分\Debug\text.obj
?????文件?????272408??2010-01-08?16:26??編譯原理課程設(shè)計(jì)\語法部分\Debug\text.pch
?????文件?????484352??2010-01-08?23:10??編譯原理課程設(shè)計(jì)\語法部分\Debug\text.pdb
?????文件??????50176??2010-01-08?23:10??編譯原理課程設(shè)計(jì)\語法部分\Debug\vc60.idb
?????文件??????61440??2010-01-08?23:10??編譯原理課程設(shè)計(jì)\語法部分\Debug\vc60.pdb
?????文件?????760320??2010-01-11?00:59??編譯原理課程設(shè)計(jì)\課程答辯.ppt
?????文件?????211456??2010-01-10?19:35??編譯原理課程設(shè)計(jì)\課設(shè)報告2007024306常江.doc
?????文件????????338??2010-01-07?22:12??編譯原理課程設(shè)計(jì)\新建文件夾\entry.h.txt
?????文件????????730??2010-01-07?22:12??編譯原理課程設(shè)計(jì)\新建文件夾\node.h.txt
?????文件????????873??2010-01-07?22:10??編譯原理課程設(shè)計(jì)\新建文件夾\parse.txt
?????文件???????1177??2010-01-07?22:20??編譯原理課程設(shè)計(jì)\新建文件夾\symboltable.cpp.txt
?????文件????????371??2010-01-07?22:13??編譯原理課程設(shè)計(jì)\新建文件夾\symtable.h.txt
?????文件????????576??2010-01-07?22:11??編譯原理課程設(shè)計(jì)\新建文件夾\token.h.txt
............此處省略10個文件信息
- 上一篇:使用LabVIEW讀取DXF文件并顯示該圖形直線
- 下一篇:2級圓柱齒輪減速器零件圖
評論
共有 條評論