资源简介
词法分析(主要实现了词法分析的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
- 上一篇:工程伦理.docx
- 下一篇:基于51单片机的智能垃圾桶V4.01.docx
相关资源
- 编译原理大作业 完整编译器
- 编译原理--词法分析器+语法分析器 源
- 编译原理实验报告,词法分析,语法
- 简单词法分析器,输出token和简单符号
- Sample语言词法分析器标准答案
- 词法分析实验报告含代码
- 编译原理 词法分析,语法分析,中间
- 词法分析+语法分析(附实验报告)
- Python 实现的 C 词法分析器
- Sample语言编译器(词法分析、正规式
- 编译原理词法分析实验报告内含截图
- 编译原理——词法分析代码
- 实验一 词法分析程序实现
- 编译原理语法分析和词法分析
- PL0(包括对其的扩充)
- 词法分析器和语法分析器
- 编写一个词法分析器,它针对输入文
- Lex词法分析实验
- 算符优先分析和词法分析器的设计与
- TINY+词法分析完全
- 编译原理--词法分析实验(含代码)
- 一个简单编译器前端包括词法分析,
- 完整cmm解释器构造实践 二 词法分析
- pascal语言的词法分析器
- 编译原理上机作业-词法分析程序实现
- 编译程序构造
- 编译原理及实践手工构造词法分析器
- SeuLexSeuYacc
- pl0词法语法分析器
- 编译原理实验+报告+流程图
评论
共有 条评论