lrtable.h

来自「一门课程的proj」· C头文件 代码 · 共 50 行

H
50
字号
#pragma once

/*-----------------------------*/
/*LR表中的一行中的项目
/*-----------------------------*/
class ActionAndGoto
{
public:
	ActionAndGoto();
	ActionAndGoto(int sy, int st, int ty);
public:
	void SetActionAndGoto(int sy, int st, int ty);				//设置
	void output();												//输出
public:
	int symbol;													//符号
	int status_convert;											//转移到状态
	int type;													//规约1,移进2,接收非终结符3,接收4
};

/*-----------------------------*/
/*LR表中的一行
/*-----------------------------*/
class LRTable_Item
{
public:	
	LRTable_Item();
public:
	void output();												//输出
	void AddItem(int sy, int st, int ty);						//添加一个转换项目
public:
	vector<ActionAndGoto> _aag;									//转换项目容器
	int aag_num;												//转换项目的数量
	int line_num;												//行号
};
/*-----------------------------*/
/*LR表
/*-----------------------------*/
class LRTable
{
public:
	LRTable(void);
public:
	void output();												//输出	
	LRTable_Item * findItem(int status_num);					//寻找对应的行
	void addItem(int line_num);									//新增加一个
public:
	vector<LRTable_Item> _item;									//行容器
	int item_num;												//行数
};

⌨️ 快捷键说明

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