Annotation of researchv10no/cmd/prefer/prefawk/proctab.c, revision 1.1.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.