parsingtable.h

来自「这是我们老师给我们的例子」· C头文件 代码 · 共 39 行

H
39
字号
using namespace std;

enum nonterminal
{P,CS,S,SS,IS,WS,AS,BE,BO,AE,AEP,ME,MEP,SE};
enum terminal
{lb,rb,lp,rp,smc,tif,tthen,telse,twhile,id,num,lt,gt,le,ge,as,eq,plus,minus,mul,di,ne,dl};
#define ROW 14
#define COLUMN 23
struct parsingTableEntry
{
	string entry;
	string* errorM;
	parsingTableEntry()
	{
		entry="";
		errorM=0;
	}
};
string transfer(string);

string transSeq(string);
//this two just transfer the symbol used in this program into understandable english words.

class ParsingTable
{
	public:
		ParsingTable();
		void initialize();//insert productions into the table.
		parsingTableEntry* search(string nonterminal,string terminal);
		parsingTableEntry* unexpect;
		parsingTableEntry* missing;
		parsingTableEntry* empty;
		//In order to easy the work of coding ,use these three pointer to represent three kinds
		//of special situation.
		~ParsingTable();
	private:
		parsingTableEntry parTable[ROW][COLUMN];
		string* errorArray;
};

⌨️ 快捷键说明

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