/* * Main file for the Demeter xref tool. * * xref produces a graphical cross reference picture for a given * class dictionary. * * $Log: main.C,v $ * Revision 5.4.1.2 1994/10/13 02:15:34 demeter * *** empty log message *** * * Revision 5.4.1.1 1994/05/12 18:24:10 demeter * *** empty log message *** * * Revision 5.4 1994/05/12 18:24:09 demeter * *** empty log message *** * * Revision 5.3.1.1 1994/01/26 19:06:34 huersch * No changes. * * Revision 5.3 1994/01/26 19:06:33 huersch * *** empty log message *** * * Revision 5.2.1.1 1994/01/24 18:48:05 huersch * No changes. * * Revision 5.2 1994/01/24 18:48:03 huersch * *** empty log message *** * * Revision 5.1.1.1 1993/11/15 15:36:34 demeter * *** empty log message *** * * Revision 5.1 1993/11/15 15:36:33 demeter * *** empty log message *** * * Revision 5.0.1.2 1993/10/12 14:04:38 huersch * Installed new command evaluation, uniformed and beautified code. * */ #include "xref.h" #include #include void out_of_store() { cerr << "xref: 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: xref [class-dictionary]." << endl; exit( 1 ); } set_new_handler( &out_of_store ); Demeter_in *iDemeter_in = new Demeter_in(); iDemeter_in = ( Demeter_in* ) iDemeter_in -> g_parse( dem_in ); if ( !iDemeter_in ) { cerr << "xref error: parsing " << dem_in << " failed." << endl; exit ( 1 ); } // Finally, start the real xref. cout << "\n"; iDemeter_in -> print(); return ( 0 ); }