示例#1
0
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
}
示例#2
0
void Database::makeDB(DatalogProgram dp){
	addRelations(dp);
	addTuples(dp);
}