📄 lrtable.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -