home *** CD-ROM | disk | FTP | other *** search
- /* Pattern Search Defines & Globals
- *
- * This file contains defines, macros, and global declarations for
- * a simple pattern searcher. See pat.c for more details.
- *
- *
- * Initial coding 8/18/82 by Harry R. Chesley.
- *
- *
- * Copyright 1982 by Harry R. Chesley.
- * Unlimited permission granted for non-profit use only.
- */
-
- /* DEBUG - if defined, turn on various debugging print-outs.
- *
- * SETMAX - size of sets (128 elements (one per possible char)/16 elements
- * per word = 8 words).
- * PATMAX - maximum size of pattern.
- *
- * TRUE, FALSE - logical values.
- */
-
- /*#define DEBUG*/
-
- #define SETMAX 8
- #define PATMAX 100
-
- #define TRUE 1
- #define FALSE 0
-
- struct pel { /* Pattern "elements". */
- int pel_type; /* Type of element (see below). */
- char pel_c; /* Character for match-one elements. */
- unsigned pel_set[SETMAX]; /* Set for match-set elements. */
- };
-
- /* Values for pel_type above:
- *
- * MONEC - match exactly one of set_c.
- * MONEA - match exactly one of any character (except EOL).
- * MMANY - match one for more of anything (except EOL).
- * MSET - match any character in set.
- */
-
- #define MONEC 0
- #define MONEA 1
- #define MMANY 2
- #define MSET 3
-
- /* Operations on sets:
- *
- * inset(sptr,mem) - returns TRUE if mem is in set, FALSE otherwise.
- */
-
- #define inset(s,m) (s->pel_set[(m>>4)&7] & (1<<(m&15)))
-
- /* Globals:
- */
-
- struct pel cpat[PATMAX]; /* The compiled search pattern. */
-
- struct pel *cptop; /* Pointer to last element in pattern. */
-
- char eolch; /* End-of-line character. */
-
- char *nextstr; /* First char past matched string. */
-