|
|
1.1 root 1: /*
2: * G. S. Fowler
3: * AT&T Bell Laboratories
4: *
5: * regular expression library definitions
6: */
7:
8: #ifndef RE_ALL
9:
10: #define RE_ALL (1<<0) /* substitute all occurrences */
11: #define RE_EDSTYLE (1<<1) /* ed(1) style magic characters */
12: #define RE_LOWER (1<<2) /* substitute to lower case */
13: #define RE_MATCH (1<<3) /* record matches in reprogram.match */
14: #define RE_UPPER (1<<4) /* substitute to upper case */
15: #define RE_EXTERNAL 8 /* first external flag bit */
16:
17: #define RE_NMATCH ('9'-'0'+1)
18:
19: typedef struct /* sub-expression match */
20: {
21: char* sp; /* start in source string */
22: char* ep; /* end in source string */
23: } rematch;
24:
25: /*
26: * NOTE: reprogram is a pun for the interface routines
27: * allowing the library to change without forcing
28: * users to recompile
29: */
30:
31: typedef struct /* compiled regular expression program */
32: {
33: rematch match[RE_NMATCH+1];/* sub-expression match table */
34: } reprogram;
35:
36: /*
37: * interface routines
38: */
39:
40: #if __STDC__ || __cplusplus || c_plusplus
41: #if __cplusplus
42: extern "C" {
43: #endif
44: extern reprogram* recomp(const char*, int);
45: extern int reexec(reprogram*, const char*);
46: extern void refree(reprogram*);
47: extern void reerror(const char*);
48: extern char* resub(reprogram*, const char*, const char*, char*, int);
49: #if __cplusplus
50: }
51: #endif
52: #else
53: extern reprogram* recomp();
54: extern int reexec();
55: extern void refree();
56: extern void reerror();
57: extern char* resub();
58: #endif
59:
60: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.