1*8661Smckusick static char sccsid[] = "@(#)retest.c 4.1 (Berkeley) 10/19/82"; 2*8661Smckusick 3*8661Smckusick #include <ctype.h> 4*8661Smckusick 5*8661Smckusick int l_onecase = 0; 6*8661Smckusick char * _start; 7*8661Smckusick char * _escaped; 8*8661Smckusick char * convexp(); 9*8661Smckusick char * expmatch(); 10*8661Smckusick main() 11*8661Smckusick { 12*8661Smckusick char reg[132]; 13*8661Smckusick char *ireg; 14*8661Smckusick char str[132]; 15*8661Smckusick char *match; 16*8661Smckusick char matstr[132]; 17*8661Smckusick char c; 18*8661Smckusick 19*8661Smckusick while (1) { 20*8661Smckusick printf ("\nexpr: "); 21*8661Smckusick scanf ("%s", reg); 22*8661Smckusick ireg = convexp(reg); 23*8661Smckusick match = ireg; 24*8661Smckusick while(*match) { 25*8661Smckusick switch (*match) { 26*8661Smckusick 27*8661Smckusick case '\\': 28*8661Smckusick case '(': 29*8661Smckusick case ')': 30*8661Smckusick case '|': 31*8661Smckusick printf ("%c", *match); 32*8661Smckusick break; 33*8661Smckusick 34*8661Smckusick default: 35*8661Smckusick if (isalnum(*match)) 36*8661Smckusick printf("%c", *match); 37*8661Smckusick else 38*8661Smckusick printf ("<%03o>", *match); 39*8661Smckusick break; 40*8661Smckusick } 41*8661Smckusick match++; 42*8661Smckusick } 43*8661Smckusick printf("\n"); 44*8661Smckusick getchar(); 45*8661Smckusick while(1) { 46*8661Smckusick printf ("string: "); 47*8661Smckusick match = str; 48*8661Smckusick while ((c = getchar()) != '\n') 49*8661Smckusick *match++ = c; 50*8661Smckusick *match = 0; 51*8661Smckusick if (str[0] == '#') 52*8661Smckusick break; 53*8661Smckusick matstr[0] = 0; 54*8661Smckusick _start = str; 55*8661Smckusick _escaped = 0; 56*8661Smckusick match = expmatch (str, ireg, matstr); 57*8661Smckusick if (match == 0) 58*8661Smckusick printf ("FAILED\n"); 59*8661Smckusick else 60*8661Smckusick printf ("match\nmatstr = %s\n", matstr); 61*8661Smckusick } 62*8661Smckusick 63*8661Smckusick } 64*8661Smckusick } 65