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