Pristine Ack-5.5
[Ack-5.5.git] / lang / basic / src / llmess.c
1 /*
2  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
3  * See the copyright notice in the ACK home directory, in the file "Copyright".
4  */
5
6 #include "tokentab.h"
7
8 /* Mod van gertjan */
9 extern int LLsymb;
10 extern int toknum;
11
12
13 error_char(format,ch)
14 char *format;
15 char ch;
16 {
17         extern int listing,errorcnt;
18         extern int basicline;
19
20         if ( !listing ) fprint(STDERR, "LINE %d:",basicline);
21         fprint(STDERR, format,ch);
22         errorcnt++;
23 }
24
25
26
27 error_string(format,str)
28 char *format;
29 char *str;
30 {
31         extern int listing,errorcnt;
32         extern int basicline;
33
34         if ( !listing ) fprint(STDERR, "LINE %d:",basicline);
35         fprint(STDERR, format,str);
36         errorcnt++;
37 }
38
39
40
41 LLmessage( insertedtok )
42 int insertedtok;
43 {
44     if ( insertedtok < 0 ) {
45         error("Fatal stack overflow\n");
46         C_close();
47         sys_stop( S_EXIT );
48     }
49
50     if ( insertedtok == 0 ) 
51         if ( LLsymb < 256 )
52             error_char("%c deleted\n", (char)LLsymb);
53         else
54             error_string("%s deleted\n", tokentab[ LLsymb-256 ]);
55     else {
56         if ( insertedtok < 256 )
57             error_char("%c inserted\n", (char)insertedtok);
58         else
59             error_string("%s inserted\n", tokentab[ insertedtok-256 ]);
60         toknum = insertedtok;
61     }
62 }