Annotation of 42BSD/ingres/source/parser/parser.c, revision 1.1

1.1     ! root        1: # include      <ingres.h>
        !             2: # include      <range.h>
        !             3: # include      <tree.h>
        !             4: # include      <func.h>
        !             5: # include      <pv.h>
        !             6: # include      "parser.h"
        !             7: # include      <sccs.h>
        !             8: 
        !             9: SCCSID(@(#)parser.c    7.1     2/5/81)
        !            10: 
        !            11: short                  tTparser[100];
        !            12: 
        !            13: extern int             parser();
        !            14: extern int             par_init();
        !            15: 
        !            16: struct fn_def          ParserFn =
        !            17:                        {
        !            18:                                "PARSER",
        !            19:                                parser,
        !            20:                                par_init,
        !            21:                                NULL,
        !            22:                                NULL,
        !            23:                                0,
        !            24:                                tTparser,
        !            25:                                100,
        !            26:                                'P',
        !            27:                                0
        !            28:                        };
        !            29: 
        !            30: DESC   Reldesc;
        !            31: struct atstash         Attable[MAXATT];/* attrib stash space, turned into a list later */
        !            32: struct atstash         *Freeatt;       /* free list of attrib stash */
        !            33: QTREE  *Tidnode;       /* pointer to tid node of targ list
        !            34:                                           for REPLACE, DELETE */
        !            35: QTREE  *Lastree;       /* pointer to root node of tree */
        !            36: extern struct atstash  Faketid;        /* atstash structure for TID node */
        !            37: #ifdef DISTRIB
        !            38: extern struct atstash  Fakesid;        /* atstash structure for SID node */
        !            39: #endif
        !            40: 
        !            41: int                    Rsdmno;         /* result domain number */
        !            42: int                    Opflag;         /* operator flag contains query mode */
        !            43: char                   *Relspec;       /* ptr to storage structure of result relation */
        !            44: char                   *Indexspec;     /* ptr to stor strctr of index */
        !            45: char                   *Indexname;     /* ptr to name of index */
        !            46: char                   Trfrmt;         /* format for type checking */
        !            47: char                   Trfrml;         /* format length for type checking */
        !            48: char                   *Trname;        /* pointer to attribute name */
        !            49: int                    Agflag;         /* how many aggs in this qry */
        !            50: int                    Equel;          /* indicates EQUEL preprocessor on */
        !            51: int                    Ingerr;         /* set to error num if a query returns
        !            52:                                           an error from processes below */
        !            53: int                    Patflag;        /* signals a pattern match reduction */
        !            54: int                    Qlflag;         /* set when processing a qual */
        !            55: int                    Noupdt;         /* INGRES user override of no update restriction */
        !            56: int                    Err_fnd;        /* no actions done if 1 */
        !            57: int                    Err_current;    /* 1 if error found in current statement */
        !            58: int                    yyline;         /* line counter */
        !            59: int                    Dcase;          /* default case mapping */
        !            60: int                    Permcomd;
        !            61: int                    Qrymod;         /* qrymod on in database flag */
        !            62: 
        !            63: 
        !            64: /*
        !            65: **  PARSER -- the actual main routine
        !            66: **
        !            67: **     Trace Flags:
        !            68: **             Parser ~~ 64
        !            69: */
        !            70: 
        !            71: parser()
        !            72: {
        !            73: 
        !            74: # ifdef        xPTR1
        !            75:        tTfp(64, 0, "Parser %d\n", getpid());
        !            76: # endif
        !            77: 
        !            78:        if (startgo() < 0)
        !            79:        {
        !            80:                endgo();
        !            81:                return (-1);
        !            82:        }
        !            83: 
        !            84:        if (yyparse())          /* yyparse returns 1 in case of error */
        !            85:        {
        !            86:                endgo();
        !            87:                return (-2);
        !            88:        }
        !            89: 
        !            90:        if (endgo() < 0)
        !            91:                return (-3);
        !            92: 
        !            93:        return(0);
        !            94: }

unix.superglobalmegacorp.com

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