Annotation of researchv9/X11/src/X.V11R1/util/makedepend/cppsetup.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * $Header: cppsetup.c,v 1.2 87/08/07 00:23:56 toddb Exp $
        !             3:  *
        !             4:  * $Log:       cppsetup.c,v $
        !             5:  * Revision 1.2  87/08/07  00:23:56  toddb
        !             6:  * Added ibm032 to #if line for COFF.
        !             7:  * 
        !             8:  * Revision 1.1  87/04/08  16:40:33  rich
        !             9:  * Initial revision
        !            10:  * 
        !            11:  * Revision 1.3  86/09/15  17:34:42  toddb
        !            12:  * Added mc68000 to the list of machines with #define COFF 128.
        !            13:  * 
        !            14:  * Revision 1.2  86/09/04  09:54:10  toddb
        !            15:  * lookup() returned NULL if a symbol was not defined.  However, yylex()
        !            16:  * expected a pointer but with a null value.  The effect was that vaxes
        !            17:  * didn't work because referece through a null pointer gave a "defined"
        !            18:  * result; merlins and stratos worked just fine.
        !            19:  * 
        !            20:  * Revision 1.1  86/04/15  08:34:15  toddb
        !            21:  * Initial revision
        !            22:  * 
        !            23:  */
        !            24: #include "def.h"
        !            25: 
        !            26: #ifdef CPP
        !            27: /*
        !            28:  * This file is strictly for the sake of cpy.y and yylex.c (if
        !            29:  * you indeed have the source for cpp).
        !            30:  */
        !            31: #define IB 1
        !            32: #define SB 2
        !            33: #define NB 4
        !            34: #define CB 8
        !            35: #define QB 16
        !            36: #define WB 32
        !            37: #define SALT '#'
        !            38: #if pdp11 | vax | ns16000 | mc68000 | ibm032
        !            39: #define COFF 128
        !            40: #else
        !            41: #define COFF 0
        !            42: #endif
        !            43: /*
        !            44:  * These variables used by cpy.y and yylex.c
        !            45:  */
        !            46: extern char    *outp, *inp, *newp, *pend;
        !            47: extern char    *ptrtab;
        !            48: extern char    fastab[];
        !            49: extern char    slotab[];
        !            50: 
        !            51: /*
        !            52:  * cppsetup
        !            53:  */
        !            54: struct filepointer     *currentfile;
        !            55: struct inclist         *currentinc;
        !            56: 
        !            57: cppsetup(line, filep, inc)
        !            58:        register char   *line;
        !            59:        register struct filepointer     *filep;
        !            60:        register struct inclist         *inc;
        !            61: {
        !            62:        register char *p, savec;
        !            63:        static boolean setupdone = FALSE;
        !            64:        boolean value;
        !            65: 
        !            66:        if (!setupdone) {
        !            67:                cpp_varsetup();
        !            68:                setupdone = TRUE;
        !            69:        }
        !            70: 
        !            71:        currentfile = filep;
        !            72:        currentinc = inc;
        !            73:        inp = newp = line;
        !            74:        for (p=newp; *p; p++)
        !            75:                ;
        !            76: 
        !            77:        /*
        !            78:         * put a newline back on the end, and set up pend, etc.
        !            79:         */
        !            80:        *p++ = '\n';
        !            81:        savec = *p;
        !            82:        *p = '\0';
        !            83:        pend = p;
        !            84: 
        !            85:        ptrtab = slotab+COFF;
        !            86:        *--inp = SALT; 
        !            87:        outp=inp; 
        !            88:        value = yyparse();
        !            89:        *p = savec;
        !            90:        return(value);
        !            91: }
        !            92: 
        !            93: struct symtab *lookup(symbol)
        !            94:        char    *symbol;
        !            95: {
        !            96:        static struct symtab    undefined;
        !            97:        struct symtab   *sp;
        !            98: 
        !            99:        sp = defined(symbol, currentinc);
        !           100:        if (sp == NULL) {
        !           101:                sp = &undefined;
        !           102:                sp->s_value = NULL;
        !           103:        }
        !           104:        return (sp);
        !           105: }
        !           106: 
        !           107: pperror(tag, x0,x1,x2,x3,x4)
        !           108:        int     tag,x0,x1,x2,x3,x4;
        !           109: {
        !           110:        log("\"%s\", line %d: ", currentinc->i_file, currentfile->f_line);
        !           111:        log(x0,x1,x2,x3,x4);
        !           112: }
        !           113: 
        !           114: 
        !           115: yyerror(s)
        !           116:        register char   *s;
        !           117: {
        !           118:        log_fatal("Fatal error: %s\n", s);
        !           119: }
        !           120: #endif CPP

unix.superglobalmegacorp.com

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