/* $Id$ */ /* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* m a i n . c * * Contains the main program, the error reporting routine, and a routine * to check wether a constraint consists only of space */ #include #include #include "Lpars.h" extern int lineno, newline; FILE *genc, *genh, *input; static int nerrors; char *linedir = "#line %d \"%s\"\n"; /* format of line directive */ char *inpfile; extern void LLparse(void); int main(int argc,char* argv[]) { newline = 1; if (argc != 3) { fprintf(stderr,"Usage : %s targetoptimizerdescription outputdir\n",argv[0]); exit(1); } if ((input = fopen(argv[1],"r")) == NULL) { fprintf(stderr,"Fatal error : couldn't open %s\n",argv[1]); exit(1); } if (chdir(argv[2]) != 0) { fprintf(stderr,"Fatal error : couldn't chdir to %s\n",argv[2]); exit(1); } if ((genc = fopen("gen.c","w")) == NULL) { fputs("Fatal error : couldn't open gen.c\n",stderr); exit(1); } if ((genh = fopen("gen.h","w")) == NULL) { fputs("Fatal error : couldn't open gen.h\n",stderr); exit(1); } inpfile = argv[1]; /* needed for line directives and errors */ LLparse(); exit(nerrors); } /* VARARGS1 */ void error(char *s, char* s1) { nerrors++; fprintf(stderr,"\"%s\", line %d: ",inpfile,lineno); fprintf(stderr,s,s1); putc('\n',stderr); } int onlyspace(register char* s) { while (*s) { if (*s != ' ' && *s != '\t' && *s != '\n') return 0; s++; } return 1; }