This repository has been archived on 2025-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
dmspine64backup/Parser.h
2015-10-06 19:24:59 -05:00

266 lines
No EOL
4.3 KiB
C++
Executable file

#include <string> // std::string
#include <iostream> // std::cout
#include <sstream> // std::stringstream
#include <vector>
#include <string>
#include "DBEngine.h"
using namespace std;
class PRelation
{
string name;
public:
PRelation() { name = "~"; }
PRelation(string str) { name = str; }
void setPRelation(string str) { name = str; }
string getName() { return name; }
};
class PAttribute
{
string name;
string type;
bool key;
int size;
public:
PAttribute() {
name = "~";
type = "~";
key = false;
size = 0;
}
PAttribute(string str, string t) {
name = str;
type = t;
key = false;
size = 0;
}
PAttribute(string str, string t, int s) {
name = str;
type = t;
key = false;
size = s;
}
void setPAttributeName(string str) { name = str; }
void setPAttributeType(string t) { type = t; }
void setPAttributeKey() { key = true; }
void setPAttributeSize(int s) { size = s; }
string getPAttribute() { return name; }
string getPAttributeType() { return type; }
bool getPAttributeKey() { return key; }
int getPAttributeSize() { return size; }
};
class PUnion
{
string Un1;
string Un2;
public:
PUnion() {
Un1 = "~";
Un2 = "~";
}
PUnion(string s1, string s2) {
Un1 = s1;
Un2 = s2;
}
string getPUnion() {
return "Union of " + Un1 + " and " + Un2;
}
};
class PProduct
{
string Pr1;
string Pr2;
public:
PProduct() {
Pr1 = "~";
Pr2 = "~";
}
PProduct(string s1, string s2) {
Pr1 = s1;
Pr2 = s2;
}
string getPProduct() {
return "Product of " + Pr1 + " and " + Pr2;
}
};
class PDifference
{
string D1;
string D2;
public:
PDifference() {
D1 = "~";
D2 = "~";
}
PDifference(string s1, string s2) {
D1 = s1;
D2 = s2;
}
string getPDifference() {
return "Difference of " + D1 + " and " + D2;
}
};
class PRenaming
{
string newName;
string oldName;
public:
PRenaming() {
newName = "~";
oldName = "~";
}
PRenaming(string s1, string s2) {
newName = s1;
oldName = s2;
}
string doRename() {
return "Renaming " + oldName + " to " + newName;
}
};
class PProjection
{
string newName;
string oldName;
public:
PProjection() {
newName = "~";
oldName = "~";
}
PProjection(string s1, string s2) {
newName = s1;
oldName = s2;
}
string doPProjection() {
return "Projecting " + oldName + " onto " + newName;
}
};
class POperand
{
string op;
public:
POperand() { op = "~"; }
POperand(string str) { op = str; }
void setPOperand(string str) { op = str; }
string getPOperand() { return op; }
};
class POp
{
string op;
public:
POp() { op = "~"; }
POp(string str) { op = str; }
void setPOp(string str) { op = str; }
string getPOp() { return op; }
};
class PComparison
{
POp op;
POperand operand1;
POperand operand2;
public:
PComparison() {
op.setPOp("~");
operand1.setPOperand("~");
operand2.setPOperand("~");
}
PComparison(string str1, string str2, string str3) {
operand1.setPOperand(str1);
op.setPOp(str2);
operand2.setPOperand(str3);
}
void setPComparison(string str1, string str2, string str3) {
operand1.setPOperand(str1);
op.setPOp(str2);
operand2.setPOperand(str3);
}
string getPComparison() {
return operand1.getPOperand() + " " + op.getPOp() + " " + operand2.getPOperand();
}
};
class PConjunction
{
string conj;
public:
PConjunction() { conj = "~"; }
PConjunction(string str) { conj = str; }
void setPConjunction(string str) { conj = str; }
string getPConjunction() { return conj; }
};
class PCondition
{
string cond;
public:
PCondition() { cond = "~"; }
PCondition(string str) { cond = str; }
void setPCondition(string str) { cond = str; }
string getPCondition() { return cond; }
};
class PSelection
{
string select;
public:
PSelection() { select = "~"; }
PSelection(string str) { select = str; }
string getPSelection() { return select; }
};
class PExpression
{
PRelation rel;
PSelection sel;
PProjection proj;
PRenaming ren;
PUnion un;
PDifference diff;
PProduct prod;
string temp;
public:
PExpression() { select = "~"; }
PExpression(string str) { temp = str; }
void setPExpression(string str) { temp = str; }
string getPExpression() { return temp; }
};
void parse(string s, DBEngine &e);