编译原理语法分析charstack.h.txt

来自「刚才的内容没有注意」· 文本 代码 · 共 61 行

TXT
61 行
字号
// File Name: CharStack.h

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

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

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--];
}

void PopCharN(int n)
{
m_nCharTop = m_nCharTop - n;
}

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 + =
减小字号Ctrl + -
显示快捷键?