|
|
1.1 ! root 1: #include "defs" ! 2: ! 3: char *linerr() ! 4: { ! 5: static char buff[50]; ! 6: register int i; ! 7: ! 8: for(i = filedepth; i>0 && filenames[i]==NULL ; --i) ! 9: ; ! 10: if(i > 0) ! 11: sprintf(buff, "on line %d of file %s", yylineno, filenames[i]); ! 12: else ! 13: sprintf(buff, "on line %d", yylineno); ! 14: return(buff); ! 15: } ! 16: ! 17: ! 18: ! 19: laberr(s,t) ! 20: char *s; ! 21: char *t; ! 22: { ! 23: errmess("Label error", s, t); ! 24: } ! 25: ! 26: ! 27: ! 28: ! 29: ! 30: exprerr(s,t) ! 31: char *s; ! 32: ptr t; ! 33: { ! 34: errmess("Expression error", s, t); ! 35: } ! 36: ! 37: ! 38: ! 39: ! 40: execerr(s,t) ! 41: char *s, *t; ! 42: { ! 43: errmess("Error", s, t); ! 44: } ! 45: ! 46: ! 47: errmess(m,s,t) ! 48: char *m, *s, *t; ! 49: { ! 50: fprintf(diagfile, "**%s %s: ", m, linerr()); ! 51: if(s) ! 52: fprintf(diagfile, s, t); ! 53: fprintf(diagfile, "\n"); ! 54: ++nerrs; ! 55: } ! 56: ! 57: ! 58: ! 59: dclerr(s, n) ! 60: char *s, *n; ! 61: { ! 62: extern int nerrs; ! 63: ! 64: fprintf(diagfile, "**Error %s: Declaration for %s: %s\n", ! 65: linerr(), n, s); ! 66: ++nerrs; ! 67: } ! 68: ! 69: ! 70: ! 71: ! 72: badtag(routine, tag) ! 73: char *routine; ! 74: int tag; ! 75: { ! 76: char buff[100]; ! 77: sprintf(buff, "impossible tag %d in routine %s", tag, routine); ! 78: fatal(buff); ! 79: } ! 80: ! 81: ! 82: ! 83: fatal1(s,t) ! 84: char *s; ! 85: int t; ! 86: { ! 87: ! 88: sprintf(msg, s, t); ! 89: fatal(msg); ! 90: } ! 91: ! 92: ! 93: ! 94: fatal(s) ! 95: char *s; ! 96: { ! 97: fprintf(diagfile, "\n***Compiler error %s.", linerr()); ! 98: if(s) fprintf(diagfile, " %s.", s); ! 99: fprintf(diagfile, "\n"); ! 100: fflush(stdout); ! 101: ! 102: if(dumpcore) ! 103: abort(0); ! 104: else { ! 105: rmiis(); ! 106: exit(-1); ! 107: } ! 108: } ! 109: ! 110: ! 111: ! 112: warn1(s,t) ! 113: char *s; ! 114: int t; ! 115: { ! 116: sprintf(msg, s, t); ! 117: warn(msg); ! 118: } ! 119: ! 120: ! 121: ! 122: ! 123: warn(s) ! 124: char *s; ! 125: { ! 126: ++nwarns; ! 127: if( !nowarnflag) ! 128: fprintf(diagfile, "*Warning: %s\n", s); ! 129: } ! 130: ! 131: ! 132: ! 133: yyerror(s) ! 134: char *s; ! 135: { ! 136: errmess(s, CNULL, CNULL); ! 137: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.