|
|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1364 (0x554)
Types: TextFile
Notes: UNIX file
Names: »grep.h«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
└─⟦f4b8d8c84⟧ UNIX Filesystem
└─⟦this⟧ »cmd/grep/grep.h«
/*
* Regular expressions.
* Contains the definition of type `RE' plus
* the interpreter ops, etc.
*/
/* Operators (order is important) */
#define REEND 0 /* End of RE */
#define STEND 1 /* Stack end */
#define OR 2 /* Union of RE's */
#define LPAR 3 /* Left parenthesis */
#define RPAR 4 /* Right Parenthesis */
#define CLOS 5 /* Closure */
#define NECLOS 6 /* Non-empty closure */
#define ZORO 7 /* Zero or one occurrences */
#define CONC 8 /* any character - also pseudo op */
#define DCONC 9 /* Any character - dual case compare */
#define CCLASS 10 /* RE character class */
#define DCCLASS 11 /* RE character class - dual case */
#define BOL 12 /* Beginning of line */
#define EOL 13 /* End of line */
#define ANY 14 /* Any character */
#define termop(x) ((x)>=CONC)
#define postop(x) ((x)>=CLOS&&(x)<=ZORO)
/* Miscellany */
#define NCCHAR 256 /* Number of characters in a character class */
#define NBPC 8 /* Bits per character */
#define NCLASS ((NCCHAR+NBPC-1)/NBPC) /* Size of class */
#define NRE 100 /* Max. number of elements on RE stack */
typedef struct RE {
struct RE *r_next;
int r_op;
union rebit {
int u_ival;
char *u_cptr;
struct RE *u_re;
} r_left, r_right;
} RE;
extern char *reerror;
extern redual; /* Dual case mode */
extern int refull; /* Full expression */
RE *reparse();
int reget();
int reunget();