Database::Database(DatalogProgram* p) { parser = p; std::vector<Scheme*> svec = parser->sl->svec; for (int i = 0; i < svec.size(); i++) { //Loop through the list of schemes Token* name = svec.at(i)->first; std::vector<Token*> schema = svec.at(i)->idl; Relation* r = new Relation(name, schema); //Create a new relation with the name and attributes of each scheme addRelation(r); //Add the relation to the database } addTuples(); //Populate the database addRules(); //Add the rules to the database g = new Graph(rules); //Generate a depends-on graph for the rules //processRules(); //Generate new facts }
void Database::makeDB(DatalogProgram dp){ addRelations(dp); addTuples(dp); }