⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 charstack.h

📁 编译原理实验之中间代码生成(四元式)
💻 H
字号:
// File Name: CharStack.h

#define MAX_DATA_LEN	256	// 数据缓冲区长度

// word type
#define WT_OPERATOR		0	// 操作符
#define WT_UINT			1	// 非负整数
#define WT_VARIABLE		2	// 变量
#define WT_TEMP			3	// 临时变量

struct WORDNODE			// 单词序列节点
{
	unsigned short byType;		// 类别
	char Value[MAX_DATA_LEN];	// 值
	WORDNODE *pNext;			// 下一结点
};

struct CHARNODE
{
	char		cCur;		// 当前符号
	WORDNODE	*pWord;		// 单词节点
};

CHARNODE m_CharStack[1024];
int	m_nCharTop = -1;

void InitCharStack()
{
	m_nCharTop = -1;
}

void PushChar(char c, WORDNODE *pWord)
{
	++m_nCharTop;
	m_CharStack[m_nCharTop].cCur = c;
	m_CharStack[m_nCharTop].pWord = pWord;
}

CHARNODE* PopChar()
{
	return &m_CharStack[m_nCharTop--];
}

CHARNODE* TopChar()
{
	return &m_CharStack[m_nCharTop];
}

void PrintCharStack()
{
	int i;
	for (i = 0; i <= m_nCharTop; i++)
		printf("%c", m_CharStack[i].cCur);
	for (; i < 15; i++)
		printf(" ");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -