|
|
1.1 ! root 1: #include "awk.def" ! 2: obj nullproc(); ! 3: extern obj program(); ! 4: extern obj boolop(); ! 5: extern obj relop(); ! 6: extern obj array(); ! 7: extern obj indirect(); ! 8: extern obj substr(); ! 9: extern obj sindex(); ! 10: extern obj asprintf(); ! 11: extern obj arith(); ! 12: extern obj incrdecr(); ! 13: extern obj cat(); ! 14: extern obj pastat(); ! 15: extern obj dopa2(); ! 16: extern obj matchop(); ! 17: extern obj aprintf(); ! 18: extern obj print(); ! 19: extern obj split(); ! 20: extern obj assign(); ! 21: extern obj ifstat(); ! 22: extern obj whilestat(); ! 23: extern obj forstat(); ! 24: extern obj instat(); ! 25: extern obj jump(); ! 26: extern obj fncn(); ! 27: extern obj getline(); ! 28: obj (*proctab[76])() = { ! 29: /*FIRSTTOKEN*/ nullproc, ! 30: /*FINAL*/ nullproc, ! 31: /*FATAL*/ nullproc, ! 32: /*LT*/ relop, ! 33: /*LE*/ relop, ! 34: /*GT*/ relop, ! 35: /*GE*/ relop, ! 36: /*EQ*/ relop, ! 37: /*NE*/ relop, ! 38: /*MATCH*/ matchop, ! 39: /*NOTMATCH*/ matchop, ! 40: /*APPEND*/ nullproc, ! 41: /*ADD*/ arith, ! 42: /*MINUS*/ arith, ! 43: /*MULT*/ arith, ! 44: /*DIVIDE*/ arith, ! 45: /*MOD*/ arith, ! 46: /*UMINUS*/ arith, ! 47: /*ASSIGN*/ assign, ! 48: /*ADDEQ*/ assign, ! 49: /*SUBEQ*/ assign, ! 50: /*MULTEQ*/ assign, ! 51: /*DIVEQ*/ assign, ! 52: /*MODEQ*/ assign, ! 53: /*JUMP*/ nullproc, ! 54: /*XBEGIN*/ nullproc, ! 55: /*XEND*/ nullproc, ! 56: /*NL*/ nullproc, ! 57: /*PRINT*/ print, ! 58: /*PRINTF*/ aprintf, ! 59: /*SPRINTF*/ asprintf, ! 60: /*SPLIT*/ split, ! 61: /*IF*/ ifstat, ! 62: /*ELSE*/ nullproc, ! 63: /*WHILE*/ whilestat, ! 64: /*FOR*/ forstat, ! 65: /*IN*/ instat, ! 66: /*NEXT*/ jump, ! 67: /*EXIT*/ jump, ! 68: /*BREAK*/ jump, ! 69: /*CONTINUE*/ jump, ! 70: /*PROGRAM*/ program, ! 71: /*PASTAT*/ pastat, ! 72: /*PASTAT2*/ dopa2, ! 73: /*ASGNOP*/ nullproc, ! 74: /*BOR*/ boolop, ! 75: /*AND*/ boolop, ! 76: /*NOT*/ boolop, ! 77: /*NUMBER*/ nullproc, ! 78: /*VAR*/ nullproc, ! 79: /*ARRAY*/ array, ! 80: /*FNCN*/ fncn, ! 81: /*SUBSTR*/ substr, ! 82: /*LSUBSTR*/ nullproc, ! 83: /*INDEX*/ sindex, ! 84: /*GETLINE*/ getline, ! 85: /*RELOP*/ nullproc, ! 86: /*MATCHOP*/ nullproc, ! 87: /*OR*/ nullproc, ! 88: /*STRING*/ nullproc, ! 89: /*DOT*/ nullproc, ! 90: /*CCL*/ nullproc, ! 91: /*NCCL*/ nullproc, ! 92: /*CHAR*/ nullproc, ! 93: /*CAT*/ cat, ! 94: /*STAR*/ nullproc, ! 95: /*PLUS*/ nullproc, ! 96: /*QUEST*/ nullproc, ! 97: /*POSTINCR*/ incrdecr, ! 98: /*PREINCR*/ incrdecr, ! 99: /*POSTDECR*/ incrdecr, ! 100: /*PREDECR*/ incrdecr, ! 101: /*INCR*/ nullproc, ! 102: /*DECR*/ nullproc, ! 103: /*FIELD*/ nullproc, ! 104: /*INDIRECT*/ indirect, ! 105: }; ! 106: char *printname[76] = { ! 107: /*FIRSTTOKEN*/ "", ! 108: /*FINAL*/ "", ! 109: /*FATAL*/ "", ! 110: /*LT*/ " < ", ! 111: /*LE*/ " <= ", ! 112: /*GT*/ " > ", ! 113: /*GE*/ " >= ", ! 114: /*EQ*/ " == ", ! 115: /*NE*/ " != ", ! 116: /*MATCH*/ " ~ ", ! 117: /*NOTMATCH*/ " !~ ", ! 118: /*APPEND*/ "", ! 119: /*ADD*/ " + ", ! 120: /*MINUS*/ " - ", ! 121: /*MULT*/ " * ", ! 122: /*DIVIDE*/ " / ", ! 123: /*MOD*/ " % ", ! 124: /*UMINUS*/ " -", ! 125: /*ASSIGN*/ " = ", ! 126: /*ADDEQ*/ " += ", ! 127: /*SUBEQ*/ " -= ", ! 128: /*MULTEQ*/ " *= ", ! 129: /*DIVEQ*/ " /= ", ! 130: /*MODEQ*/ " %= ", ! 131: /*JUMP*/ "", ! 132: /*XBEGIN*/ "", ! 133: /*XEND*/ "", ! 134: /*NL*/ "", ! 135: /*PRINT*/ "print", ! 136: /*PRINTF*/ "printf", ! 137: /*SPRINTF*/ "sprintf ", ! 138: /*SPLIT*/ "split", ! 139: /*IF*/ "if(", ! 140: /*ELSE*/ "", ! 141: /*WHILE*/ "while(", ! 142: /*FOR*/ "for(", ! 143: /*IN*/ "instat", ! 144: /*NEXT*/ "next", ! 145: /*EXIT*/ "exit", ! 146: /*BREAK*/ "break", ! 147: /*CONTINUE*/ "continue", ! 148: /*PROGRAM*/ "", ! 149: /*PASTAT*/ "", ! 150: /*PASTAT2*/ "", ! 151: /*ASGNOP*/ "", ! 152: /*BOR*/ " || ", ! 153: /*AND*/ " && ", ! 154: /*NOT*/ " !", ! 155: /*NUMBER*/ "", ! 156: /*VAR*/ "", ! 157: /*ARRAY*/ "", ! 158: /*FNCN*/ "fncn", ! 159: /*SUBSTR*/ "substr", ! 160: /*LSUBSTR*/ "", ! 161: /*INDEX*/ "sindex", ! 162: /*GETLINE*/ "getline", ! 163: /*RELOP*/ "", ! 164: /*MATCHOP*/ "", ! 165: /*OR*/ "", ! 166: /*STRING*/ "", ! 167: /*DOT*/ "", ! 168: /*CCL*/ "", ! 169: /*NCCL*/ "", ! 170: /*CHAR*/ "", ! 171: /*CAT*/ " ", ! 172: /*STAR*/ "", ! 173: /*PLUS*/ "", ! 174: /*QUEST*/ "", ! 175: /*POSTINCR*/ "++", ! 176: /*PREINCR*/ "++", ! 177: /*POSTDECR*/ "--", ! 178: /*PREDECR*/ "--", ! 179: /*INCR*/ "", ! 180: /*DECR*/ "", ! 181: /*FIELD*/ "", ! 182: /*INDIRECT*/ "$(", ! 183: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.