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