#include "GEDCOMParser/Parser.hh" #include "GEDCOMParser/GEDCOMFactory.hh" #include "GEDCOMParser/GEDCOMFactoryAccessor.hh" #include "GEDCOMParser/ParseErrorManagement/ParseErrorManager.hh" #include #ifdef HAVE_CONFIG_H #include #endif #include "gettext.h" #define _(String) gettext(String) #include "GEDCOMParser/Visitor/GEDCOMSerializerVisitor.hh" #include "GEDCOMParser/Serializer/GEDCOMWriter.hh" int main(int argc, char **argv) { setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, PACKAGE_LOCALE_DIR); textdomain (PACKAGE); GEDCOMParser::GEDCOMFactory factory; GEDCOMParser::GEDCOMFactoryAccessor::Init(&factory); GEDCOMParser::Parser viewparser(&factory); if (argc == 2) { char * gedcom_filename = argv[1]; GEDCOMParser::ParseErrorManagement::ParseErrorManager parse_error_manager = viewparser.Parse(gedcom_filename); if (parse_error_manager.ErrorCount() == 0) { std::cerr << _("Parsing passed") << std::endl; GEDCOMParser::LineageLinkageGedcom * const lineage = viewparser.getLineageLinkageGedcom(); GEDCOMParser::Writer * writer = new GEDCOMParser::GEDCOMWriter(); GEDCOMParser::GEDCOMSerializerVisitor * visitor = new GEDCOMParser::GEDCOMSerializerVisitor(); visitor->setWriter(writer); lineage->Accept(visitor); std::cout << writer->getBuffer() << std::endl; delete writer; writer = 0; delete visitor; visitor = 0; } else { std::cout << std::endl << _("Parsing finished with errors : ") << std::endl; for (std::vector < GEDCOMParser::ParseErrorManagement::ParseError >::const_iterator err_iter = parse_error_manager.getErrors().begin(); err_iter != parse_error_manager.getErrors().end(); err_iter++) { std::cerr << err_iter->getDescription() << std::endl; } } } }