home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / istparse.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  4.2 KB  |  139 lines

  1.  
  2.  
  3. #ifndef _ISTPARSE_
  4. #define _ISTPARSE_
  5. /*******************************************************************************
  6. * FILE NAME: istparse.hpp                                                      *
  7. *                                                                              *
  8. * DESCRIPTION:                                                                 *
  9. *   Declaration of the classes:                                                *
  10. *     IStringParser                                                            *
  11. *                                                                              *
  12. * COPYRIGHT:                                                                   *
  13. *   IBM Open Class Library                                                     *
  14. *   (C) Copyright International Business Machines Corporation 1992, 1996       *
  15. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  16. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  17. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  18. *                                                                              *
  19. *******************************************************************************/
  20. #include <ibase.hpp>
  21.  
  22.  
  23.  
  24. class IString;
  25. class IStringTest;
  26. class IStringParserData;
  27.  
  28. class IStringParser : public IBase {
  29. typedef IBase
  30.   Inherited;
  31. public:
  32.  
  33. /*------------------------- Constructors -------------------------------------*/
  34.  ~IStringParser ( );
  35.  
  36. /*------------------------- Commands -----------------------------------------*/
  37. enum Command {
  38.   reset,
  39.   skipWord
  40. };
  41.  
  42. class SkipWords : public IBase {
  43. public:
  44.   SkipWords     ( unsigned long numberOfWords = 1 );
  45. unsigned long
  46.   numberOfWords ( ) const;
  47. private:
  48. unsigned long
  49.   fNumSkip;
  50.  
  51.  
  52. };
  53.  
  54. IStringParser
  55.  &operator >>   ( Command          command ),
  56.  &operator >>   ( const SkipWords& skipObject );
  57.  
  58. /*------------------------- Initialize ---------------------------------------*/
  59. friend IStringParser
  60.   operator >>   ( const IString& text,
  61.                         IString& token );
  62.  
  63. friend IStringParser
  64.   operator >>   ( const IString& text,
  65.                   const IString& pattern );
  66. friend IStringParser
  67.   operator >>   ( const IString& text,
  68.                   const char*    pattern );
  69.  
  70. friend IStringParser
  71.   operator >>   ( const IString& text,
  72.                   char           pattern );
  73.  
  74. friend IStringParser
  75.   operator >>   ( const IString& text,
  76.                   unsigned long  position );
  77. friend IStringParser
  78.   operator >>   ( const IString& text,
  79.                   int            position );
  80.  
  81. friend IStringParser
  82.   operator <<   ( const IString& text,
  83.                   unsigned long  position );
  84.  
  85. friend IStringParser
  86.   operator >>   ( const IString&     text,
  87.                   const IStringTest& test );
  88.  
  89. friend IStringParser
  90.   operator >>   ( const IString&         text,
  91.                   IStringParser::Command command );
  92.  
  93. friend IStringParser
  94.   operator >>   ( const IString&                  text,
  95.                   const IStringParser::SkipWords& skipObject );
  96.  
  97. /*------------------------- Tokenizing ---------------------------------------*/
  98. IStringParser
  99.  &operator >>   ( IString& token );
  100.  
  101. /*------------------------- Pattern Matching ---------------------------------*/
  102. IStringParser
  103.  &operator >>   ( const IString&     pattern ),
  104.  &operator >>   ( const char*        pattern ),
  105.  &operator >>   ( char               pattern ),
  106.  &operator >>   ( const IStringTest& test );
  107.  
  108. /*----------------------- Relative Column Positioning ------------------------*/
  109. IStringParser
  110.  &operator >>   ( int           delta ),
  111.  &operator >>   ( unsigned long delta );
  112.  
  113. /*----------------------- Absolute Column Positioning ------------------------*/
  114. IStringParser
  115.  &operator <<   ( unsigned long position );
  116.  
  117.  
  118. protected:
  119. /*------------------------- Protected Constructors ---------------------------*/
  120.   IStringParser ( const IString&       text );
  121.   IStringParser ( const IStringParser& parser );
  122.  
  123.  
  124. /*------------------------- Private ------------------------------------------*/
  125. private:
  126. IStringParserData
  127.  *fData;
  128.  
  129.  
  130.  
  131.  
  132. }; // class IStringParser
  133.  
  134.  
  135.  
  136. #endif // _ISTPARSE_
  137.  
  138.  
  139.