home *** CD-ROM | disk | FTP | other *** search
/ Dream 45 / Amiga_Dream_45.iso / Amiga / Magazine / Dossier-LaTeX / lgrind-amiga.lha / lgrind / src / retest.c < prev    next >
C/C++ Source or Header  |  1996-08-03  |  1KB  |  78 lines

  1. /* Test program for the regular expression routines */
  2.  
  3. #define lint 1
  4.  
  5. #ifndef lint
  6. static char *sccsid="@(#)retest.c    1.1 (LBL) 3/29/85";
  7. /*static char sccsid[] = "@(#)retest.c    4.1    (Berkeley)    10/19/82";*/
  8. static char Version[] =
  9.    "$Id: retest.c,v 1.2 91/10/01 00:29:31 gvr Exp $";
  10. #endif
  11.  
  12. #include <stdio.h>
  13. #include <ctype.h>
  14.  
  15. int    l_onecase = 0;
  16. unsigned char    *_start;
  17. unsigned char    *_escaped;
  18. unsigned char    *convexp();
  19. unsigned char    *expmatch();
  20.  
  21.  
  22.  
  23. main()
  24. {
  25.    unsigned char reg[132];
  26.    unsigned char *ireg;
  27.    unsigned char str[132];
  28.    unsigned char *match;
  29.    unsigned char matstr[132];
  30.    unsigned char c;
  31.    
  32.    for (;;) {
  33.       printf ("\nexpr: ");
  34.       scanf ("%s", reg);
  35.       ireg = convexp(reg);
  36.       match = ireg;
  37.       while(*match) {
  38.      switch (*match) {
  39.         
  40.      case '\\':
  41.      case '(':
  42.      case ')':
  43.      case '|':
  44.         printf ("%c", *match);
  45.         break;
  46.         
  47.      default:
  48.         if (isalnum(*match))
  49.            printf("%c", *match);
  50.         else
  51.            printf ("<%03o>", *match);
  52.         break;
  53.      }
  54.      match++;
  55.       }
  56.       printf("\n");
  57.       getchar();
  58.       for (;;) {
  59.      printf ("string: ");
  60.      match = str;
  61.      while ((c = getchar()) != '\n')
  62.         *match++ = c;
  63.      *match = 0;
  64.      if (str[0] == '#')
  65.         break;
  66.      matstr[0] = 0;
  67.      _start = str;
  68.      _escaped = 0;
  69.      match = expmatch (str, ireg, matstr);
  70.      if (match == 0)
  71.         printf ("FAILED\n");
  72.      else
  73.         printf ("match\nmatstr = %s\n", matstr);
  74.       }
  75.       
  76.    }
  77. }
  78.