91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

編譯原理 課程設計 小子集程序 南工大計軟

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#include
#define?NULL?0
struct?Stack??//??棧結構體:?序號、內容、連接下一結點指針
{
int?num;
char?name;
struct?Stack?*next;
};
struct?Guiyue//?規則集結構體:序號、規則長度、符號、連接下一結點指針
{
int?num;
int?count;
char?name;
struct?Guiyue?*next;
};

struct?Relation?//?分析表結構體:狀態序號、對應符號列、操作類型的對應序號、操作類型、連接下一結點指針
{??
int?line_States?;
char?rank_Letter;
int?relationship;
char?name;
struct?Relation?*next;
};
??
struct?Sign?//?符號表結構體:?自變量名、標識類型、連接下一結點指針
{
char?name[20];
char?kind;
struct?Sign?*next;
};
???
struct?Word?//?單詞表結構體:?單詞名字、標識類型、狀態、序號、行號、連接符號表指針、連接下一結點指針
{
char?name[20];
char?mark_name;
int?state;
int?num;
int?line;
struct?Sign?*link;
struct?Word?*next;
};

FILE?*fp1;//文件指針
int?row=1line[10000]Lin[300]w_num;//字符行變量、字符行、單詞所在行、字符數
char?buffer[10000];//字符串緩沖區
Stack?*MarkPush(Stack?*ipchar?markint?I_i)//壓棧
{
Stack?*s;
s=(Stack?*)malloc(sizeof(Stack));
s->name=mark;
s->num=I_i;
s->next=ip;
ip=s;
return?ip;
}

void?MarkPop(Stack?*ip)//出棧
{
Stack?*q;
char?name;
name=ip->name;
q=ip->next;
if(ip->next!=NULL)
{
ip->name=ip->next->name;
ip->num=ip->next->num;
ip->next=ip->next->next;
free(q);
}
}
int?judge(char?ch)//?接收ch判斷字符,變量flag返回字符類別
{
int?flag;
if(ch==‘!‘||ch==‘$‘||ch==‘&‘||ch==‘*‘||ch==‘(‘||ch==‘)‘||ch==‘-‘||ch==‘_‘||
???ch==‘+‘||ch==‘=‘||ch==‘|‘||ch==‘{‘||ch==‘}‘||ch==‘[‘||ch==‘]‘||ch==‘;‘||
???ch==‘:‘||ch==‘“‘||ch==‘<‘||ch==‘‘||ch==‘>‘||ch==‘.‘||ch==‘/‘||ch==‘\‘‘)??
flag=1;
else?if(‘0‘<=ch&&ch<=‘9‘)??????????????????????????
flag=2;
else?if((‘a‘<=ch&&ch<=‘z‘)||(‘A‘<=ch&&ch<=‘Z‘))????
flag=3;
else?if(ch==‘?‘)???????????????????????????????????
flag=4;
else?if(ch==‘\n‘)??????????????????????????????????
flag=5;
else?if(ch==‘?‘)???????????????????????????????????
flag=6;
else?if(feof(fp1))
????????flag=7;//結束
else???????????????????????????????????????????????
flag=0;??????//illegal?character
return(flag);
}
//======================================================================================================
//??詞法分析函數:?void?scan()
//??????數據傳遞:?形參fp接收指向文本文件頭的文件指針;
//????????????????全局變量buffer與line對應保存源文件字符及其行號,char_num保存字符總數。
void?scan()
{
char?ch;
int?flagj=0i=-1;
while(!feof(fp1))
{
ch=fgetc(fp1);
flag=judge(ch);
printf(“%c“ch);//顯示打開的文件
?? ????if(flag==1||flag==2||flag==3)????{i++;buffer[i]=ch;line[i]=row;}
??else?if(flag==4)?????????????????{i++;buffer[i]=‘?‘;line[i]=row;}
? ????else?if(flag==5)?????????????????{i++;buffer[i]=‘~‘;row++;}
else?if(flag==7)??continue;
???????else??cout<<“\n請注意,第“< }?????????????????????????????????????????
w_num=i;

/*****************確定單詞所在的行*****************/
int?onetwok=0;
for(i=0;i one=judge(buffer[i]);
two=judge(buffer[i+1

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????58368??2009-01-08?14:31??C編譯器\Debug\vc60.idb

?????文件??????69632??2009-01-08?14:31??C編譯器\Debug\vc60.pdb

?????文件?????237636??2009-01-08?14:31??C編譯器\Debug\簡單C編譯器.exe

?????文件?????283256??2009-01-08?14:31??C編譯器\Debug\簡單C編譯器.ilk

?????文件??????63710??2009-01-08?14:31??C編譯器\Debug\簡單C編譯器.obj

????I.A....????347176??2009-01-08?14:31??C編譯器\Debug\簡單C編譯器.pch

?????文件?????484352??2009-01-08?14:31??C編譯器\Debug\簡單C編譯器.pdb

?????文件????????143??2009-01-08?12:47??C編譯器\li.txt

?????文件????????159??2009-01-08?13:23??C編譯器\liyoubu.txt

?????文件????????664??2009-01-07?11:49??C編譯器\LR.txt

?????文件??????31320??2009-01-08?13:20??C編譯器\簡單C編譯器.cpp

?????文件???????3463??2009-01-08?14:31??C編譯器\簡單C編譯器.dsp

?????文件????????547??2009-01-08?14:32??C編譯器\簡單C編譯器.dsw

?????文件??????41984??2009-01-08?14:32??C編譯器\簡單C編譯器.ncb

?????文件??????48640??2009-01-08?14:32??C編譯器\簡單C編譯器.opt

?????文件????????256??2009-01-08?14:31??C編譯器\簡單C編譯器.plg

?????目錄??????????0??2009-01-08?14:31??C編譯器\Debug

?????目錄??????????0??2009-01-08?14:32??C編譯器

-----------?---------??----------?-----??----

??????????????1671306????????????????????18


評論

共有 條評論