资源简介
词法分析(主要实现了词法分析的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
相关资源
- 编译词法分析器识别关键字常数和符
- SAMPLE (类pascal) 词法分析程序 C 版
- Delphi做的用于分析Pascal语言的词法分
- 编译原理实验:词法分析,语法分析
- 编译原理语法分析器、词法分析器
- 哈工大威海-编译原理实验报告和源码
- 编译原理课程设计 while do循环语句翻
- 词法分析器 -计算器版
- 词法语法分析器
- 词法分析器自动生成器 FLEX
- 中科院汉语词法分析系统ICTCLAS安装包
- 词法分析器Lex(编译原理)
- 华工编译原理实验词法分析+语法分析
- 词法分析器
- 词法分析器有界面
- 武汉大学国际软件学院解释器构造作
- 编译原理课程设计(词法分析和语法
- 利用FLEX设计一个small c的词法分析器文
- 编译原理 词法和语法分析
- 编译原理实验-flex自动构造词法分析
- 编译原理词法分析,LL1,SLR1)实验报
- 词法分析语法分析实验报告及源码
- 编译原理词法分析语法分析
- C Minus 语法分析器及课程设计报告
- 词法分析器+语法分析器+中间代码生成
- 编译原理 王生原老师答案和资料
- 词法分析程序和语法分析程序 编译原
- 词法分析程序可记录行号、识别注释
- 哈工大编译原理词法分析实验报告
- 编译器词法分析,语法分析
评论
共有 条评论