/* | |
* errsupport.c -- error support code for SORCERER output | |
* | |
* Define your own or compile and link this in. | |
* | |
* Terence Parr | |
* U of MN, AHPCRC | |
* February 1994 | |
*/ | |
#include "sorcerer.h" | |
void | |
#ifdef __USE_PROTOS | |
mismatched_range( STreeParser *_parser, int looking_for, int upper_token, SORAST *found ) | |
#else | |
mismatched_range( _parser, looking_for, upper_token, found ) | |
int looking_for; | |
int upper_token; | |
SORAST *found; | |
STreeParser *_parser; | |
#endif | |
{ | |
if ( found!=NULL ) { | |
fprintf(stderr, | |
"parse error: expected token range %d..%d found token %d\n", | |
looking_for, upper_token, | |
found->token); | |
} | |
else { | |
fprintf(stderr, | |
"parse error: expected token range %d..%d found NULL tree\n", | |
looking_for, upper_token); | |
} | |
} | |
void | |
#ifdef __USE_PROTOS | |
missing_wildcard(STreeParser *_parser) | |
#else | |
missing_wildcard(_parser) | |
STreeParser *_parser; | |
#endif | |
{ | |
fprintf(stderr, "parse error: expected any token/tree found found NULL tree\n"); | |
} | |
void | |
#ifdef __USE_PROTOS | |
mismatched_token( STreeParser *_parser, int looking_for, SORAST *found ) | |
#else | |
mismatched_token( _parser, looking_for, found ) | |
int looking_for; | |
SORAST *found; | |
STreeParser *_parser; | |
#endif | |
{ | |
if ( found!=NULL ) { | |
fprintf(stderr, | |
"parse error: expected token %d found token %d\n", | |
looking_for, | |
found->token); | |
} | |
else { | |
fprintf(stderr, | |
"parse error: expected token %d found NULL tree\n", | |
looking_for); | |
} | |
} | |
void | |
#ifdef __USE_PROTOS | |
no_viable_alt( STreeParser *_parser, char *rulename, SORAST *root ) | |
#else | |
no_viable_alt( _parser, rulename, root ) | |
char *rulename; | |
SORAST *root; | |
STreeParser *_parser; | |
#endif | |
{ | |
if ( root==NULL ) | |
fprintf(stderr, | |
"parse error: in rule %s, no viable alternative for NULL tree\n", | |
rulename); | |
else | |
fprintf(stderr, | |
"parse error: in rule %s, no viable alternative for tree\n", | |
rulename); | |
} | |
void | |
#ifdef __USE_PROTOS | |
sorcerer_panic(char *err) | |
#else | |
sorcerer_panic(err) | |
char *err; | |
#endif | |
{ | |
fprintf(stderr, "panic: %s\n", err); | |
exit(-1); | |
} |