Annotation of coherent/d/bin/grep/grep.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Regular expressions.
                      3:  * Contains the definition of type `RE' plus
                      4:  * the interpreter ops, etc.
                      5:  */
                      6: 
                      7: /* Operators (order is important) */
                      8: #define        REEND   0               /* End of RE */
                      9: #define        STEND   1               /* Stack end */
                     10: #define        OR      2               /* Union of RE's */
                     11: #define        LPAR    3               /* Left parenthesis */
                     12: #define        RPAR    4               /* Right Parenthesis */
                     13: #define        CLOS    5               /* Closure */
                     14: #define        NECLOS  6               /* Non-empty closure */
                     15: #define        ZORO    7               /* Zero or one occurrences */
                     16: #define        CONC    8               /* any character - also pseudo op */
                     17: #define        DCONC   9               /* Any character - dual case compare */
                     18: #define        CCLASS  10              /* RE character class */
                     19: #define        DCCLASS 11              /* RE character class - dual case */
                     20: #define        BOL     12              /* Beginning of line */
                     21: #define        EOL     13              /* End of line */
                     22: #define        ANY     14              /* Any character */
                     23: #define        termop(x)       ((x)>=CONC)
                     24: #define        postop(x)       ((x)>=CLOS&&(x)<=ZORO)
                     25: 
                     26: /* Miscellany */
                     27: #define        NCCHAR  256             /* Number of characters in a character class */
                     28: #define        NBPC    8               /* Bits per character */
                     29: #define        NCLASS  ((NCCHAR+NBPC-1)/NBPC)  /* Size of class */
                     30: #define        NRE     100             /* Max. number of elements on RE stack */
                     31: 
                     32: typedef struct RE {
                     33:        struct RE *r_next;
                     34:        int     r_op;
                     35:        union rebit {
                     36:                int     u_ival;
                     37:                char    *u_cptr;
                     38:                struct RE *u_re;
                     39:        }       r_left, r_right;
                     40: }      RE;
                     41: 
                     42: extern char *reerror;
                     43: extern redual;                 /* Dual case mode */
                     44: extern int     refull;         /* Full expression */
                     45: RE *reparse();
                     46: int    reget();
                     47: int    reunget();

unix.superglobalmegacorp.com

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