|
|
1.1 root 1: /****************************************************************
2: Copyright 1990, 1993 by AT&T Bell Laboratories and Bellcore.
3:
4: Permission to use, copy, modify, and distribute this software
5: and its documentation for any purpose and without fee is hereby
6: granted, provided that the above copyright notice appear in all
7: copies and that both that the copyright notice and this
8: permission notice and warranty disclaimer appear in supporting
9: documentation, and that the names of AT&T Bell Laboratories or
10: Bellcore or any of their entities not be used in advertising or
11: publicity pertaining to distribution of the software without
12: specific, written prior permission.
13:
14: AT&T and Bellcore disclaim all warranties with regard to this
15: software, including all implied warranties of merchantability
16: and fitness. In no event shall AT&T or Bellcore be liable for
17: any special, indirect or consequential damages or any damages
18: whatsoever resulting from loss of use, data or profits, whether
19: in an action of contract, negligence or other tortious action,
20: arising out of or in connection with the use or performance of
21: this software.
22: ****************************************************************/
23:
24: #include "defs.h"
25:
26: warni(s,t)
27: char *s;
28: int t;
29: {
30: char buf[100];
31: sprintf(buf,s,t);
32: warn(buf);
33: }
34:
35: warn1(s,t)
36: char *s, *t;
37: {
38: char buff[100];
39: sprintf(buff, s, t);
40: warn(buff);
41: }
42:
43:
44: warn(s)
45: char *s;
46: {
47: if(nowarnflag)
48: return;
49: if (infname && *infname)
50: fprintf(diagfile, "Warning on line %ld of %s: %s\n",
51: lineno, infname, s);
52: else
53: fprintf(diagfile, "Warning on line %ld: %s\n", lineno, s);
54: fflush(diagfile);
55: ++nwarn;
56: }
57:
58:
59: errstr(s, t)
60: char *s, *t;
61: {
62: char buff[100];
63: sprintf(buff, s, t);
64: err(buff);
65: }
66:
67:
68:
69: erri(s,t)
70: char *s;
71: int t;
72: {
73: char buff[100];
74: sprintf(buff, s, t);
75: err(buff);
76: }
77:
78: errl(s,t)
79: char *s;
80: long t;
81: {
82: char buff[100];
83: sprintf(buff, s, t);
84: err(buff);
85: }
86:
87: char *err_proc = 0;
88:
89: err(s)
90: char *s;
91: {
92: if (err_proc)
93: fprintf(diagfile,
94: "Error processing %s before line %ld",
95: err_proc, lineno);
96: else
97: fprintf(diagfile, "Error on line %ld", lineno);
98: if (infname && *infname)
99: fprintf(diagfile, " of %s", infname);
100: fprintf(diagfile, ": %s\n", s);
101: fflush(diagfile);
102: ++nerr;
103: }
104:
105:
106: yyerror(s)
107: char *s;
108: {
109: err(s);
110: }
111:
112:
113:
114: dclerr(s, v)
115: char *s;
116: Namep v;
117: {
118: char buff[100];
119:
120: if(v)
121: {
122: sprintf(buff, "Declaration error for %s: %s", v->fvarname, s);
123: err(buff);
124: }
125: else
126: errstr("Declaration error %s", s);
127: }
128:
129:
130:
131: execerr(s, n)
132: char *s, *n;
133: {
134: char buf1[100], buf2[100];
135:
136: sprintf(buf1, "Execution error %s", s);
137: sprintf(buf2, buf1, n);
138: err(buf2);
139: }
140:
141:
142: Fatal(t)
143: char *t;
144: {
145: fprintf(diagfile, "Compiler error line %ld", lineno);
146: if (infname)
147: fprintf(diagfile, " of %s", infname);
148: fprintf(diagfile, ": %s\n", t);
149: done(3);
150: }
151:
152:
153:
154:
155: fatalstr(t,s)
156: char *t, *s;
157: {
158: char buff[100];
159: sprintf(buff, t, s);
160: Fatal(buff);
161: }
162:
163:
164:
165: fatali(t,d)
166: char *t;
167: int d;
168: {
169: char buff[100];
170: sprintf(buff, t, d);
171: Fatal(buff);
172: }
173:
174:
175:
176: badthing(thing, r, t)
177: char *thing, *r;
178: int t;
179: {
180: char buff[50];
181: sprintf(buff, "Impossible %s %d in routine %s", thing, t, r);
182: Fatal(buff);
183: }
184:
185:
186:
187: badop(r, t)
188: char *r;
189: int t;
190: {
191: badthing("opcode", r, t);
192: }
193:
194:
195:
196: badtag(r, t)
197: char *r;
198: int t;
199: {
200: badthing("tag", r, t);
201: }
202:
203:
204:
205:
206:
207: badstg(r, t)
208: char *r;
209: int t;
210: {
211: badthing("storage class", r, t);
212: }
213:
214:
215:
216:
217: badtype(r, t)
218: char *r;
219: int t;
220: {
221: badthing("type", r, t);
222: }
223:
224:
225: many(s, c, n)
226: char *s, c;
227: int n;
228: {
229: char buff[250];
230:
231: sprintf(buff,
232: "Too many %s.\nTable limit now %d.\nTry rerunning with the -N%c%d option.\n",
233: s, n, c, 2*n);
234: Fatal(buff);
235: }
236:
237:
238: err66(s)
239: char *s;
240: {
241: errstr("Fortran 77 feature used: %s", s);
242: --nerr;
243: }
244:
245:
246:
247: errext(s)
248: char *s;
249: {
250: errstr("f2c extension used: %s", s);
251: --nerr;
252: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.