|
|
1.1 ! root 1: #include "asm.h" ! 2: ! 3: getnb() ! 4: { ! 5: register c; ! 6: ! 7: do { ! 8: if ((c = *ip) != 0) ! 9: ++ip; ! 10: } while (c==' ' || c=='\t'); ! 11: return (c); ! 12: } ! 13: ! 14: get() ! 15: { ! 16: register c; ! 17: ! 18: if ((c = *ip) != 0) ! 19: ++ip; ! 20: return (c); ! 21: } ! 22: ! 23: nxtc(c) ! 24: { ! 25: if (c == *ip) { ! 26: ++ip; ! 27: return (1); ! 28: } ! 29: return (0); ! 30: } ! 31: ! 32: unget(c) ! 33: { ! 34: if (c != 0) ! 35: --ip; ! 36: } ! 37: ! 38: getmap(d) ! 39: { ! 40: register c, v, n; ! 41: ! 42: if ((c = get()) == '\0') ! 43: qerr("unexpected end of line"); ! 44: if (c == d) ! 45: return (-1); ! 46: if (c == '\\') { ! 47: c = get(); ! 48: switch (c) { ! 49: ! 50: case 'b': ! 51: c = '\b'; ! 52: break; ! 53: ! 54: case 'f': ! 55: c = '\f'; ! 56: break; ! 57: ! 58: case 'n': ! 59: c = '\n'; ! 60: break; ! 61: ! 62: case 'r': ! 63: c = '\r'; ! 64: break; ! 65: ! 66: case 't': ! 67: c = '\t'; ! 68: break; ! 69: ! 70: case 'v': /* 150 */ ! 71: c = 013; /* vertical tab */ /* 150 */ ! 72: break; /* 150 */ ! 73: case 'x': ! 74: for(n = v = 0; n < 2; n++) { /* hex stuff */ ! 75: v = (v << 4) + (c = get()); ! 76: if(c >= '0' && c <= '9') ! 77: v -= '0'; ! 78: else if(c >= 'a' && c <= 'f') ! 79: v -= ('a' - 10); ! 80: else if(c >= 'A' && c <= 'F') ! 81: v -= ('A' - 10); ! 82: else ! 83: qerr("Invalid hex expression"); ! 84: } ! 85: c = v; ! 86: break; ! 87: case '0': ! 88: case '1': ! 89: case '2': ! 90: case '3': ! 91: case '4': ! 92: case '5': ! 93: case '6': ! 94: case '7': ! 95: n = 0; ! 96: v = 0; ! 97: while (++n<=3 && c>='0' && c<='7') { ! 98: v = (v<<3) + c - '0'; ! 99: c = get(); ! 100: } ! 101: unget(c); ! 102: c = v; ! 103: break; ! 104: } ! 105: } ! 106: return (c); ! 107: } ! 108: ! 109: more() ! 110: { ! 111: register c; ! 112: ! 113: c = getnb(); ! 114: unget(c); ! 115: if (c == '\0' || c == '/' || c == ';') ! 116: return (0); ! 117: return (1); ! 118: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.