Annotation of researchv10no/cmd/prefer/prefawk/proctab.c, revision 1.1

1.1     ! root        1: #include "awk.h"
        !             2: #include "y.tab.h"
        !             3: 
        !             4: Cell *nullproc();
        !             5: extern Cell *program();
        !             6: extern Cell *boolop();
        !             7: extern Cell *relop();
        !             8: extern Cell *array();
        !             9: extern Cell *indirect();
        !            10: extern Cell *substr();
        !            11: extern Cell *sub();
        !            12: extern Cell *gsub();
        !            13: extern Cell *sindex();
        !            14: extern Cell *asprintf();
        !            15: extern Cell *arith();
        !            16: extern Cell *incrdecr();
        !            17: extern Cell *cat();
        !            18: extern Cell *pastat();
        !            19: extern Cell *dopa2();
        !            20: extern Cell *matchop();
        !            21: extern Cell *intest();
        !            22: extern Cell *aprintf();
        !            23: extern Cell *print();
        !            24: extern Cell *closefile();
        !            25: extern Cell *delete();
        !            26: extern Cell *split();
        !            27: extern Cell *assign();
        !            28: extern Cell *condexpr();
        !            29: extern Cell *ifstat();
        !            30: extern Cell *whilestat();
        !            31: extern Cell *forstat();
        !            32: extern Cell *dostat();
        !            33: extern Cell *instat();
        !            34: extern Cell *jump();
        !            35: extern Cell *bltin();
        !            36: extern Cell *call();
        !            37: extern Cell *arg();
        !            38: extern Cell *getnf();
        !            39: extern Cell *getline();
        !            40: static uchar *printname[93] = {
        !            41:        (uchar *) "FIRSTTOKEN", /* 257 */
        !            42:        (uchar *) "FATAL",      /* 258 */
        !            43:        (uchar *) "PROGRAM",    /* 259 */
        !            44:        (uchar *) "PASTAT",     /* 260 */
        !            45:        (uchar *) "PASTAT2",    /* 261 */
        !            46:        (uchar *) "XBEGIN",     /* 262 */
        !            47:        (uchar *) "XEND",       /* 263 */
        !            48:        (uchar *) "NL", /* 264 */
        !            49:        (uchar *) "ARRAY",      /* 265 */
        !            50:        (uchar *) "MATCH",      /* 266 */
        !            51:        (uchar *) "NOTMATCH",   /* 267 */
        !            52:        (uchar *) "MATCHOP",    /* 268 */
        !            53:        (uchar *) "FINAL",      /* 269 */
        !            54:        (uchar *) "DOT",        /* 270 */
        !            55:        (uchar *) "ALL",        /* 271 */
        !            56:        (uchar *) "CCL",        /* 272 */
        !            57:        (uchar *) "NCCL",       /* 273 */
        !            58:        (uchar *) "CHAR",       /* 274 */
        !            59:        (uchar *) "OR", /* 275 */
        !            60:        (uchar *) "STAR",       /* 276 */
        !            61:        (uchar *) "QUEST",      /* 277 */
        !            62:        (uchar *) "PLUS",       /* 278 */
        !            63:        (uchar *) "AND",        /* 279 */
        !            64:        (uchar *) "BOR",        /* 280 */
        !            65:        (uchar *) "APPEND",     /* 281 */
        !            66:        (uchar *) "EQ", /* 282 */
        !            67:        (uchar *) "GE", /* 283 */
        !            68:        (uchar *) "GT", /* 284 */
        !            69:        (uchar *) "LE", /* 285 */
        !            70:        (uchar *) "LT", /* 286 */
        !            71:        (uchar *) "NE", /* 287 */
        !            72:        (uchar *) "IN", /* 288 */
        !            73:        (uchar *) "ARG",        /* 289 */
        !            74:        (uchar *) "BLTIN",      /* 290 */
        !            75:        (uchar *) "BREAK",      /* 291 */
        !            76:        (uchar *) "CLOSE",      /* 292 */
        !            77:        (uchar *) "CONTINUE",   /* 293 */
        !            78:        (uchar *) "DELETE",     /* 294 */
        !            79:        (uchar *) "DO", /* 295 */
        !            80:        (uchar *) "EXIT",       /* 296 */
        !            81:        (uchar *) "FOR",        /* 297 */
        !            82:        (uchar *) "FUNC",       /* 298 */
        !            83:        (uchar *) "SUB",        /* 299 */
        !            84:        (uchar *) "GSUB",       /* 300 */
        !            85:        (uchar *) "IF", /* 301 */
        !            86:        (uchar *) "INDEX",      /* 302 */
        !            87:        (uchar *) "LSUBSTR",    /* 303 */
        !            88:        (uchar *) "MATCHFCN",   /* 304 */
        !            89:        (uchar *) "NEXT",       /* 305 */
        !            90:        (uchar *) "ADD",        /* 306 */
        !            91:        (uchar *) "MINUS",      /* 307 */
        !            92:        (uchar *) "MULT",       /* 308 */
        !            93:        (uchar *) "DIVIDE",     /* 309 */
        !            94:        (uchar *) "MOD",        /* 310 */
        !            95:        (uchar *) "ASSIGN",     /* 311 */
        !            96:        (uchar *) "ASGNOP",     /* 312 */
        !            97:        (uchar *) "ADDEQ",      /* 313 */
        !            98:        (uchar *) "SUBEQ",      /* 314 */
        !            99:        (uchar *) "MULTEQ",     /* 315 */
        !           100:        (uchar *) "DIVEQ",      /* 316 */
        !           101:        (uchar *) "MODEQ",      /* 317 */
        !           102:        (uchar *) "POWEQ",      /* 318 */
        !           103:        (uchar *) "PRINT",      /* 319 */
        !           104:        (uchar *) "PRINTF",     /* 320 */
        !           105:        (uchar *) "SPRINTF",    /* 321 */
        !           106:        (uchar *) "ELSE",       /* 322 */
        !           107:        (uchar *) "INTEST",     /* 323 */
        !           108:        (uchar *) "CONDEXPR",   /* 324 */
        !           109:        (uchar *) "POSTINCR",   /* 325 */
        !           110:        (uchar *) "PREINCR",    /* 326 */
        !           111:        (uchar *) "POSTDECR",   /* 327 */
        !           112:        (uchar *) "PREDECR",    /* 328 */
        !           113:        (uchar *) "VAR",        /* 329 */
        !           114:        (uchar *) "IVAR",       /* 330 */
        !           115:        (uchar *) "VARNF",      /* 331 */
        !           116:        (uchar *) "CALL",       /* 332 */
        !           117:        (uchar *) "NUMBER",     /* 333 */
        !           118:        (uchar *) "STRING",     /* 334 */
        !           119:        (uchar *) "FIELD",      /* 335 */
        !           120:        (uchar *) "REGEXPR",    /* 336 */
        !           121:        (uchar *) "GETLINE",    /* 337 */
        !           122:        (uchar *) "RETURN",     /* 338 */
        !           123:        (uchar *) "SPLIT",      /* 339 */
        !           124:        (uchar *) "SUBSTR",     /* 340 */
        !           125:        (uchar *) "WHILE",      /* 341 */
        !           126:        (uchar *) "CAT",        /* 342 */
        !           127:        (uchar *) "NOT",        /* 343 */
        !           128:        (uchar *) "UMINUS",     /* 344 */
        !           129:        (uchar *) "POWER",      /* 345 */
        !           130:        (uchar *) "DECR",       /* 346 */
        !           131:        (uchar *) "INCR",       /* 347 */
        !           132:        (uchar *) "INDIRECT",   /* 348 */
        !           133:        (uchar *) "LASTTOKEN",  /* 349 */
        !           134: };
        !           135: 
        !           136: 
        !           137: Cell *(*proctab[93])() = {
        !           138:        nullproc,       /* FIRSTTOKEN */
        !           139:        nullproc,       /* FATAL */
        !           140:        program,        /* PROGRAM */
        !           141:        pastat, /* PASTAT */
        !           142:        dopa2,  /* PASTAT2 */
        !           143:        nullproc,       /* XBEGIN */
        !           144:        nullproc,       /* XEND */
        !           145:        nullproc,       /* NL */
        !           146:        array,  /* ARRAY */
        !           147:        matchop,        /* MATCH */
        !           148:        matchop,        /* NOTMATCH */
        !           149:        nullproc,       /* MATCHOP */
        !           150:        nullproc,       /* FINAL */
        !           151:        nullproc,       /* DOT */
        !           152:        nullproc,       /* ALL */
        !           153:        nullproc,       /* CCL */
        !           154:        nullproc,       /* NCCL */
        !           155:        nullproc,       /* CHAR */
        !           156:        nullproc,       /* OR */
        !           157:        nullproc,       /* STAR */
        !           158:        nullproc,       /* QUEST */
        !           159:        nullproc,       /* PLUS */
        !           160:        boolop, /* AND */
        !           161:        boolop, /* BOR */
        !           162:        nullproc,       /* APPEND */
        !           163:        relop,  /* EQ */
        !           164:        relop,  /* GE */
        !           165:        relop,  /* GT */
        !           166:        relop,  /* LE */
        !           167:        relop,  /* LT */
        !           168:        relop,  /* NE */
        !           169:        instat, /* IN */
        !           170:        arg,    /* ARG */
        !           171:        bltin,  /* BLTIN */
        !           172:        jump,   /* BREAK */
        !           173:        closefile,      /* CLOSE */
        !           174:        jump,   /* CONTINUE */
        !           175:        delete, /* DELETE */
        !           176:        dostat, /* DO */
        !           177:        jump,   /* EXIT */
        !           178:        forstat,        /* FOR */
        !           179:        nullproc,       /* FUNC */
        !           180:        sub,    /* SUB */
        !           181:        gsub,   /* GSUB */
        !           182:        ifstat, /* IF */
        !           183:        sindex, /* INDEX */
        !           184:        nullproc,       /* LSUBSTR */
        !           185:        matchop,        /* MATCHFCN */
        !           186:        jump,   /* NEXT */
        !           187:        arith,  /* ADD */
        !           188:        arith,  /* MINUS */
        !           189:        arith,  /* MULT */
        !           190:        arith,  /* DIVIDE */
        !           191:        arith,  /* MOD */
        !           192:        assign, /* ASSIGN */
        !           193:        nullproc,       /* ASGNOP */
        !           194:        assign, /* ADDEQ */
        !           195:        assign, /* SUBEQ */
        !           196:        assign, /* MULTEQ */
        !           197:        assign, /* DIVEQ */
        !           198:        assign, /* MODEQ */
        !           199:        assign, /* POWEQ */
        !           200:        print,  /* PRINT */
        !           201:        aprintf,        /* PRINTF */
        !           202:        asprintf,       /* SPRINTF */
        !           203:        nullproc,       /* ELSE */
        !           204:        intest, /* INTEST */
        !           205:        condexpr,       /* CONDEXPR */
        !           206:        incrdecr,       /* POSTINCR */
        !           207:        incrdecr,       /* PREINCR */
        !           208:        incrdecr,       /* POSTDECR */
        !           209:        incrdecr,       /* PREDECR */
        !           210:        nullproc,       /* VAR */
        !           211:        nullproc,       /* IVAR */
        !           212:        getnf,  /* VARNF */
        !           213:        call,   /* CALL */
        !           214:        nullproc,       /* NUMBER */
        !           215:        nullproc,       /* STRING */
        !           216:        nullproc,       /* FIELD */
        !           217:        nullproc,       /* REGEXPR */
        !           218:        getline,        /* GETLINE */
        !           219:        jump,   /* RETURN */
        !           220:        split,  /* SPLIT */
        !           221:        substr, /* SUBSTR */
        !           222:        whilestat,      /* WHILE */
        !           223:        cat,    /* CAT */
        !           224:        boolop, /* NOT */
        !           225:        arith,  /* UMINUS */
        !           226:        arith,  /* POWER */
        !           227:        nullproc,       /* DECR */
        !           228:        nullproc,       /* INCR */
        !           229:        indirect,       /* INDIRECT */
        !           230:        nullproc,       /* LASTTOKEN */
        !           231: };
        !           232: 
        !           233: uchar *tokname(n)
        !           234: {
        !           235:        static uchar buf[100];
        !           236: 
        !           237:        if (n < FIRSTTOKEN || n > LASTTOKEN) {
        !           238:                sprintf(buf, "token %d", n);
        !           239:                return buf;
        !           240:        }
        !           241:        return printname[n-257];
        !           242: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.