Annotation of 43BSD/ucb/ex/ex_re.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1980 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  *
        !             6:  *     @(#)ex_re.h     7.3 (Berkeley) 5/31/85
        !             7:  */
        !             8: 
        !             9: /*
        !            10:  * Regular expression definitions.
        !            11:  * The regular expressions in ex are similar to those in ed,
        !            12:  * with the addition of the word boundaries from Toronto ed
        !            13:  * and allowing character classes to have [a-b] as in the shell.
        !            14:  * The numbers for the nodes below are spaced further apart then
        !            15:  * necessary because I at one time partially put in + and | (one or
        !            16:  * more and alternation.)
        !            17:  */
        !            18: struct regexp {
        !            19:        char    Expbuf[ESIZE + 2];
        !            20:        bool    Circfl;
        !            21:        short   Nbra;
        !            22: };
        !            23: 
        !            24: /*
        !            25:  * There are three regular expressions here, the previous (in re),
        !            26:  * the previous substitute (in subre) and the previous scanning (in scanre).
        !            27:  * It would be possible to get rid of "re" by making it a stack parameter
        !            28:  * to the appropriate routines.
        !            29:  */
        !            30: var struct     regexp re;              /* Last re */
        !            31: var struct     regexp scanre;          /* Last scanning re */
        !            32: var struct     regexp subre;           /* Last substitute re */
        !            33: 
        !            34: /*
        !            35:  * Defining circfl and expbuf like this saves us from having to change
        !            36:  * old code in the ex_re.c stuff.
        !            37:  */
        !            38: #define        expbuf  re.Expbuf
        !            39: #define        circfl  re.Circfl
        !            40: #define        nbra    re.Nbra
        !            41: 
        !            42: /*
        !            43:  * Since the phototypesetter v7-epsilon
        !            44:  * C compiler doesn't have structure assignment...
        !            45:  */
        !            46: #define        savere(a)       copy(&a, &re, sizeof (struct regexp))
        !            47: #define        resre(a)        copy(&re, &a, sizeof (struct regexp))
        !            48: 
        !            49: /*
        !            50:  * Definitions for substitute
        !            51:  */
        !            52: var char       *braslist[NBRA];        /* Starts of \(\)'ed text in lhs */
        !            53: var char       *braelist[NBRA];        /* Ends... */
        !            54: var char       rhsbuf[RHSSIZE];        /* Rhs of last substitute */
        !            55: 
        !            56: /*
        !            57:  * Definitions of codes for the compiled re's.
        !            58:  * The re algorithm is described in a paper
        !            59:  * by K. Thompson in the CACM about 10 years ago
        !            60:  * and is the same as in ed.
        !            61:  */
        !            62: #define        STAR    1
        !            63: 
        !            64: #define        CBRA    1
        !            65: #define        CDOT    4
        !            66: #define        CCL     8
        !            67: #define        NCCL    12
        !            68: #define        CDOL    16
        !            69: #define        CEOFC   17
        !            70: #define        CKET    18
        !            71: #define        CCHR    20
        !            72: #define        CBRC    24
        !            73: #define        CLET    25

unix.superglobalmegacorp.com

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