home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / ImageMagick-4.0.6.tar.gz / ImageMagick-4.0.6.tar / ImageMagick-4.0.6 / xtp / regular.h < prev    next >
C/C++ Source or Header  |  1998-01-03  |  1KB  |  58 lines

  1. /*
  2.   Definitions etc. for RegularExpression(3) routines.
  3. */
  4. #define EndOfProgram  0
  5. #define MatchBeginningOfLine  1
  6. #define MatchEndOfProgramOfLine  2
  7. #define MatchAnyCharacter  3
  8. #define MatchAnyCharacterOf  4
  9. #define MatchAnyCharacterBut  5
  10. #define MatchThisOrNext  6
  11. #define Back  7
  12. #define MatchExactly  8
  13. #define MatchEmptyString  9
  14. #define MatchZeroOrMore  10
  15. #define MatchOneOrMore  11
  16. #define Open  20
  17. #define Close  30
  18.  
  19. #define WorstCase  0
  20. #define NonNull  1
  21. #define Simple  2
  22. #define SpecialStart  4
  23.  
  24. #define Fail(m)  \
  25. {  \
  26.   (void) fprintf(stderr,"RegularExpression: %s\n",m);  \
  27.   return(NULL);  \
  28. }
  29. #define Magick   0234
  30. #define Meta  "^$.[()|?+*\\"
  31. #define MultipleMatches(c) (((c) == '*') || ((c) == '+') || ((c) == '?'))
  32. #define Next(p) (((*((p)+1) & 0377) << 8 )+(*((p)+2) & 0377))
  33. #define NumberSubExpressions  10
  34. #define OpCode(p) (*(p))
  35. #define Operand(p) ((p)+3)
  36.  
  37. typedef struct _RegularExpression 
  38. {
  39.   char 
  40.     *subpattern[NumberSubExpressions],
  41.     *subpattern_end[NumberSubExpressions],
  42.     start_character,
  43.     anchor,
  44.     *priority_pattern;
  45.  
  46.   int 
  47.     pattern_length;
  48.  
  49.   char 
  50.     program[1];
  51. } RegularExpression;
  52.  
  53. extern RegularExpression 
  54.   *CompileRegularExpression(char *);
  55.  
  56. extern int 
  57.   ExecuteRegularExpression(RegularExpression *,char *);
  58.