• 大小: 26KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-07-06
  • 语言: 其他
  • 标签: 词法分析  

资源简介

词法分析(主要实现了词法分析的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 < np)
*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


评论

共有 条评论