cfgsimplified.h

来自「CFG上下文无关文法的化简程序」· C头文件 代码 · 共 36 行

H
36
字号
//@author LiuHao ShenZhen University 刘浩 2008年11月1日
#include<iostream>
#include<string> 
using namespace std; 


class Simplify{
	private:
	typedef struct{
		string value;//产生式
		int flag;//flag用来标记产生式已经到了化简的哪一步
		int count;//用来计算输出的次数
				} Produce;//产生式集
	Produce P[50];//产生式集
	char N[10];//非终结符集
	char T[10];//终结符集

	char S;//开始符号
	int NO_N;//非终结符的数目
	int NO_T;//终结符的数目
	int NO_P;//产生式的个数
	

	public:
	//Simplify(void);//构造函数
	void InitParam();//初始化,输入要化简的CFG
	void separate();//将产生式中含'|'的通通分解,使最终的产生式不含'|'
	void Step1();//找出有用的非终结符
	void Step2();//找出有用符号
	void Step3();//消除ε产生式
	void Step4();//消除单产生式
	void Step5();//消除左递归
//	~Simplify();//析构函数
};

⌨️ 快捷键说明

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