3eb9473e |
1 | /*\r |
2 | * errsupport.c -- error support code for SORCERER output\r |
3 | *\r |
4 | * Define your own or compile and link this in.\r |
5 | *\r |
6 | * Terence Parr\r |
7 | * U of MN, AHPCRC\r |
8 | * February 1994\r |
9 | */\r |
10 | #include "sorcerer.h"\r |
11 | \r |
12 | void\r |
13 | #ifdef __USE_PROTOS\r |
14 | mismatched_range( STreeParser *_parser, int looking_for, int upper_token, SORAST *found )\r |
15 | #else\r |
16 | mismatched_range( _parser, looking_for, upper_token, found )\r |
17 | int looking_for;\r |
18 | int upper_token;\r |
19 | SORAST *found;\r |
20 | STreeParser *_parser;\r |
21 | #endif\r |
22 | {\r |
23 | if ( found!=NULL ) {\r |
24 | fprintf(stderr,\r |
25 | "parse error: expected token range %d..%d found token %d\n",\r |
26 | looking_for, upper_token,\r |
27 | found->token);\r |
28 | }\r |
29 | else {\r |
30 | fprintf(stderr,\r |
31 | "parse error: expected token range %d..%d found NULL tree\n",\r |
32 | looking_for, upper_token);\r |
33 | }\r |
34 | }\r |
35 | \r |
36 | void\r |
37 | #ifdef __USE_PROTOS\r |
38 | missing_wildcard(STreeParser *_parser)\r |
39 | #else\r |
40 | missing_wildcard(_parser)\r |
41 | STreeParser *_parser;\r |
42 | #endif\r |
43 | {\r |
44 | fprintf(stderr, "parse error: expected any token/tree found found NULL tree\n");\r |
45 | }\r |
46 | \r |
47 | void\r |
48 | #ifdef __USE_PROTOS\r |
49 | mismatched_token( STreeParser *_parser, int looking_for, SORAST *found )\r |
50 | #else\r |
51 | mismatched_token( _parser, looking_for, found )\r |
52 | int looking_for;\r |
53 | SORAST *found;\r |
54 | STreeParser *_parser;\r |
55 | #endif\r |
56 | {\r |
57 | if ( found!=NULL ) {\r |
58 | fprintf(stderr,\r |
59 | "parse error: expected token %d found token %d\n",\r |
60 | looking_for,\r |
61 | found->token);\r |
62 | }\r |
63 | else {\r |
64 | fprintf(stderr,\r |
65 | "parse error: expected token %d found NULL tree\n",\r |
66 | looking_for);\r |
67 | }\r |
68 | }\r |
69 | \r |
70 | void\r |
71 | #ifdef __USE_PROTOS\r |
72 | no_viable_alt( STreeParser *_parser, char *rulename, SORAST *root )\r |
73 | #else\r |
74 | no_viable_alt( _parser, rulename, root )\r |
75 | char *rulename;\r |
76 | SORAST *root;\r |
77 | STreeParser *_parser;\r |
78 | #endif\r |
79 | {\r |
80 | if ( root==NULL )\r |
81 | fprintf(stderr,\r |
82 | "parse error: in rule %s, no viable alternative for NULL tree\n",\r |
83 | rulename);\r |
84 | else\r |
85 | fprintf(stderr,\r |
86 | "parse error: in rule %s, no viable alternative for tree\n",\r |
87 | rulename);\r |
88 | }\r |
89 | \r |
90 | void\r |
91 | #ifdef __USE_PROTOS\r |
92 | sorcerer_panic(char *err)\r |
93 | #else\r |
94 | sorcerer_panic(err)\r |
95 | char *err;\r |
96 | #endif\r |
97 | {\r |
98 | fprintf(stderr, "panic: %s\n", err);\r |
99 | exit(-1);\r |
100 | }\r |