/* $Id$ */ /* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* F I L E N A M E S */ /* The names of the input files of every phase are passed as * arguments to the phase. First come the input file names, * then the output file names. We use a one-letter convention * to denote the type of file: * p: procedure table file * d: data table file * l: EM text file (lines of EM instructions) * b: basic block file (Control Flow Graph file) */ struct files { /* Input files */ const char* pname_in; const char* dname_in; const char* lname_in; const char* bname_in; /* Output files */ const char* pname_out; const char* dname_out; const char* lname_out; const char* bname_out; /* The rest of the arguments. */ char * const *argv; int argc; }; struct files* findfiles(int argc, char * const *argv); FILE *openfile(const char *name, const char *mode); /* * Open a file with the given name * and mode; aborts if the file * cannot be opened. */