⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dfa.h

📁 本程序包括详细的词法分析
💻 H
字号:
// DFA.h: interface for the CDFA class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DFA_H__C1CB6C21_53E2_441B_96B6_3AD1E102CD99__INCLUDED_)
#define AFX_DFA_H__C1CB6C21_53E2_441B_96B6_3AD1E102CD99__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

typedef   int   STATUS;
typedef   bool TESTFUN(char ch);

typedef struct _CONVERT_STATUS
{
	TESTFUN  * Test;
	STATUS  nDstStauts;
} CONVERT_STATUS,*PCONVERT_STATUS;

typedef struct _STATUS_ENTRY
{
	STATUS nStatus;    //状态
	PCONVERT_STATUS pConvert;
} STATUS_ENTRY, * PSTATUS_ENTRY;

typedef struct _STATUS_CONVERT_TABLE
{
	int nEntry;    //表项数
    PSTATUS_ENTRY	pEntry;//表项指针
}STATUS_CONVERT_TABLE, *PSTATUS_CONVERT_TABLE;

class CDFA  
{
private:
	PSTATUS_CONVERT_TABLE m_pTable;//状态转换表
    STATUS m_nCurrentStatus;  //当前状态
    char  *m_pNextCase;   //下一个将要读入的字符
	STATUS m_nElseStatus;

public:
	CDFA();
	virtual ~CDFA();
    void Initial(PSTATUS_CONVERT_TABLE pt, STATUS sElse);  //初始化DFA,设置状态转换表
	bool PrepareDFA(char * pCaseStr, STATUS nInitStatus);   //准备DFA运行
	char * GetNextCasePoint();   //获得DFA下一个将要读入字符的指针
	STATUS StepForward();  //DFA进行一次状态转换,返回转换后的状态,并指向下一个字符。
};

#endif // !defined(AFX_DFA_H__C1CB6C21_53E2_441B_96B6_3AD1E102CD99__INCLUDED_)

⌨️ 快捷键说明

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