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

1.1     ! root        1: #
        !             2: /*
        !             3: **     SCANNER.H
        !             4: **     contains the global structures and variable declarations needed
        !             5: **     by the lexical analyzer.  This includes Manifest Constants and
        !             6: **     certain variables for internal communication purposes.  Therefore,
        !             7: **     extreme care should be exercised when modifying this file.
        !             8: **
        !             9: **     Version:
        !            10: **             @(#)scanner.h   7.1     2/5/81
        !            11: */
        !            12: 
        !            13: 
        !            14: /* MANIFEST CONSTANTS */
        !            15: # define       SBUFSIZ         2000    /* max size of symbol table for */
        !            16: # define       MAXSTRING       255     /* max length of strings */
        !            17: # define       GOVAL           -1      /* semantic value for command names */
        !            18: 
        !            19: # ifndef       WARN
        !            20: # define       WARN            0
        !            21: # define       FATAL           1
        !            22: # endif
        !            23: 
        !            24: /* CONSTANTS FOR THE GET_SCANNER CALL */
        !            25: # define       NORMAL          0       /* get a character from front */
        !            26: # define       PRIME           1       /* prime the front end */
        !            27: # define       SYNC            2       /* sync the front end */
        !            28: 
        !            29: /* CHARACTER TYPES */
        !            30: # define       ALPHA           1
        !            31: # define       NUMBR           2
        !            32: # define       OPATR           3
        !            33: # define       PUNCT           4
        !            34: # define       CNTRL           5
        !            35: 
        !            36: /* Modes for input from EQUEL front end */
        !            37: # define       CVAR_I2         '\1'    /* 2 byte integer */
        !            38: # define       CVAR_F8         '\4'    /* 8 byte floating number */
        !            39: # define       CVAR_S          '\3'    /* string with null byte */
        !            40: # define       CVAR_I4         '\6'    /* 4 byte integer */
        !            41: 
        !            42: /* error number definitions */
        !            43: # define       SYMERR          2600    /* syntactic error */
        !            44: # define       STRTERM         2700    /* non term string */
        !            45: # define       STRLONG         2701    /* string too long */
        !            46: # define       BADOP           2702    /* can't find operator in tables */
        !            47: # define       NAMELONG        2703    /* name too long */
        !            48: # define       SBUFOFLO        2704    /* over flow symbol table */
        !            49: # define       COMMTERM        2705    /* non term comment */
        !            50: # define       FCONSTERR       2707    /* float constant error */
        !            51: # define       CNTRLCHR        2708    /* control char from equel */
        !            52: # define       NUMBUFOFLO      2709    /* buffer oflo in number.c */
        !            53: /* error number for yacc stack overflow */
        !            54: # define       YOVRFLOW        2800    /* if yacc stack ^ */
        !            55: 
        !            56: /* KEYWORD and OPERATOR TABLE */
        !            57: struct optab                           /* key word/operator tables */
        !            58: {
        !            59:        char    *term;                  /* key word/operator body */
        !            60:        int     token;                  /* associated parser token */
        !            61:        int     opcode;                 /* associated parser opcode */
        !            62: };
        !            63: 
        !            64: /* SPECIAL TOKENS for scanner */
        !            65: struct special
        !            66: {
        !            67:        int     sconst;
        !            68:        int     bgncmnt;
        !            69:        int     endcmnt;
        !            70:        int     i2const;
        !            71:        int     i4const;
        !            72:        int     f4const;
        !            73:        int     f8const;
        !            74:        int     name;
        !            75: };
        !            76: 
        !            77: /* last token struct */
        !            78: struct lastok
        !            79: {
        !            80:        int     toktyp;
        !            81:        char    *tok;
        !            82:        int     tokop;
        !            83: };
        !            84: 
        !            85: /* declarations */
        !            86: struct special Tokens;                 /* special tokens table */
        !            87: struct optab   Optab[];                /* operator table */
        !            88: struct optab   Keyword[];              /* keyword table */
        !            89: struct lastok  Lastok;
        !            90: int            Opcode;                 /* opcode for current token */
        !            91: int            Lcase;                  /* UPPER->lower conversion flag */
        !            92: int            Pars;                   /* flag for call to getcvar or not */
        !            93: int            Newline;                /* set if last char read was a newline */
        !            94: int            Cflag;                  /* set if line of C-code recognized */
        !            95: int            Keyent;                 /* number of entries in the Keyword table */
        !            96: 
        !            97: char           Sbuf[SBUFSIZ];          /* symbol table buffer */
        !            98: /*
        !            99: **     TRACE FLAG ASSIGNMENTS
        !           100: **     Comment, Expand         70
        !           101: **     Name, String            71
        !           102: **     Number, Yylex           72
        !           103: **     Operator                73
        !           104: **     Inout                   74
        !           105: */

unix.superglobalmegacorp.com

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