added parser example

This commit is contained in:
Rebecca Schofield 2015-10-06 19:51:31 -05:00
parent 5f020e60ed
commit 7efbf43c29
4 changed files with 16 additions and 11 deletions

View file

@ -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);
}
}

View file

@ -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

Binary file not shown.

View file

@ -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);
} }