資源簡介
詞法分析(主要實現了詞法分析的token)

代碼片段和文件信息
#include?“StdAfx.h“
#include?“.\HideSet.h“
//?A?hideset?is?a?null-terminated?array?of?Nlist?pointers.?They?are?referred?to?by?indices?in?the?hidesets?array.?Hideset?0?is?empty.
#define HSSIZ 32
CHideSet?m_HideSet;
CHideSet::CHideSet(void)
{
m_pHidesets?=?NULL;
m_nHidesets?=?0;
m_MaxHidesets?=?3;
}
CHideSet::~CHideSet(void)
{
}
void?CHideSet::InitHs(void)
{
m_pHidesets?=?(Nlist?***)malloc(m_MaxHidesets*sizeof(Nlist?***));
m_pHidesets[0]?=?(Nlist?**)malloc(sizeof?*m_pHidesets[0]);
*m_pHidesets[0]?=?NULL;
m_nHidesets++;
}
int?CHideSet::CheckHideset(int?hs?Nlist?*np)
{
Nlist?**hsp;
if(hs?>=?m_nHidesets)
abort();
for(hsp?=?m_pHidesets[hs];?*hsp;?hsp++)
{
if?(*hsp?==?np)
return?1;
}
return?0;
}
//?Return?the?(possibly?new)?hideset?obtained?by?adding?np?to?hs.
int?CHideSet::NewHideset(int?hs?Nlist?*np)
{
int?i?len;
Nlist?*nhs[HSSIZ+3];
Nlist?**hs1?**hs2;
len?=?InsertHs(nhs?m_pHidesets[hs]?np);
for?(i=0;?i for?(hs1=nhs?hs2=m_pHidesets[i];?*hs1==*hs2;?hs1++?hs2++)
if?(*hs1?==?NULL)
return?i;
}
if(len?>=?HSSIZ)
return?hs;
if(m_nHidesets?>=?m_MaxHidesets)
{
m_MaxHidesets?=?3?*?m_MaxHidesets/2+1;
m_pHidesets?=?(Nlist?***)realloc(m_pHidesets?(sizeof?(Nlist?****))?*?m_MaxHidesets);
if(m_pHidesets?==?NULL)
error(FATAL?“Out?of?memory?from?realloc“);
}
hs1?=?(Nlist?**)malloc(len?*?sizeof?*hs1);
memmove(hs1?nhs?len?*?sizeof?*hs1);
m_pHidesets[m_nHidesets]?=?hs1;
return?m_nHidesets++;
}
//?Hideset?union
int?CHideSet::UnionHideset(int?hs1?int?hs2)
{
Nlist?**hp;
for(hp?=?m_pHidesets[hs2];?*hp;?hp++)
hs1?=?NewHideset(hs1?*hp);
return?hs1;
}
void?CHideSet::PrHideset(int?hs)
{
Nlist?**np;
for(np?=?m_pHidesets[hs];?*np;?np++)
{
fprintf(stderr?(char*)(*np)->name?(*np)->len);
fprintf(stderr?“?“);
}
}
int?CHideSet::InsertHs(Nlist?**?dhs?Nlist?**?shs?Nlist?*np)
{
Nlist?**?odhs?=?dhs;
while(*shs?&&?*shs? *dhs++?=?*shs++;
if(*shs?!=?np)
*dhs++?=?np;
do
*dhs++?=?*shs;
while?(*shs++);
return?dhs?-?odhs;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2430??2009-10-28?15:08??cpp7\cpp.h
?????文件???????1486??2009-10-28?15:08??cpp7\DataType.h
?????文件???????2139??2009-10-28?15:08??cpp7\HideSet.cpp
?????文件????????546??2009-10-28?15:08??cpp7\HideSet.h
?????文件???????2201??2009-10-28?15:08??cpp7\lex.cpp
?????文件???????1424??2009-10-28?15:08??cpp7\LogFile.cpp
?????文件????????395??2009-10-28?15:08??cpp7\LogFile.h
?????文件???????2021??2009-10-28?15:08??cpp7\MacroList.cpp
?????文件????????605??2009-10-28?15:08??cpp7\MacroList.h
?????文件???????1580??2009-10-28?15:08??cpp7\MyCpp.cpp
?????文件???????4451??2009-10-28?15:08??cpp7\MyCpp.vcproj
?????文件???????8997??2009-10-28?15:08??cpp7\MyQueue.h
?????文件????????209??2009-10-28?15:08??cpp7\stdafx.cpp
?????文件????????546??2009-10-28?15:08??cpp7\stdafx.h
?????文件??????44639??2009-10-28?15:08??cpp7\TokenRow.cpp
?????文件???????3674??2009-10-28?15:08??cpp7\TokenRow.h
?????文件????????403??2009-10-28?15:08??cpp7\tokens.cpp
?????文件????????712??2009-10-28?15:08??cpp7\unix.cpp
?????目錄??????????0??2010-01-04?17:13??cpp7
-----------?---------??----------?-----??----
????????????????78458????????????????????19
- 上一篇:工程倫理.docx
- 下一篇:基于51單片機的智能垃圾桶V4.01.docx
評論
共有 條評論