10 typedef struct Re2 Re2;
11 typedef struct State State;
34 Re** cases; /* case */
76 * if a line requires multiple reads, we keep shifting
77 * buf down into pre and then do another read into
78 * buf. so you'll get the last 16-32k of the matching line.
79 * if h were smaller than buf you'd get a suffix of the
80 * line with a hole cut out.
82 uchar pre[16*1024]; /* to save to previous '\n' */
83 uchar buf[16*1024]; /* input buffer */
87 EXTERN char *filename;
89 EXTERN char flags[256];
96 EXTERN long maxfollow;
100 EXTERN State* state0;
103 extern Re* addcase(Re*);
104 extern void appendnext(Re*, Re*);
105 extern void error(char*);
106 extern int fcmp(const void*, const void*); /* (Re**, Re**) */
107 extern void fol1(Re*, int);
108 extern int getrec(void);
109 extern void increment(State*, int);
110 #define initstate grepinitstate
111 extern State* initstate(Re*);
112 extern void* mal(int);
113 extern void patchnext(Re*, Re*);
115 extern Re2 re2cat(Re2, Re2);
116 extern Re2 re2class(char*);
117 extern Re2 re2or(Re2, Re2);
118 extern Re2 re2char(int, int);
119 extern Re2 re2star(Re2);
120 extern State* sal(int);
121 extern int search(char*, int);
122 extern void str2top(char*);
123 extern int yyparse(void);
124 extern void reprint(char*, Re*);
125 extern void yyerror(char*, ...);