int main(int argc, char* argv[]) { Lexer luthor; luthor.scan(argv[1]); DatalogProgram brainiac; ofstream outfile; outfile.open(argv[2]); try { brainiac.parse(luthor.getTokens()); } catch (int e) { stringstream ss; ss << "Failure!\n" << " " << luthor.getTokens()[e].toString() << "\n"; outfile << ss.str(); return 0; } Database fortress; fortress.evalSchemes(brainiac.getSchemes()); fortress.evalFacts(brainiac.getFacts()); fortress.evalRules(brainiac.getRules()); fortress.evalQueries(brainiac.getQueries()); outfile << fortress.toString(); outfile.close(); return 0; }
int main(int argc, char* argv[]) { Coleio* io = new Coleio(argv[1]); Lexer* lexer = new Lexer(io); lexer->loadTokens(); Parser* parser = new Parser(lexer); if(!parser->check()) { io->fail(lexer->getToken()); } DatalogProgram* datalogProgram = new DatalogProgram(io, parser); datalogProgram->setSchemata(); datalogProgram->setQueries(); datalogProgram->setRules(); //datalogProgram->printRules(); datalogProgram->processRules(); datalogProgram->processQueries(); //datalogProgram->printSchemata(); delete datalogProgram; delete parser; delete io; delete lexer; return 0; }
Database::Database(DatalogProgram dlp) { initSchemes(dlp.getSchemes()); initFacts(dlp.getFacts()); initQueries(dlp.getQueries()); }