home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 200-299 / ff299.lzh / Yacc / error.c < prev    next >
C/C++ Source or Header  |  1989-12-30  |  6KB  |  319 lines

  1. /* routines for printing error messages  */
  2.  
  3. #include "defs.h"
  4.  
  5.  
  6. fatal(msg)
  7. char *msg;
  8. {
  9.     fprintf(stderr, "%s: f - %s\n", myname, msg);
  10.     done(2);
  11. }
  12.  
  13.  
  14. no_space()
  15. {
  16.     abort();
  17.     fprintf(stderr, "%s: f - out of space\n", myname);
  18.     done(2);
  19. }
  20.  
  21.  
  22. open_error(filename)
  23. char *filename;
  24. {
  25.     fprintf(stderr, "%s: f - cannot open \"%s\"\n", myname, filename);
  26.     done(2);
  27. }
  28.  
  29.  
  30. unexpected_EOF()
  31. {
  32.     fprintf(stderr, "%s: e - line %d of \"%s\", unexpected end-of-file\n",
  33.         myname, lineno, input_file_name);
  34.     done(1);
  35. }
  36.  
  37.  
  38. print_pos(st_line, st_cptr)
  39. char *st_line;
  40. char *st_cptr;
  41. {
  42.     register char *s;
  43.  
  44.     if (st_line == 0) return;
  45.     for (s = st_line; *s != '\n'; ++s)
  46.     {
  47.     if (isprint(*s) || *s == '\t')
  48.         putc(*s, stderr);
  49.     else
  50.         putc('?', stderr);
  51.     }
  52.     putc('\n', stderr);
  53.     for (s = st_line; s < st_cptr; ++s)
  54.     {
  55.     if (*s == '\t')
  56.         putc('\t', stderr);
  57.     else
  58.         putc(' ', stderr);
  59.     }
  60.     putc('^', stderr);
  61.     putc('\n', stderr);
  62. }
  63.  
  64.  
  65. syntax_error(st_lineno, st_line, st_cptr)
  66. int st_lineno;
  67. char *st_line;
  68. char *st_cptr;
  69. {
  70.     fprintf(stderr, "%s: e - line %d of \"%s\", syntax error\n",
  71.         myname, st_lineno, input_file_name);
  72.     print_pos(st_line, st_cptr);
  73.     exit(1);
  74. }
  75.  
  76.  
  77. unterminated_comment(c_lineno, c_line, c_cptr)
  78. int c_lineno;
  79. char *c_line;
  80. char *c_cptr;
  81. {
  82.     fprintf(stderr, "%s: e - line %d of \"%s\", unmatched /*\n",
  83.         myname, c_lineno, input_file_name);
  84.     print_pos(c_line, c_cptr);
  85.     done(1);
  86. }
  87.  
  88.  
  89. unterminated_string(s_lineno, s_line, s_cptr)
  90. int s_lineno;
  91. char *s_line;
  92. char *s_cptr;
  93. {
  94.     fprintf(stderr, "%s: e - line %d of \"%s\", unterminated string\n",
  95.         myname, s_lineno, input_file_name);
  96.     print_pos(s_line, s_cptr);
  97.     done(1);
  98. }
  99.  
  100.  
  101. unterminated_text(t_lineno, t_line, t_cptr)
  102. int t_lineno;
  103. char *t_line;
  104. char *t_cptr;
  105. {
  106.     fprintf(stderr, "%s: e - line %d of \"%s\", unmatched %%{\n",
  107.         myname, t_lineno, input_file_name);
  108.     print_pos(t_line, t_cptr);
  109.     done(1);
  110. }
  111.  
  112.  
  113. unterminated_union(u_lineno, u_line, u_cptr)
  114. int u_lineno;
  115. char *u_line;
  116. char *u_cptr;
  117. {
  118.     fprintf(stderr, "%s: e - line %d of \"%s\", unterminated %%union \
  119. declaration\n", myname, u_lineno, input_file_name);
  120.     print_pos(u_line, u_cptr);
  121.     done(1);
  122. }
  123.  
  124.  
  125. over_unionized(u_cptr)
  126. char *u_cptr;
  127. {
  128.     fprintf(stderr, "%s: e - line %d of \"%s\", too many %%union \
  129. declarations\n", myname, lineno, input_file_name);
  130.     print_pos(line, u_cptr);
  131.     done(1);
  132. }
  133.  
  134.  
  135. illegal_tag(t_lineno, t_line, t_cptr)
  136. int t_lineno;
  137. char *t_line;
  138. char *t_cptr;
  139. {
  140.     fprintf(stderr, "%s: e - line %d of \"%s\", illegal tag\n",
  141.         myname, t_lineno, input_file_name);
  142.     print_pos(t_line, t_cptr);
  143.     done(1);
  144. }
  145.  
  146.  
  147. illegal_character(c_cptr)
  148. char *c_cptr;
  149. {
  150.     fprintf(stderr, "%s: e - line %d of \"%s\", illegal character\n",
  151.         myname, lineno, input_file_name);
  152.     print_pos(line, c_cptr);
  153.     done(1);
  154. }
  155.  
  156.  
  157. used_reserved(s)
  158. char *s;
  159. {
  160.     fprintf(stderr, "%s: e - line %d of \"%s\", illegal use of reserved symbol \
  161. %s\n", myname, lineno, input_file_name, s);
  162.     done(1);
  163. }
  164.  
  165.  
  166. tokenized_start(s)
  167. char *s;
  168. {
  169.      fprintf(stderr, "%s: e - line %d of \"%s\", the start symbol %s cannot be \
  170. declared to be a token\n", myname, lineno, input_file_name, s);
  171.      done(1);
  172. }
  173.  
  174.  
  175. retyped_warning(s)
  176. char *s;
  177. {
  178.     fprintf(stderr, "%s: w - line %d of \"%s\", the type of %s has been \
  179. redeclared\n", myname, lineno, input_file_name, s);
  180. }
  181.  
  182.  
  183. reprec_warning(s)
  184. char *s;
  185. {
  186.     fprintf(stderr, "%s: w - line %d of \"%s\", the precedence of %s has been \
  187. redeclared\n", myname, lineno, input_file_name, s);
  188. }
  189.  
  190.  
  191. revalued_warning(s)
  192. char *s;
  193. {
  194.     fprintf(stderr, "%s: w - line %d of \"%s\", the value of %s has been \
  195. redeclared\n", myname, lineno, input_file_name, s);
  196. }
  197.  
  198.  
  199. terminal_start(s)
  200. char *s;
  201. {
  202.     fprintf(stderr, "%s: e - line %d of \"%s\", the start symbol %s is a \
  203. token\n", myname, lineno, input_file_name, s);
  204.     done(1);
  205. }
  206.  
  207.  
  208. restarted_warning()
  209. {
  210.     fprintf(stderr, "%s: w - line %d of \"%s\", the start symbol has been \
  211. redeclared\n", myname, lineno, input_file_name);
  212. }
  213.  
  214.  
  215. no_grammar()
  216. {
  217.     fprintf(stderr, "%s: e - line %d of \"%s\", no grammar has been \
  218. specified\n", myname, lineno, input_file_name);
  219.     done(1);
  220. }
  221.  
  222.  
  223. terminal_lhs(s_lineno)
  224. int s_lineno;
  225. {
  226.     fprintf(stderr, "%s: e - line %d of \"%s\", a token appears on the lhs \
  227. of a production\n", myname, s_lineno, input_file_name);
  228.     done(1);
  229. }
  230.  
  231.  
  232. prec_redeclared()
  233. {
  234.     fprintf(stderr, "%s: w - line %d of  \"%s\", conflicting %%prec \
  235. specifiers\n", myname, lineno, input_file_name);
  236. }
  237.  
  238.  
  239. unterminated_action(a_lineno, a_line, a_cptr)
  240. int a_lineno;
  241. char *a_line;
  242. char *a_cptr;
  243. {
  244.     fprintf(stderr, "%s: e - line %d of \"%s\", unterminated action\n",
  245.         myname, a_lineno, input_file_name);
  246.     print_pos(a_line, a_cptr);
  247.     done(1);
  248. }
  249.  
  250.  
  251. dollar_warning(a_lineno, i)
  252. int a_lineno;
  253. int i;
  254. {
  255.     fprintf(stderr, "%s: w - line %d of \"%s\", $%d references beyond the \
  256. end of the current rule\n", myname, a_lineno, input_file_name, i);
  257. }
  258.  
  259.  
  260. dollar_error(a_lineno, a_line, a_cptr)
  261. int a_lineno;
  262. char *a_line;
  263. char *a_cptr;
  264. {
  265.     fprintf(stderr, "%s: e - line %d of \"%s\", illegal $-name\n",
  266.         myname, a_lineno, input_file_name);
  267.     print_pos(a_line, a_cptr);
  268.     done(1);
  269. }
  270.  
  271.  
  272. untyped_lhs()
  273. {
  274.     fprintf(stderr, "%s: e - line %d of \"%s\", $$ is untyped\n",
  275.         myname, lineno, input_file_name);
  276.     done(1);
  277. }
  278.  
  279.  
  280. untyped_rhs(i, s)
  281. int i;
  282. char *s;
  283. {
  284.     fprintf(stderr, "%s: e - line %d of \"%s\", $%d (%s) is untyped\n",
  285.         myname, lineno, input_file_name, i, s);
  286.     done(1);
  287. }
  288.  
  289.  
  290. unknown_rhs(i)
  291. int i;
  292. {
  293.     fprintf(stderr, "%s: e - line %d of \"%s\", $%d is untyped\n",
  294.         myname, lineno, input_file_name, i);
  295.     done(1);
  296. }
  297.  
  298.  
  299. default_action_warning()
  300. {
  301.     fprintf(stderr, "%s: w - line %d of \"%s\", the default action assigns an \
  302. undefined value to $$\n", myname, lineno, input_file_name);
  303. }
  304.  
  305.  
  306. undefined_goal(s)
  307. char *s;
  308. {
  309.     fprintf(stderr, "%s: e - the start symbol %s is undefined\n", myname, s);
  310.     done(1);
  311. }
  312.  
  313.  
  314. undefined_symbol_warning(s)
  315. char *s;
  316. {
  317.     fprintf(stderr, "%s: w - the symbol %s is undefined\n", myname, s);
  318. }
  319.