staterule.h

来自「此程序可以把编译原理中的不确定的有限自动机确定化」· C头文件 代码 · 共 64 行

H
64
字号

#include <windows.h>

#define  WM_ADDRULE    WM_USER + 9000

typedef int          STATE;
typedef char         SIGN;

struct   RULE
{
	STATE oldstate,newstate;
	SIGN  input;
	bool  operator==(const RULE&);
};

typedef struct
{
	RULE    Rule;
	STATE   StartState;
	STATE   EndState;
}RULE_PARAM;

class RULE_SET
{
public:
	RULE_SET();
	~RULE_SET();
	int   GetRuleNum();
	RULE  GetRule(int);
	int   GetSignNum();
	SIGN  GetSign(int);
	void  AddRule(RULE);
	void  Reset();	
	bool  IsValidSign(SIGN);
	void  operator=(const RULE_SET&);
private:
	int   RuleNum;
	int   SignNum;
	RULE* pRules;
	SIGN* pSigns;
};

class STATE_SET
{
public:
	STATE_SET();
	~STATE_SET();
	int     GetStateNum();
	STATE   GetState(int);
	bool    AddState(STATE);
	void    Reset();

	STATE_SET&  operator=(const STATE_SET&);
	bool    operator==(const STATE_SET&);	

	void    GetNULLClosure(RULE_SET&,STATE_SET&);
	void    GetMoveResultSet(RULE_SET&,SIGN,STATE_SET&);
	
	bool    StateInSet(STATE);
	void    Output(LPTSTR);
private:
	int     StateNum;
	STATE*  pStates;
};

⌨️ 快捷键说明

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