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; }
Database::Database(DatalogProgram dlp) { initSchemes(dlp.getSchemes()); initFacts(dlp.getFacts()); initQueries(dlp.getQueries()); }