123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /* $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 <stdlib.h>
- #include <stdio.h>
- #include <stdarg.h>
- extern int lineno, newline;
- FILE *genc, *genh, *input;
- static int nerrors;
- char *linedir = "#line %d \"%s\"\n"; /* format of line directive */
- char *inpfile;
- /* From Lexer */
- void LLparse(void);
- int main(int argc, char *argv[])
- {
- newline = 1;
- if (argc != 2) {
- fprintf(stderr,"Usage : %s targetoptimizerdescription\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 ((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, ...)
- {
- va_list va;
- nerrors++;
- fprintf(stderr,"\"%s\", line %d: ",inpfile,lineno);
- va_start(va, s);
- vfprintf(stderr, s, va);
- va_end(va);
- putc('\n',stderr);
- }
- int onlyspace(char *s)
- {
- while (*s) {
- if (*s != ' ' && *s != '\t' && *s != '\n') return 0;
- s++;
- }
- return 1;
- }
|