# 2.11BSD#431 - /usr/src/ucb/PORT/pascal/src/yyerror.c

##### Functions

    brerror           X
    yerror            X

       1: /*
       2:  * Copyright (c) 1980 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  */
       6:
       7: #ifndef lint
       8: static char sccsid[] = "@(#)yyerror.c	5.2 (Berkeley) 5/6/86";
       9: #endif not lint
      10:
      11: #include "whoami.h"
      12: #include "0.h"
      13: #include "tree_ty.h"    /* must be included for yy.h */
      14: #include "yy.h"
      15:
      16: /*
      17:  * Yerror prints an error
      18:  * message and then returns
      19:  * NIL for the tree if needed.
      20:  * The error is flagged on the
      21:  * current line which is printed
      22:  * if the listing is turned off.
      23: #ifdef PXP
      24:  *
      25:  * As is obvious from the fooling around
      26:  * with fout below, the Pascal system should
      27:  * be changed to use the new library "lS".
      28: #endif
      29:  */
      30: /*VARARGS*/
      31: yerror(s, a1, a2, a3, a4, a5)
      32:     char *s;
      33:     char *a1, *a2, *a3, *a4, *a5;
      34: {
      35: #ifdef PI
      36:     char buf[256];
      37: #endif
      38:     register int i;
      39:     static yySerrs;
      40: #ifdef PXP
      41:     int ofout;
      42: #endif
      43:
      44:     if (errpfx == 'w' && opt('w') != 0) {
      45:         errpfx = 'E';
      46:         return;
      47:     }
      48:     /* no continuations allowed here */
      49:     if (errpfx == ' ')
      50:         errpfx = 'E';
      51: #ifdef PXP
      52:     flush();
      53:     ofout = fout[0];
      54:     fout[0] = errout;
      55: #endif
      56:     yyResume = 0;
      57: #ifdef PI
      58:     geterr((int) s, buf);
      59:     s = buf;
      60: #endif
      61:     yysync();
      62:     pchr(errpfx);
      63:     pchr(' ');
      64:     for (i = 3; i < yyecol; i++)
      65:         pchr('-');
      66:     printf("^--- ");
      67: /*
      68: 	if (yyecol > 60)
      69: 		printf("\n\t");
      70: */
      71:     printf(s, a1, a2, a3, a4, a5);
      72:     pchr('\n');
      73:     if (errpfx == 'E')
      74: #ifdef PI
      75:         eflg = TRUE, codeoff();
      76: #endif
      77: #ifdef PXP
      78:         eflg = TRUE;
      79: #endif
      80:     errpfx = 'E';
      81:     yySerrs++;
      82:     if (yySerrs >= MAXSYNERR) {
      83:         yySerrs = 0;
      84:         yerror("Too many syntax errors - QUIT");
      85:         pexit(ERRS);
      86:     }
      87: #ifdef PXP
      88:     flush();
      89:     fout[0] = ofout;
      90:     return (0);
      91: #endif
      92: }
      93:
      94: /*
      95:  * A bracketing error message
      96:  */
      97: brerror(where, what)
      98:     int where;
      99:     char *what;
     100: {
     101:
     102:     if (where == 0) {
     103:         line = yyeline;
     104:         setpfx(' ');
     105:         error("End matched %s on line %d", what, (char *) where);
     106:         return;
     107:     }
     108:     if (where < 0)
     109:         where = -where;
     110:     yerror("Inserted keyword end matching %s on line %d", what, (char *) where);
     111: }

#### Defined functions

brerror defined in line 97; used 4 times

- in /usr/src/ucb/PORT/pascal/src/pas.y line 159, 435, 604, 612

yerror defined in line 31; used 38 times

- in line 84, 110
- in /usr/src/ucb/PORT/pascal/src/hash.c line 156, 195
- in /usr/src/ucb/PORT/pascal/src/pas.y line 531
- in /usr/src/ucb/PORT/pascal/src/string.c line 74
- in /usr/src/ucb/PORT/pascal/src/tree.c line 118, 124
- in /usr/src/ucb/PORT/pascal/src/yylex.c line 125, 145, 164, 186, 194, 205, 218, 239, 261, 267, 302
- in /usr/src/ucb/PORT/pascal/src/yypanic.c line 47, 60, 82, 94, 147, 153
- in /usr/src/ucb/PORT/pascal/src/yyparse.c line 70, 208
- in /usr/src/ucb/PORT/pascal/src/yyrecover.c line 206, 386-388(2), 409, 423, 443, 456, 476-481(2), 516, 523

#### Defined variables

sccsid defined in line 8; never used

Last modified: 1986-05-07 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 623 |