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

📄 grammartree.h

📁 正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字
💻 H
字号:
#ifndef GRAMMARTREE_H
#define GRAMMARTREE_H

#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include "LytWString.h"
#include "Tree.h"
#include "SomeDataType.h"

using namespace std;

// A = A '|' B
// A = B
// B = BC
// B = C
// C = C '+'
// C = C '*'
// C = C '?'
// C = '(' A ')'
// C = D
// D = char
// D = '\' char
// D = '[' E ']'
// D = "[^" E ']'
// E = EF
// E = F
// F = char '-' char
// F = char
// F = '\' char

class GrammarTree
{
public:
	Tree<CharType> Data;
	
	GrammarTree();
	GrammarTree(const wchar_t* Input);
	void GetGrammarTree();
	LytWString GetErrorMessage();
	bool IsError();

private:
	const wchar_t* Expression;
	LytWString ErrorMessage;

	void SetErrorMessage(const LytWString ErrorInformation);
	TreeNode<CharType>* GetA(TreeNode<CharType>* Current);
	TreeNode<CharType>* GetB(TreeNode<CharType>* Current);
	TreeNode<CharType>* GetC(TreeNode<CharType>* Current);
	TreeNode<CharType>* GetD(TreeNode<CharType>* Current);
	TreeNode<CharType>* GetE(TreeNode<CharType>* Current);
	TreeNode<CharType>* GetF(TreeNode<CharType>* Current);
};

#endif

⌨️ 快捷键说明

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