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

資源簡介

編譯的語法分析程序,有詞法的程序包含里面,容易讀懂。

資源截圖

代碼片段和文件信息

/************************************************************************?
*?文件名:????FenXi.cpp?
*?文件描述:??詞法語法分析的實現(xiàn)文件
*?創(chuàng)建人:????程紅秀?2005年06月15日?
************************************************************************/?
//#include?“stdafx.h“
#include?“fenxi.h“
#include
#include
#include
#include
using?namespace?std;

/*================================================================?
*?函數(shù)名:????CiFaFenXi
*?功能描述:???詞法分析?(public)
*?返回值:????void
================================================================*/
void?CFenXi::CiFaFenXi()
{
///*
cout<<“filename:“;
?? string?filename;
cin>>filename;
ifstream?infile;
infile.open(filename.c_str());
int?x=0;
while(!infile.eof())
{
infile.get(m_str[x++]);
}
m_str[--x]=‘\0‘;
//*/
bool?flag=false;
char?token[20];
int?kv;

init();

for?(int?i=0;i delete?m_cifa[i];

int?n=0; //用于指示當(dāng)前的字符
m_n=0; //詞法結(jié)果的個數(shù)

while?(m_str[n])
{
if?(flag)
{
while?(!((m_str[n]==‘*‘)&&(m_str[n+1]==‘/‘)))
{
if?(m_str[n])?
n++;
else?
break;
}

if?(m_str[n])
{
n++;
n++;
flag=false;
}
}
while?(1)
{
while?((m_str[n]==32)?||?(m_str[n]==9))
n++;

if?(!((m_str[n]==13)?&&?(m_str[n+1]==10)))
break;

n++;
n++;
}


if?(isalpha(m_str[n])) //字母
{
k=0;
while?(1)
{
if?(k<19) //標(biāo)志符的長度為20
token[k++]=m_str[n++];
else?
n++;

if?(!isalnum(m_str[n]))?//如果不是數(shù)字或字母就退出
break;
}

token[k]=0;
v=FindInKWTab(token); //查找關(guān)鍵詞表
if?(v) //如果是關(guān)鍵詞
{
m_cifa[m_n]=new?CIFA;
m_cifa[m_n]->nValue=0;
m_cifa[m_n]->nType=v;
strcpy(m_cifa[m_n]->szTexttoken);
m_cifa[m_n]->nAddr=n-k;
m_n++;
}
else???//普通標(biāo)志符
{
m_cifa[m_n]=new?CIFA;

????/*----------在詞法分析結(jié)果中查找-----------*/
int?vv=1;
for?(int?i=0;i {
if?(m_cifa[i]->nType==1)
{
vv++;
if?(!::stricmp(m_cifa[i]->szTexttoken))
m_cifa[m_n]->nValue=?m_cifa[i]->nValue;
}
}
m_cifa[m_n]->nValue=vv;
????/*---------------------------------------*/

m_cifa[m_n]->nType=1;
strcpy(m_cifa[m_n]->szTexttoken);
m_cifa[m_n]->nAddr=n-k;
m_n++;
}
}
else?if?(isdigit(m_str[n])) //數(shù)字
{
k=0;
bool?error=false;
while?(1)
{
if?(k<=8)?
token[k++]=m_str[n++];
else
{
error=true;
n++;
}
if?(!isdigit(m_str[n]))?
break;
}
token[k]=0;
v=::strtol(tokenNULL10);
if?(error)
{
m_cifa[m_n]=new?CIFA;
m_cifa[m_n]->nValue=1;
m_cifa[m_n]->nType=0;
strcpy(m_cifa[m_n]->szTexttoken);
m_cifa[m_n]->nAddr=n-k;
m_n++;
}
else
{
m_cifa[m_n]=new?CIFA;
m_cifa[m_n]->nValue=v;
m_cifa[m_n]->nType=2;
strcpy(m_cifa[m_n]->szTexttoken);

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

?????文件??????29889??2009-05-15?11:43??賦值\beifen.cpp

?????文件?????573528??2009-05-19?12:37??賦值\Debug\FenXi.exe

?????文件?????818560??2009-05-19?12:37??賦值\Debug\FenXi.ilk

?????文件?????298607??2009-05-19?12:37??賦值\Debug\FenXi.obj

????.CA....???2081936??2009-05-15?10:11??賦值\Debug\FenXi.pch

?????文件????1147904??2009-05-19?12:37??賦值\Debug\FenXi.pdb

?????文件??????82944??2009-05-19?12:38??賦值\Debug\vc60.idb

?????文件?????110592??2009-05-19?12:37??賦值\Debug\vc60.pdb

?????文件??????12692??2009-05-19?12:39??賦值\FenXi.cpp

?????文件???????3389??2009-05-19?12:38??賦值\FenXi.dsp

?????文件????????518??2009-05-19?12:38??賦值\FenXi.dsw

?????文件???????1926??2005-06-15?11:06??賦值\FenXi.h

?????文件??????41984??2009-05-19?12:38??賦值\FenXi.ncb

?????文件??????48640??2009-05-19?12:38??賦值\FenXi.opt

?????文件????????244??2009-05-19?12:38??賦值\FenXi.plg

?????文件?????????13??2009-05-19?12:32??賦值\in.txt

?????目錄??????????0??2009-05-19?12:37??賦值\Debug

?????目錄??????????0??2009-05-20?12:22??賦值

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

??????????????5253366????????????????????18


評論

共有 條評論