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)
|
vector<string> exitCMD(vector<string> input, DBEngine &engine)
|
||||||
{
|
{
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vector<string> createCMD(vector<string> input, DBEngine &engine)
|
vector<string> createCMD(vector<string> input, DBEngine &engine)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (input[0] == "TABLE")
|
if (input[0] == "TABLE")
|
||||||
{
|
{
|
||||||
input.erase(input.begin());
|
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;
|
cout<<"\nPassing the following arguments to dbEngine: \nCommand: "<<input[0]<<endl;
|
||||||
input.erase(input.begin());
|
input.erase(input.begin());
|
||||||
vector<string> insertInput = insertCMD(input, engine);
|
vector<string> insertInput = insertCMD(input, engine);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ( input[0] == "CREATE")
|
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());
|
input.erase(input.begin());
|
||||||
|
|
||||||
vector<string> insertInput = createCMD(input, engine);
|
vector<string> insertInput = createCMD(input, engine);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ( input[0] == "DELETE")
|
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());
|
input.erase(input.begin());
|
||||||
|
|
||||||
vector<string> insertInput = deleteCMD(input, engine);
|
vector<string> insertInput = deleteCMD(input, engine);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ( input[0] == "UPDATE")
|
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());
|
input.erase(input.begin());
|
||||||
|
|
||||||
vector<string> insertInput = updateCMD(input, engine);
|
vector<string> insertInput = updateCMD(input, engine);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ( input[0] == "SHOW")
|
else if ( input[0] == "SHOW")
|
||||||
|
@ -1119,3 +1112,9 @@ void parse(string input, DBEngine &engine)
|
||||||
vector<string> listOfTokens = tokenize(input);
|
vector<string> listOfTokens = tokenize(input);
|
||||||
par_line(listOfTokens, engine);
|
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:
|
public:
|
||||||
|
|
||||||
PExpression() { select = "~"; }
|
PExpression();
|
||||||
PExpression(string str) { temp = str; }
|
PExpression(string str) { temp = str; }
|
||||||
void setPExpression(string str) { temp = str; }
|
void setPExpression(string str) { temp = str; }
|
||||||
string getPExpression() { return temp; }
|
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 <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "Parser.h"
|
#include "Parser.h"
|
||||||
//#include "Condition.h"
|
#include "Condition.h"
|
||||||
#include "DBEngine.h"
|
#include "DBEngine.h"
|
||||||
//#include "user.h"
|
//#include "user.h"
|
||||||
|
|
||||||
|
@ -10,5 +10,10 @@ using namespace std;
|
||||||
int main () {
|
int main () {
|
||||||
DBEngine engine;
|
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