diff --git a/Parserv4.cpp b/Parserv4.cpp index 0752b54..0732896 100644 --- a/Parserv4.cpp +++ b/Parserv4.cpp @@ -46,9 +46,9 @@ vector showCMD(vector input) cout<<"Syntax error!"< saveCMD(vector input) { cout<<"Syntax error!"< closeCMD(vector input) { cout<<"Syntax error!"< openCMD(vector input) { - if (input.size() > 3) + if (input.size() > 2) { cout<<"Syntax error!"< updateCMD(vector input) { vector a; + PAttribute temp; + vector s; - vector e; + //vector e; input.erase(input.begin()); while(input[0] != ")") { - e.push_back(input[0]); + temp.setPAttributeName(input[0]); + a.push_back(temp); + temp.setPAttributeName("~"); + + input.erase(input.begin()); + + if(input[0] == "=") + { + input.erase(input.begin()); + + s.push_back(input[0]); + } + + else + { + cout<<"Syntax error!"< updateCMD(vector input) vector deleteCMD(vector input) { - // parse out DELETE FROM if (input[0] == "DELETE" && input[1] == "FROM") { input.erase(input.begin()); input.erase(input.begin()); PRelation r(input[0]); - if(input[0] == "(") + + if(input[0] == "WHERE") { - vector e; - input.erase(input.begin()); - - while(input[0] != ")") + if(input[0] == "(") { - if (input[0] == ",") input.erase(input.begin()); + //PCondition c; - e.push_back(input[0]); + PComparison c; + POperand oops1; + POperand oops2; + POp op; - input.erase(input.begin()); + while(input[0] != ")") + { + oops1.setPOperand(input[0]); + input.erase(input.begin()); + + oops2.setPOperand(input[0]); + input.erase(input.begin()); + + op.setPOp(input[0]); + input.erase(input.begin()); + + c.setPComparison(oops1.getPOperand(), op.getPOp(), oops2.getPOperand()); + } } - - cout << "Deleting: "; - while(!e.empty()) - { - cout << e[0].getPExpression() << " "; - e.erase(e.begin()); - } - cout << "from " << r.getName() << ".\n"; - - return input; - } - else cout<<"Syntax error!"< input) //calls par_command() or par_query() depending on first item from token list @@ -379,57 +416,73 @@ void par_line(vector input) //calls par_command() or par_query() dependi else { - //command - // if ( input[0] == "open-cmd" || input[0] == "close-cmd" || - // input[0] == "save-cmd" || input[0] == "exit-cmd" || - // input[0] == "show-cmd" || input[0] == "create-cmd" || - // input[0] == "update-cmd" || input[0] == "insert-cmd" || - // input[0] == "delete-cmd" ) - // { - // par_command(input[0]); - // } - - //query - // if ( input[0] == "select" || input[0] == "project" || - // input[0] == "product" || input[0] == "difference" || - // input[0] == "union" || input[0] == "renaming" || - // input[0] == "update-cmd" || input[0] == "insert-cmd" || - // input[0] == "delete-cmd" ) - // { - // par_query(input[0]); - // } - - if ( input[0] == "INSERT") - { - cout<<"\nPassing the following arguments to dbEngine: \nCommand: "< insertInput = insertCMD(input); - cout<<"arguments: "< insertInput = insertCMD(input); + cout<<"arguments: "< insertInput = insertCMD(input); - cout<<"arguments: "< insertInput = createCMD(input); + cout<<"arguments: "< insertInput = deleteCMD(input); + cout<<"arguments: "< insertInput = updateCMD(input); + cout<<"arguments: "<