?? grammar.h
字號:
#pragma once
#include "Set.h"
#include "Precept.h"
class Grammar
{
public:
Grammar(void);
~Grammar(void);
Grammar(const Grammar & g);
const Grammar operator = (const Grammar & g);
void SetVt(string vt);
void SetVn(string vn);
void SetStart(char start);
void AddPrecept(string p);
void GeneratePredictTable();
bool IsGrammarLegal();
string OutputHTML();
void Output(char * pFilename);
bool IsInVn(char cChar);
bool IsInVt(char cChar);
char GetStart();
Precept GetToDo(char vn, char vt);
bool IsLegalLL1Grammar();
private:
enum CanEmpty { CANTRUE, CANFALSE, UNDEFINED };
Set Vt;
Set Vn;
char cStart;
vector <Precept> P;
CanEmpty * pCanEmptyTable;
int * pPredictTable;
vector <Set> FirstSet;
vector <Set> FollowSet;
vector <Set> SelectSet;
int nVt;
int nVn;
int nP;
int iIsLL1;
void MakeCanReachEmptyTable();
void CalculateFirstSet();
void CalculateFollowSet();
void CalculateSelectSet();
void MakePredictTable();
bool CanReachEmpty(string str);
bool CanReachEmpty(char cChar);
Set GetFirstSet(char cChar);
Set GetFirstSet(string str);
Set GetFollowSet(char cChar);
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -