added parser example
This commit is contained in:
parent
5f020e60ed
commit
7efbf43c29
4 changed files with 16 additions and 11 deletions
13
Parser.cpp
13
Parser.cpp
|
@ -641,16 +641,13 @@ vector<string> openCMD(vector<string> input, DBEngine &engine)
|
|||
|
||||
vector<string> exitCMD(vector<string> input, DBEngine &engine)
|
||||
{
|
||||
|
||||
exit(0);
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
|
||||
vector<string> createCMD(vector<string> input, DBEngine &engine)
|
||||
{
|
||||
|
||||
if (input[0] == "TABLE")
|
||||
{
|
||||
input.erase(input.begin());
|
||||
|
@ -1034,7 +1031,6 @@ void par_line(vector<string> input, DBEngine &engine) //calls par_command() or p
|
|||
cout<<"\nPassing the following arguments to dbEngine: \nCommand: "<<input[0]<<endl;
|
||||
input.erase(input.begin());
|
||||
vector<string> insertInput = insertCMD(input, engine);
|
||||
|
||||
}
|
||||
|
||||
else if ( input[0] == "CREATE")
|
||||
|
@ -1043,7 +1039,6 @@ void par_line(vector<string> input, DBEngine &engine) //calls par_command() or p
|
|||
input.erase(input.begin());
|
||||
|
||||
vector<string> insertInput = createCMD(input, engine);
|
||||
|
||||
}
|
||||
|
||||
else if ( input[0] == "DELETE")
|
||||
|
@ -1052,7 +1047,6 @@ void par_line(vector<string> input, DBEngine &engine) //calls par_command() or p
|
|||
input.erase(input.begin());
|
||||
|
||||
vector<string> insertInput = deleteCMD(input, engine);
|
||||
|
||||
}
|
||||
|
||||
else if ( input[0] == "UPDATE")
|
||||
|
@ -1061,7 +1055,6 @@ void par_line(vector<string> input, DBEngine &engine) //calls par_command() or p
|
|||
input.erase(input.begin());
|
||||
|
||||
vector<string> insertInput = updateCMD(input, engine);
|
||||
|
||||
}
|
||||
|
||||
else if ( input[0] == "SHOW")
|
||||
|
@ -1119,3 +1112,9 @@ void parse(string input, DBEngine &engine)
|
|||
vector<string> listOfTokens = tokenize(input);
|
||||
par_line(listOfTokens, engine);
|
||||
}
|
||||
|
||||
void parseList(vector<string> input, DBEngine &engine) {
|
||||
for (int i = 0; i < input.size(); ++i){
|
||||
parse(input[i], engine);
|
||||
}
|
||||
}
|
||||
|
|
5
Parser.h
5
Parser.h
|
@ -257,10 +257,11 @@ class PExpression
|
|||
|
||||
public:
|
||||
|
||||
PExpression() { select = "~"; }
|
||||
PExpression();
|
||||
PExpression(string str) { temp = str; }
|
||||
void setPExpression(string str) { temp = str; }
|
||||
string getPExpression() { return temp; }
|
||||
};
|
||||
|
||||
void parse(string s, DBEngine &e);
|
||||
void parse(string s, DBEngine &e);
|
||||
void parseList(vector<string> input, DBEngine &engine);
|
BIN
a.out
BIN
a.out
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
#include <iostream>
|
||||
#include <vector>
|
||||
#include "Parser.h"
|
||||
//#include "Condition.h"
|
||||
#include "Condition.h"
|
||||
#include "DBEngine.h"
|
||||
//#include "user.h"
|
||||
|
||||
|
@ -10,5 +10,10 @@ using namespace std;
|
|||
int main () {
|
||||
DBEngine engine;
|
||||
|
||||
//
|
||||
vector<string> s;
|
||||
s.push_back("CREATE TABLE animals ( name VARCHAR(20), kind VARCHAR(8), years INTEGER ) PRIMARY KEY ( name, kind ) ;");
|
||||
s.push_back("CREATE TABLE animals2 ( name VARCHAR(20), kind VARCHAR(8), years INTEGER ) PRIMARY KEY ( name, kind ) ;");
|
||||
s.push_back("SHOW animals2 ;");
|
||||
s.push_back("SHOW animals2 ;");
|
||||
parseList(s, engine);
|
||||
}
|
||||
|
|
Reference in a new issue