📄 analysewords.h
字号:
/////////////////////////////////////////////////////////////////////
//
//
//
////////////////////////////////////////////////////////////////////
#ifndef __ANALYSEWORDS_H__
#define __ANALYSEWORDS_H__
#pragma warning(disable:4786)
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
#include "Exception.h"
#include "CatalogManager.h"
enum TokenValue
{
_CREATE,_DROP, //creat, drop
_INSERT,_DELETE,_SELECT, //insert, delete, select
TABLE,INDEX,UNIQUE, //table, index,unique
PRIMARY,KEY, //primary,key
FROM,WHERE, //from, where
ON,INTO,VALUES,AND, //on, into, values, and
_INT,_CHAR,_FLOAT, //int, char(n), float
EQ,NE,LE,ME,LS,MR, //'=', '!=' , '<=', '>=', '<', '>'
LP,RP, //'(' , ')'
ASTERISK,COMMA, //'*', ','
END, //';'
_CONSTSTRING, //const string
_STRING
};
//extern map<string,TokenValue> TokenMap;
class AnalyseWords
{
protected:
vector<string> m_word;
public:
AnalyseWords(vector<string> word):m_word(word){}
~AnalyseWords(){}
void InitToken(void);
TokenValue GetToken(int);
int PreAnalyseSQL(int ,int );
bool AnIllegalChars(const string &);
virtual void AnalyseSQL(int , int ){}
};
class AnCreateTable : public AnalyseWords
{
private:
CatalogHead m_catahead;
vector<CatalogFile> m_cata;
public:
friend class ExCreateTable;
AnCreateTable(vector<string> word) : AnalyseWords(word){}
virtual void AnalyseSQL(int ,int );
void AnalyseAttr(int,int,int,char &);
};
class AnCreateIndex : public AnalyseWords
{
private:
string m_indexName;
string m_tableName;
string m_attrName;
public:
friend class ExCreateIndex;
AnCreateIndex(vector<string> word) : AnalyseWords(word){}
void AnalyseSQL(int, int );
};
class AnDropTable : public AnalyseWords
{
private:
string m_tableName;
public:
friend class ExDropTable;
AnDropTable(vector<string> word) : AnalyseWords(word){}
void AnalyseSQL(int ,int );
};
class AnDropIndex : public AnalyseWords
{
private:
string m_indexName;
public:
friend class ExDropIndex;
AnDropIndex(vector<string> word) : AnalyseWords(word){}
void AnalyseSQL(int, int);
};
class AnInsertValues : public AnalyseWords
{
private:
string m_tableName;
vector<string> m_values;
public:
friend class ExInsertValues;
AnInsertValues(vector<string> word) : AnalyseWords(word){}
void AnalyseSQL(int, int);
};
class AnDeleteValues : public AnalyseWords
{
private:
string m_tableName;
vector<string> m_attr;
vector<string> m_opcode;
vector<string> m_attrvalue;
public:
friend class ExDeleteValues;
AnDeleteValues(vector<string> word) : AnalyseWords(word){}
void AnDeleteCondition(int, int);
void AnalyseSQL(int, int);
};
class AnSelectTable : public AnalyseWords
{
private:
string m_tableName;
vector<string> m_attr;
vector<string> m_opcode;
vector<string> m_attrvalue;
public:
friend class ExSelectTable;
AnSelectTable(vector<string> word) : AnalyseWords(word){}
void AnSelectCondition(int, int);
void AnalyseSQL(int, int);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -