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

📄 stack.h

📁 是一个不错的语法分析器,里面实现了语法分析的算法,并判断了一些优先级的控制和对栈的操作.
💻 H
字号:
/************************************************************

  Title:    Operator-Precedence Parsing
  Author:   Dake Song, Class 0201 of Computer Science
  Date:     Mar.18 of 2005

**************************************************************/

#ifndef STACK_H
#define STACK_H

#include "Global.h"

/*
	Stack operates			*/
void InitStack();
bool Push(const char*);
bool Pop(char*);
bool TopValue(char*);
void PrintStack();

/*
	Stack attributes		*/
char TheStack[STACKSIZE];
int  StackTop;

/*
	Implement stack operates	*/
void InitStack()
{
	char c = '#';
	StackTop = 0;
	Push(&c);
}

bool Push(const char* c)
{
    if (StackTop < STACKSIZE)
    {
        TheStack[StackTop++] = *c;
        return true;
    }
    else
    {
        return false;
    }
}

bool Pop(char* c)
{
    if (StackTop >= 0)
    {
        *c = TheStack[--StackTop];
        return true;
    }
    else
    {
        return false;
    }
}

bool TopValue(char* c)
{
	if (StackTop > 0)	/* not null */
	{
		*c = TheStack[StackTop-1];
		return true;
	}
	else
	{
		return false;
	}
}

void PrintStack()
{
	int i;
	for (i=0;  i<StackTop; i++)
	{
		printf("%c", TheStack[i]);
	}
	printf("\n");
}

#endif

⌨️ 快捷键说明

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