📄 first.h
字号:
// First.h: interface for the CFirst class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FIRST_H__5C3C3D46_F093_48C2_8900_C2C9833585B7__INCLUDED_)
#define AFX_FIRST_H__5C3C3D46_F093_48C2_8900_C2C9833585B7__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define FILENAME "FunctorFirst.txt"
#define MOREEQUAL '>'
#define LESSEQUAL '<'
#define EQUALCHAR '='
#include <vector>
#include <iterator>
#include <stack>
using namespace std;
typedef struct FirstVTChar
{
char UnTerminalChar;
char TerminalChar;
BOOL state; //求FirstVT集合中state代表终结符于非终结符的关系
}FirstVTChar;
extern CString staticFileName;
class CFirst
{
public:
CFirst();
virtual ~CFirst();
CString MoreMatricxStr;//大于
CString EqualMatricxStr;//等于
CString LessMatricxStr;//小于
CString retuStr;
CStdioFile file;//文件对象
int ncount;//文件的行数
int ncountUnTeminalChar;//非终结符的个数
CString strError;
CString *pstrFileData;//存储产生式的数组
CString *pFirstVT;
CString *pLastVT;
char *pUnTerminalChar;//存储非终结符的指针
BOOL FirstVTORLastVT;
std::stack<FirstVTChar> storeFirstVT;
std::vector<char> charvector;
void StorefirstVT(FirstVTChar B,char CH,CString *p);
void ParseStack();
CString ParseChar(FirstVTChar B,int i);
BOOL CaculateFirstVT();
BOOL CaculateLastVT();
BOOL FirstTwoChar(char a,char b);
void PriorityMatricx();
CString ParseLastVTChar(FirstVTChar B,int i);
BOOL ReadFileFromFun(CString filename);
void Readfile(CString filename);
void StoreUnTerminal(CString str);
};
#endif // !defined(AFX_FIRST_H__5C3C3D46_F093_48C2_8900_C2C9833585B7__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -