|
|
1.1 root 1: /*
2: * Copyright (c) 1989 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * This code is derived from software contributed to Berkeley by
6: * Robert Paul Corbett.
7: *
8: * Redistribution and use in source and binary forms are permitted provided
9: * that: (1) source distributions retain this entire copyright notice and
10: * comment, and (2) distributions including binaries display the following
11: * acknowledgement: ``This product includes software developed by the
12: * University of California, Berkeley and its contributors'' in the
13: * documentation or other materials provided with the distribution and in
14: * all advertising materials mentioning features or use of this software.
15: * Neither the name of the University nor the names of its contributors may
16: * be used to endorse or promote products derived from this software without
17: * specific prior written permission.
18: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
19: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
20: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21: */
22:
23: #ifndef lint
24: static char sccsid[] = "@(#)error.c 5.3 (Berkeley) 6/1/90";
25: #endif /* not lint */
26:
27: /* routines for printing error messages */
28:
29: #include "defs.h"
30:
31:
32: fatal(msg)
33: char *msg;
34: {
35: fprintf(stderr, "%s: f - %s\n", myname, msg);
36: done(2);
37: }
38:
39:
40: no_space()
41: {
42: fprintf(stderr, "%s: f - out of space\n", myname);
43: done(2);
44: }
45:
46:
47: open_error(filename)
48: char *filename;
49: {
50: fprintf(stderr, "%s: f - cannot open \"%s\"\n", myname, filename);
51: done(2);
52: }
53:
54:
55: unexpected_EOF()
56: {
57: fprintf(stderr, "%s: e - line %d of \"%s\", unexpected end-of-file\n",
58: myname, lineno, input_file_name);
59: done(1);
60: }
61:
62:
63: print_pos(st_line, st_cptr)
64: char *st_line;
65: char *st_cptr;
66: {
67: register char *s;
68:
69: if (st_line == 0) return;
70: for (s = st_line; *s != '\n'; ++s)
71: {
72: if (isprint(*s) || *s == '\t')
73: putc(*s, stderr);
74: else
75: putc('?', stderr);
76: }
77: putc('\n', stderr);
78: for (s = st_line; s < st_cptr; ++s)
79: {
80: if (*s == '\t')
81: putc('\t', stderr);
82: else
83: putc(' ', stderr);
84: }
85: putc('^', stderr);
86: putc('\n', stderr);
87: }
88:
89:
90: syntax_error(st_lineno, st_line, st_cptr)
91: int st_lineno;
92: char *st_line;
93: char *st_cptr;
94: {
95: fprintf(stderr, "%s: e - line %d of \"%s\", syntax error\n",
96: myname, st_lineno, input_file_name);
97: print_pos(st_line, st_cptr);
98: done(1);
99: }
100:
101:
102: unterminated_comment(c_lineno, c_line, c_cptr)
103: int c_lineno;
104: char *c_line;
105: char *c_cptr;
106: {
107: fprintf(stderr, "%s: e - line %d of \"%s\", unmatched /*\n",
108: myname, c_lineno, input_file_name);
109: print_pos(c_line, c_cptr);
110: done(1);
111: }
112:
113:
114: unterminated_string(s_lineno, s_line, s_cptr)
115: int s_lineno;
116: char *s_line;
117: char *s_cptr;
118: {
119: fprintf(stderr, "%s: e - line %d of \"%s\", unterminated string\n",
120: myname, s_lineno, input_file_name);
121: print_pos(s_line, s_cptr);
122: done(1);
123: }
124:
125:
126: unterminated_text(t_lineno, t_line, t_cptr)
127: int t_lineno;
128: char *t_line;
129: char *t_cptr;
130: {
131: fprintf(stderr, "%s: e - line %d of \"%s\", unmatched %%{\n",
132: myname, t_lineno, input_file_name);
133: print_pos(t_line, t_cptr);
134: done(1);
135: }
136:
137:
138: unterminated_union(u_lineno, u_line, u_cptr)
139: int u_lineno;
140: char *u_line;
141: char *u_cptr;
142: {
143: fprintf(stderr, "%s: e - line %d of \"%s\", unterminated %%union \
144: declaration\n", myname, u_lineno, input_file_name);
145: print_pos(u_line, u_cptr);
146: done(1);
147: }
148:
149:
150: over_unionized(u_cptr)
151: char *u_cptr;
152: {
153: fprintf(stderr, "%s: e - line %d of \"%s\", too many %%union \
154: declarations\n", myname, lineno, input_file_name);
155: print_pos(line, u_cptr);
156: done(1);
157: }
158:
159:
160: illegal_tag(t_lineno, t_line, t_cptr)
161: int t_lineno;
162: char *t_line;
163: char *t_cptr;
164: {
165: fprintf(stderr, "%s: e - line %d of \"%s\", illegal tag\n",
166: myname, t_lineno, input_file_name);
167: print_pos(t_line, t_cptr);
168: done(1);
169: }
170:
171:
172: illegal_character(c_cptr)
173: char *c_cptr;
174: {
175: fprintf(stderr, "%s: e - line %d of \"%s\", illegal character\n",
176: myname, lineno, input_file_name);
177: print_pos(line, c_cptr);
178: done(1);
179: }
180:
181:
182: used_reserved(s)
183: char *s;
184: {
185: fprintf(stderr, "%s: e - line %d of \"%s\", illegal use of reserved symbol \
186: %s\n", myname, lineno, input_file_name, s);
187: done(1);
188: }
189:
190:
191: tokenized_start(s)
192: char *s;
193: {
194: fprintf(stderr, "%s: e - line %d of \"%s\", the start symbol %s cannot be \
195: declared to be a token\n", myname, lineno, input_file_name, s);
196: done(1);
197: }
198:
199:
200: retyped_warning(s)
201: char *s;
202: {
203: fprintf(stderr, "%s: w - line %d of \"%s\", the type of %s has been \
204: redeclared\n", myname, lineno, input_file_name, s);
205: }
206:
207:
208: reprec_warning(s)
209: char *s;
210: {
211: fprintf(stderr, "%s: w - line %d of \"%s\", the precedence of %s has been \
212: redeclared\n", myname, lineno, input_file_name, s);
213: }
214:
215:
216: revalued_warning(s)
217: char *s;
218: {
219: fprintf(stderr, "%s: w - line %d of \"%s\", the value of %s has been \
220: redeclared\n", myname, lineno, input_file_name, s);
221: }
222:
223:
224: terminal_start(s)
225: char *s;
226: {
227: fprintf(stderr, "%s: e - line %d of \"%s\", the start symbol %s is a \
228: token\n", myname, lineno, input_file_name, s);
229: done(1);
230: }
231:
232:
233: restarted_warning()
234: {
235: fprintf(stderr, "%s: w - line %d of \"%s\", the start symbol has been \
236: redeclared\n", myname, lineno, input_file_name);
237: }
238:
239:
240: no_grammar()
241: {
242: fprintf(stderr, "%s: e - line %d of \"%s\", no grammar has been \
243: specified\n", myname, lineno, input_file_name);
244: done(1);
245: }
246:
247:
248: terminal_lhs(s_lineno)
249: int s_lineno;
250: {
251: fprintf(stderr, "%s: e - line %d of \"%s\", a token appears on the lhs \
252: of a production\n", myname, s_lineno, input_file_name);
253: done(1);
254: }
255:
256:
257: prec_redeclared()
258: {
259: fprintf(stderr, "%s: w - line %d of \"%s\", conflicting %%prec \
260: specifiers\n", myname, lineno, input_file_name);
261: }
262:
263:
264: unterminated_action(a_lineno, a_line, a_cptr)
265: int a_lineno;
266: char *a_line;
267: char *a_cptr;
268: {
269: fprintf(stderr, "%s: e - line %d of \"%s\", unterminated action\n",
270: myname, a_lineno, input_file_name);
271: print_pos(a_line, a_cptr);
272: done(1);
273: }
274:
275:
276: dollar_warning(a_lineno, i)
277: int a_lineno;
278: int i;
279: {
280: fprintf(stderr, "%s: w - line %d of \"%s\", $%d references beyond the \
281: end of the current rule\n", myname, a_lineno, input_file_name, i);
282: }
283:
284:
285: dollar_error(a_lineno, a_line, a_cptr)
286: int a_lineno;
287: char *a_line;
288: char *a_cptr;
289: {
290: fprintf(stderr, "%s: e - line %d of \"%s\", illegal $-name\n",
291: myname, a_lineno, input_file_name);
292: print_pos(a_line, a_cptr);
293: done(1);
294: }
295:
296:
297: untyped_lhs()
298: {
299: fprintf(stderr, "%s: e - line %d of \"%s\", $$ is untyped\n",
300: myname, lineno, input_file_name);
301: done(1);
302: }
303:
304:
305: untyped_rhs(i, s)
306: int i;
307: char *s;
308: {
309: fprintf(stderr, "%s: e - line %d of \"%s\", $%d (%s) is untyped\n",
310: myname, lineno, input_file_name, i, s);
311: done(1);
312: }
313:
314:
315: unknown_rhs(i)
316: int i;
317: {
318: fprintf(stderr, "%s: e - line %d of \"%s\", $%d is untyped\n",
319: myname, lineno, input_file_name, i);
320: done(1);
321: }
322:
323:
324: default_action_warning()
325: {
326: fprintf(stderr, "%s: w - line %d of \"%s\", the default action assigns an \
327: undefined value to $$\n", myname, lineno, input_file_name);
328: }
329:
330:
331: undefined_goal(s)
332: char *s;
333: {
334: fprintf(stderr, "%s: e - the start symbol %s is undefined\n", myname, s);
335: done(1);
336: }
337:
338:
339: undefined_symbol_warning(s)
340: char *s;
341: {
342: fprintf(stderr, "%s: w - the symbol %s is undefined\n", myname, s);
343: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.