home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / services.pak / REGEXP.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  2KB  |  84 lines

  1. //----------------------------------------------------------------------------
  2. // Borland Services Library
  3. // Copyright (c) 1993, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   5.5  $
  6. //
  7. // Declaration of class TRegexp -- expression searching
  8. //
  9. //----------------------------------------------------------------------------
  10. #if !defined(SERVICES_REGEX_H)
  11. #define SERVICES_REGEX_H
  12.  
  13. #if !defined(SERVICES_DEFS_H)
  14. # include <services/defs.h>
  15. #endif
  16. #if !defined(SERVICES_EXCEPT_H )
  17. # include <services/except.h>
  18. #endif
  19.  
  20. #if defined(BI_COMP_BORLANDC)
  21. # include <regexp.h>
  22.  
  23. #else
  24.  
  25. #if !defined(RC_INVOKED)
  26. # if defined(__STDC__)
  27. #   pragma warn -nak
  28. # endif
  29. #endif
  30.  
  31. class _EXPCLASS string;
  32.  
  33. #if defined(BI_NAMESPACE)
  34. namespace ClassLib {
  35. #endif
  36.  
  37. class _EXPCLASS TRegexp
  38. {
  39.   public:
  40.     enum StatVal
  41.     {
  42.         OK=0,
  43.         ILLEGAL,
  44.         TOOLONG
  45.     };
  46.  
  47.     _RTLENTRY TRegexp( const _TCHAR _FAR *cp );
  48.     _RTLENTRY TRegexp( const TRegexp _FAR &r );
  49.     _RTLENTRY ~TRegexp();
  50.  
  51.     TRegexp _FAR & _RTLENTRY operator = ( const TRegexp _FAR &r ) THROW_SPEC1( xalloc );
  52.     TRegexp _FAR & _RTLENTRY operator = ( const _TCHAR _FAR *cp ) THROW_SPEC1( xalloc );
  53.     size_t _RTLENTRY find( const string _FAR &s,
  54.                            size_t _FAR *len,
  55.                            size_t start = 0 ) const;
  56.     StatVal _RTLENTRY status() THROW_SPEC0;
  57.  
  58.   private:
  59.     void _RTLENTRY copy_pattern( const TRegexp _FAR &r ) THROW_SPEC1( xalloc );
  60.     void _RTLENTRY gen_pattern( const _TCHAR _FAR *cp ) THROW_SPEC1( xalloc );
  61.  
  62.     unsigned _TCHAR _FAR *the_pattern;
  63.     StatVal stat;
  64.     static const unsigned maxpat;
  65. };
  66.  
  67. #if defined( BI_OLDNAMES )
  68. # define BI_Regexp TRegexp
  69. #endif
  70.  
  71. #if defined(BI_NAMESPACE)
  72. }       // namespace ClassLib
  73. #endif
  74.  
  75. #if !defined(RC_INVOKED)
  76. # if defined(__STDC__)
  77. #   pragma warn .nak
  78. # endif
  79. #endif
  80.  
  81. #endif
  82.  
  83. #endif  // SERVICES_REGEX_H
  84.