/* * Main file for the Demeter cd-english tool. * * cd-english relies on using a special cd-print in conjunction * with g_print() to print out an english version of the input cd. * * $Log: main.C,v $ * Revision 5.4.1.2 1994/10/13 02:09:39 demeter * *** empty log message *** * * Revision 5.4.1.1 1994/05/12 19:54:03 demeter * *** empty log message *** * * Revision 5.4 1994/05/12 19:54:01 demeter * *** empty log message *** * * Revision 5.3.1.1 1994/01/26 19:05:22 huersch * No changes. * * Revision 5.3 1994/01/26 19:05:21 huersch * *** empty log message *** * * Revision 5.2.1.1 1994/01/24 16:18:13 huersch * No changes. * * Revision 5.2 1994/01/24 16:18:12 huersch * *** empty log message *** * * Revision 5.1.1.1 1993/11/15 15:12:09 demeter * *** empty log message *** * * Revision 5.1 1993/11/15 15:12:08 demeter * *** empty log message *** * * Revision 5.0.1.4 1993/10/12 14:15:51 huersch * Installed new command evaluation, uniformed and beautified code. * * Revision 5.0.1.3 1993/10/08 19:40:37 huersch * *** empty log message *** * * Revision 5.0.1.2 1993/10/08 19:15:56 huersch * Beautified file, improved error reporting, changed default argument. * */ #include "cdenglish.h" #include #include void out_of_store() { cerr << "cd-english: operator new failed, out of store.\n"; exit( 1 ); } #ifndef __GNUC__ extern PF set_new_handler( PF ); #else extern "C" PF set_new_handler( PF ); #endif extern int _demeter_hash(const char* classname); int greeting = _demeter_hash("Greeting"); char *GEN_DIR = getenv("GEN_DIR"); int main( int argc, char *argv[],char *envp[] ) { // command line evaluation const int MAXPATH = 256; char dem_in[MAXPATH]; switch ( argc ) { case 1: strcpy( dem_in, "cd.cd" ); break; // default argument case 2: strcpy( dem_in, argv[1] ); break; default: cerr << "\nUsage: cd-english [class-dictionary]." << endl; exit( 1 ); } set_new_handler( &out_of_store ); Cd_graph *iCd_graph = new Cd_graph(); iCd_graph = ( Cd_graph* ) iCd_graph -> g_parse( dem_in ); if ( !iCd_graph ) { cerr << "cd-english error: parsing " << dem_in << " failed." << endl; exit ( 1 ); } // print to stdout iCd_graph -> g_print( cout ); cout << endl; // flush buffer // print to file char* of_name = "cd-english-translation"; ofstream outFile( of_name ); if ( !outFile ) { // opening failed cerr << "cd-english error: cannot open file " << of_name << " for output." << endl; exit( 1 ); } iCd_graph -> g_print( outFile ); outFile.close(); return ( 0 ); }