home *** CD-ROM | disk | FTP | other *** search
/ Enter 2005 March / ENTER.ISO / files / fwp-0.0.6-win32-installer.exe / Tokenizer.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-12-06  |  1.2 KB  |  41 lines

  1. #ifndef __Tokenizer_h__
  2. #define __Tokenizer_h__
  3.  
  4. #include <string.h>
  5.  
  6. #define TOKENIZER_MAX_TOKENS    32
  7.  
  8. #define streq(x,y) (!strcmp(x,y))
  9. #ifdef WIN32
  10. #define strcasecmp stricmp
  11. #endif
  12. //#define newString(x) strcpy(new char[strlen(x)+1], (x)) jetzt als funktion
  13.  
  14. /*
  15.     This class is VERY simple tokenizer. It takes a string, a set of separators and a brackets (which bundle tokens)
  16.     and then splits the string into [tokc] tokens, that can be read out of the tokv array.
  17. */
  18. class Tokenizer{
  19. public:
  20.     int tokc;
  21.     char* tokv[TOKENIZER_MAX_TOKENS];
  22.     const char* separators;
  23.     const char* brackets;
  24.  
  25.     Tokenizer(const char* string, const char* separators, const char* brackets);
  26.     Tokenizer(const char* separators, const char* brackets);
  27.     ~Tokenizer();
  28.  
  29.     bool tokenize(const char* string);
  30.     void clearTokens();                /* clears tokv */
  31.  
  32. private:
  33.     static bool contains(const char* str, char c);    /* checks whether or not str contains the character c */
  34.     bool addToken(char *start, unsigned int length);    /* adds a token to tokv and increases tokc */
  35. };
  36.  
  37. char* newString(const char* str);
  38. char* newString(const char* start, int length);
  39.  
  40. #endif    /* __Tokenizer_h__ */
  41.