252 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			252 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/****************************************************************
 | 
						|
Copyright 1990 by AT&T Bell Laboratories and Bellcore.
 | 
						|
 | 
						|
Permission to use, copy, modify, and distribute this software
 | 
						|
and its documentation for any purpose and without fee is hereby
 | 
						|
granted, provided that the above copyright notice appear in all
 | 
						|
copies and that both that the copyright notice and this
 | 
						|
permission notice and warranty disclaimer appear in supporting
 | 
						|
documentation, and that the names of AT&T Bell Laboratories or
 | 
						|
Bellcore or any of their entities not be used in advertising or
 | 
						|
publicity pertaining to distribution of the software without
 | 
						|
specific, written prior permission.
 | 
						|
 | 
						|
AT&T and Bellcore disclaim all warranties with regard to this
 | 
						|
software, including all implied warranties of merchantability
 | 
						|
and fitness.  In no event shall AT&T or Bellcore be liable for
 | 
						|
any special, indirect or consequential damages or any damages
 | 
						|
whatsoever resulting from loss of use, data or profits, whether
 | 
						|
in an action of contract, negligence or other tortious action,
 | 
						|
arising out of or in connection with the use or performance of
 | 
						|
this software.
 | 
						|
****************************************************************/
 | 
						|
 | 
						|
#include "defs.h"
 | 
						|
 | 
						|
warni(s,t)
 | 
						|
 char *s;
 | 
						|
 int t;
 | 
						|
{
 | 
						|
	char buf[100];
 | 
						|
	sprintf(buf,s,t);
 | 
						|
	warn(buf);
 | 
						|
	}
 | 
						|
 | 
						|
warn1(s,t)
 | 
						|
char *s, *t;
 | 
						|
{
 | 
						|
	char buff[100];
 | 
						|
	sprintf(buff, s, t);
 | 
						|
	warn(buff);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
warn(s)
 | 
						|
char *s;
 | 
						|
{
 | 
						|
	if(nowarnflag)
 | 
						|
		return;
 | 
						|
	if (infname && *infname)
 | 
						|
		fprintf(diagfile, "Warning on line %ld of %s: %s\n",
 | 
						|
			lineno, infname, s);
 | 
						|
	else
 | 
						|
		fprintf(diagfile, "Warning on line %ld: %s\n", lineno, s);
 | 
						|
	fflush(diagfile);
 | 
						|
	++nwarn;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
errstr(s, t)
 | 
						|
char *s, *t;
 | 
						|
{
 | 
						|
	char buff[100];
 | 
						|
	sprintf(buff, s, t);
 | 
						|
	err(buff);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
erri(s,t)
 | 
						|
char *s;
 | 
						|
int t;
 | 
						|
{
 | 
						|
	char buff[100];
 | 
						|
	sprintf(buff, s, t);
 | 
						|
	err(buff);
 | 
						|
}
 | 
						|
 | 
						|
errl(s,t)
 | 
						|
char *s;
 | 
						|
long t;
 | 
						|
{
 | 
						|
	char buff[100];
 | 
						|
	sprintf(buff, s, t);
 | 
						|
	err(buff);
 | 
						|
}
 | 
						|
 | 
						|
 char *err_proc = 0;
 | 
						|
 | 
						|
err(s)
 | 
						|
char *s;
 | 
						|
{
 | 
						|
	if (err_proc)
 | 
						|
		fprintf(diagfile,
 | 
						|
			"Error processing %s before line %ld",
 | 
						|
			err_proc, lineno);
 | 
						|
	else
 | 
						|
		fprintf(diagfile, "Error on line %ld", lineno);
 | 
						|
	if (infname && *infname)
 | 
						|
		fprintf(diagfile, " of %s", infname);
 | 
						|
	fprintf(diagfile, ": %s\n", s);
 | 
						|
	fflush(diagfile);
 | 
						|
	++nerr;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
yyerror(s)
 | 
						|
char *s;
 | 
						|
{
 | 
						|
	err(s);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
dclerr(s, v)
 | 
						|
char *s;
 | 
						|
Namep v;
 | 
						|
{
 | 
						|
	char buff[100];
 | 
						|
 | 
						|
	if(v)
 | 
						|
	{
 | 
						|
		sprintf(buff, "Declaration error for %s: %s", v->fvarname, s);
 | 
						|
		err(buff);
 | 
						|
	}
 | 
						|
	else
 | 
						|
		errstr("Declaration error %s", s);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
execerr(s, n)
 | 
						|
char *s, *n;
 | 
						|
{
 | 
						|
	char buf1[100], buf2[100];
 | 
						|
 | 
						|
	sprintf(buf1, "Execution error %s", s);
 | 
						|
	sprintf(buf2, buf1, n);
 | 
						|
	err(buf2);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
Fatal(t)
 | 
						|
char *t;
 | 
						|
{
 | 
						|
	fprintf(diagfile, "Compiler error line %ld", lineno);
 | 
						|
	if (infname)
 | 
						|
		fprintf(diagfile, " of %s", infname);
 | 
						|
	fprintf(diagfile, ": %s\n", t);
 | 
						|
	done(3);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
fatalstr(t,s)
 | 
						|
char *t, *s;
 | 
						|
{
 | 
						|
	char buff[100];
 | 
						|
	sprintf(buff, t, s);
 | 
						|
	Fatal(buff);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
fatali(t,d)
 | 
						|
char *t;
 | 
						|
int d;
 | 
						|
{
 | 
						|
	char buff[100];
 | 
						|
	sprintf(buff, t, d);
 | 
						|
	Fatal(buff);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
badthing(thing, r, t)
 | 
						|
char *thing, *r;
 | 
						|
int t;
 | 
						|
{
 | 
						|
	char buff[50];
 | 
						|
	sprintf(buff, "Impossible %s %d in routine %s", thing, t, r);
 | 
						|
	Fatal(buff);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
badop(r, t)
 | 
						|
char *r;
 | 
						|
int t;
 | 
						|
{
 | 
						|
	badthing("opcode", r, t);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
badtag(r, t)
 | 
						|
char *r;
 | 
						|
int t;
 | 
						|
{
 | 
						|
	badthing("tag", r, t);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
badstg(r, t)
 | 
						|
char *r;
 | 
						|
int t;
 | 
						|
{
 | 
						|
	badthing("storage class", r, t);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
badtype(r, t)
 | 
						|
char *r;
 | 
						|
int t;
 | 
						|
{
 | 
						|
	badthing("type", r, t);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
many(s, c, n)
 | 
						|
char *s, c;
 | 
						|
int n;
 | 
						|
{
 | 
						|
	char buff[250];
 | 
						|
 | 
						|
	sprintf(buff,
 | 
						|
	    "Too many %s.\nTable limit now %d.\nTry recompiling using the -N%c%d option\n",
 | 
						|
	    s, n, c, 2*n);
 | 
						|
	Fatal(buff);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
err66(s)
 | 
						|
char *s;
 | 
						|
{
 | 
						|
	errstr("Fortran 77 feature used: %s", s);
 | 
						|
	--nerr;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
errext(s)
 | 
						|
char *s;
 | 
						|
{
 | 
						|
	errstr("F77 compiler extension used: %s", s);
 | 
						|
	--nerr;
 | 
						|
}
 |