|
|
1.1 ! root 1: #include "defs" ! 2: #include "tokdefs" ! 3: ! 4: kwinit() ! 5: { ! 6: struct key { char *keyn; int keyval; } *p; ! 7: static struct key keys[] = { ! 8: "common", COMMON, ! 9: "internal", INTERNAL, ! 10: "external", EXTERNAL, ! 11: "automatic", AUTOMATIC, ! 12: "static", STATIC, ! 13: "value", VALUE, ! 14: "procedure", PROCEDURE, ! 15: "blockdata", BLOCKDATA, ! 16: "subroutine", PROCEDURE /* NB */, ! 17: "function", PROCEDURE /* NB */, ! 18: "option", OPTION, ! 19: "include", INCLUDE, ! 20: "define", DEFINE, ! 21: "end", END, ! 22: "integer", INTEGER, ! 23: "real", REAL, ! 24: "complex", COMPLEX, ! 25: "logical", LOGICAL, ! 26: "character", CHARACTER, ! 27: "struct", STRUCT, ! 28: "field", FIELD, ! 29: "array", ARRAY, ! 30: "dimension", DIMENSION, ! 31: "long", LONG, ! 32: "short", SHORT, ! 33: "initial", INITIAL, ! 34: "equivalence", EQUIVALENCE, ! 35: "implicit", IMPLICIT, ! 36: "debug", DEBUG, ! 37: "if", IF, ! 38: "else", ELSE, ! 39: "while", WHILE, ! 40: "until", UNTIL, ! 41: "repeat", REPEAT, ! 42: "do", DO, ! 43: "for", FOR, ! 44: "switch", SWITCH, ! 45: "select", SWITCH, ! 46: "case", CASE, ! 47: "default", DEFAULT, ! 48: "go", GO, ! 49: "goto", GOTO, ! 50: "break", BREAK, ! 51: "exit", EXIT, ! 52: "next", NEXT, ! 53: "return", RETURN, ! 54: "continue", CONTINUE, ! 55: "call", CALL, ! 56: "double", DOUBLE, ! 57: "precision", PRECISION, ! 58: "doubleprecision", DOUBLEPRECISION, ! 59: "sizeof", SIZEOF, ! 60: "lengthof", LENGTHOF, ! 61: "read", READ, ! 62: "write", WRITE, ! 63: "readbin", READBIN, ! 64: "writebin", WRITEBIN, ! 65: "true", TRUE, ! 66: "false", FALSE, ! 67: 0, 0 } ; ! 68: ! 69: for(p = keys ; p->keyn ; ++p) ! 70: mkkeywd(p->keyn, p->keyval); ! 71: } ! 72: ! 73: ! 74: ! 75: geninit() ! 76: { ! 77: struct gen { char *genn; int restype; char *specn; int argtype; } *p; ! 78: static struct gen gens[] = { ! 79: "abs", TYINT, "iabs", TYINT, ! 80: "abs", TYREAL, "abs", TYREAL, ! 81: "abs", TYLREAL, "dabs", TYLREAL, ! 82: "abs", TYCOMPLEX, "cabs", TYREAL, ! 83: ! 84: "sin", TYREAL, "sin", TYREAL, ! 85: "sin", TYLREAL, "dsin", TYLREAL, ! 86: "sin", TYCOMPLEX, "csin", TYCOMPLEX, ! 87: ! 88: "cos", TYREAL, "cos", TYREAL, ! 89: "cos", TYLREAL, "dcos", TYLREAL, ! 90: "cos", TYCOMPLEX, "ccos", TYCOMPLEX, ! 91: ! 92: "atan", TYREAL, "atan", TYREAL, ! 93: "atan", TYLREAL, "datan", TYLREAL, ! 94: ! 95: "atan2", TYREAL, "atan2", TYREAL, ! 96: "atan2", TYLREAL, "datan2", TYLREAL, ! 97: ! 98: "sqrt", TYREAL, "sqrt", TYREAL, ! 99: "sqrt", TYLREAL, "dsqrt", TYLREAL, ! 100: "sqrt", TYCOMPLEX, "csqrt", TYCOMPLEX, ! 101: ! 102: "log", TYREAL, "alog", TYREAL, ! 103: "log", TYLREAL, "dlog", TYLREAL, ! 104: "log", TYCOMPLEX, "clog", TYCOMPLEX, ! 105: ! 106: "log10", TYREAL, "alog10", TYREAL, ! 107: "log10", TYLREAL, "dlog10", TYLREAL, ! 108: ! 109: "exp", TYREAL, "exp", TYREAL, ! 110: "exp", TYLREAL, "dexp", TYLREAL, ! 111: "exp", TYCOMPLEX, "cexp", TYCOMPLEX, ! 112: ! 113: "int", TYREAL, "int", TYINT, ! 114: "int", TYLREAL, "idint", TYINT, ! 115: ! 116: "mod", TYINT, "mod", TYINT, ! 117: "mod", TYREAL, "amod", TYREAL, ! 118: "mod", TYLREAL, "dmod", TYLREAL, ! 119: ! 120: "min", TYINT, "min0", TYINT, ! 121: "min", TYREAL, "amin1", TYREAL, ! 122: "min", TYLREAL, "dmin1", TYLREAL, ! 123: ! 124: "max", TYINT, "max0", TYINT, ! 125: "max", TYREAL, "amax1", TYREAL, ! 126: "max", TYLREAL, "dmax1", TYLREAL, ! 127: ! 128: "sign", TYREAL, "sign", TYREAL, ! 129: "sign", TYINT, "isign", TYINT, ! 130: "sign", TYLREAL, "dsign", TYLREAL, ! 131: 0, 0, 0, 0 } ; ! 132: ! 133: for(p = gens ; p->genn ; ++p) ! 134: mkgeneric(p->genn, p->restype, p->specn, p->argtype); ! 135: } ! 136: ! 137: knowninit() ! 138: { ! 139: struct known { char *knownn; int knowntype; } *p; ! 140: static struct known knowns[ ] = { ! 141: "abs", TYREAL, ! 142: "iabs", TYINT, ! 143: "dabs", TYLREAL, ! 144: "aint", TYREAL, ! 145: "int", TYINT, ! 146: "idint", TYINT, ! 147: "amod", TYREAL, ! 148: "mod", TYINT, ! 149: "amax0", TYREAL, ! 150: "amax1", TYREAL, ! 151: "max0", TYINT, ! 152: "max1", TYINT, ! 153: "dmax1", TYLREAL, ! 154: "amin0", TYREAL, ! 155: "amin1", TYREAL, ! 156: "min0", TYINT, ! 157: "min1", TYINT, ! 158: "dmin1", TYLREAL, ! 159: "float", TYREAL, ! 160: "ifix", TYINT, ! 161: "sign", TYREAL, ! 162: "isign", TYINT, ! 163: "dsign", TYLREAL, ! 164: "dim", TYREAL, ! 165: "idim", TYINT, ! 166: "sngl", TYREAL, ! 167: "real", TYREAL, ! 168: "aimag", TYREAL, ! 169: "dble", TYLREAL, ! 170: "cmplx", TYCOMPLEX, ! 171: "conjg", TYCOMPLEX, ! 172: "exp", TYREAL, ! 173: "dexp", TYLREAL, ! 174: "cexp", TYCOMPLEX, ! 175: "alog", TYREAL, ! 176: "dlog", TYLREAL, ! 177: "clog", TYCOMPLEX, ! 178: "alog10", TYREAL, ! 179: "dlog10", TYLREAL, ! 180: "sin", TYREAL, ! 181: "dsin", TYLREAL, ! 182: "csin", TYCOMPLEX, ! 183: "cos", TYREAL, ! 184: "dcos", TYLREAL, ! 185: "ccos", TYCOMPLEX, ! 186: "tanh", TYREAL, ! 187: "sqrt", TYREAL, ! 188: "dsqrt", TYLREAL, ! 189: "csqrt", TYCOMPLEX, ! 190: "atan", TYREAL, ! 191: "datan", TYLREAL, ! 192: "atan2", TYREAL, ! 193: "datan2", TYLREAL, ! 194: "dmod", TYLREAL, ! 195: "cabs", TYREAL, ! 196: 0, 0 }; ! 197: ! 198: for(p = knowns ; p->knownn ; ++p) ! 199: mkknown(p->knownn, p->knowntype); ! 200: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.