cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cmnTokenizer.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5 
6  Author(s): Ofri Sadowsky
7  Created on: 2003-06-09
8 
9  (C) Copyright 2003-2007 Johns Hopkins University (JHU), All Rights
10  Reserved.
11 
12 --- begin cisst license - do not edit ---
13 
14 This software is provided "as is" under an open source license, with
15 no warranty. The complete license can be found in license.txt and
16 http://www.cisst.org/cisst/license.txt.
17 
18 --- end cisst license ---
19 
20 */
21 
22 
27 #pragma once
28 
29 #ifndef _cmnTokenizer_h
30 #define _cmnTokenizer_h
31 
32 
34 #include <cisstCommon/cmnThrow.h>
35 
36 #include <vector>
37 
38 // Always the last cisst include
39 #include <cisstCommon/cmnExport.h>
40 
66 {
67  public:
68 
69  typedef std::vector<const char *> TokensContainer;
71 
72  cmnTokenizer();
73 
74  ~cmnTokenizer();
75 
76  inline void SetDelimiters(const char * delimiters)
77  {
78  Delimiters = delimiters;
79  }
80 
81  inline void SetQuoteMarkers(const char * markers)
82  {
83  QuoteMarkers = markers;
84  }
85 
86  inline void SetEscapeMarkers(const char * markers)
87  {
88  EscapeMarkers = markers;
89  }
90 
91  inline const char * GetDelimiters(void) const
92  {
93  return Delimiters;
94  }
95 
96  inline const char * GetQuoteMarkers(void) const
97  {
98  return QuoteMarkers;
99  }
100 
101  inline const char * GetEscapeMarkers(void) const
102  {
103  return EscapeMarkers;
104  }
105 
106  static const char * GetDefaultDelimiters(void)
107  {
108  return DefaultDelimiters;
109  }
110 
111  static const char * GetDefaultQuoteMarkers(void)
112  {
113  return DefaultQuoteMarkers;
114  }
115 
116  static const char * GetDefaultEscapeMarkers(void)
117  {
118  return DefaultEscapeMarkers;
119  }
120 
126  void Parse(const char * string) throw(std::runtime_error);
127 
128 
129  inline void Parse(const std::string & string) throw(std::runtime_error) {
130  Parse(string.c_str());
131  }
132 
133 
135  size_type GetNumTokens(void) const {
136  return Tokens.size();
137  }
138 
143  const char * GetToken(size_type num) const;
144 
154  const char * const * GetTokensArray(void) const;
155 
159  void GetArgvTokens(std::vector<const char *> & argvTokens) const;
160 
161 private:
162  const char * Delimiters;
163  const char * QuoteMarkers;
164  const char * EscapeMarkers;
165 
166  static const char * const DefaultDelimiters;
167  static const char * const DefaultQuoteMarkers;
168  static const char * const DefaultEscapeMarkers;
169 
170  std::vector<char> StringBuffer;
171  TokensContainer Tokens;
172 };
173 
174 #endif // _cmnTokenizer_h
175 
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
void SetDelimiters(const char *delimiters)
Definition: cmnTokenizer.h:76
const char * GetEscapeMarkers(void) const
Definition: cmnTokenizer.h:101
std::vector< const char * > TokensContainer
Definition: cmnTokenizer.h:69
Portability across compilers and operating systems tools.
const char * GetQuoteMarkers(void) const
Definition: cmnTokenizer.h:96
void SetEscapeMarkers(const char *markers)
Definition: cmnTokenizer.h:86
size_t size_type
Definition: vctContainerTraits.h:35
Definition: cmnTokenizer.h:65
size_type GetNumTokens(void) const
Definition: cmnTokenizer.h:135
void Parse(const std::string &string)
Definition: cmnTokenizer.h:129
const char * GetDelimiters(void) const
Definition: cmnTokenizer.h:91
Macros to export the symbols of cisstCommon (in a Dll).
static const char * GetDefaultEscapeMarkers(void)
Definition: cmnTokenizer.h:116
TokensContainer::size_type size_type
Definition: cmnTokenizer.h:70
static const char * GetDefaultDelimiters(void)
Definition: cmnTokenizer.h:106
Declaration of the template function cmnThrow.
void SetQuoteMarkers(const char *markers)
Definition: cmnTokenizer.h:81
static const char * GetDefaultQuoteMarkers(void)
Definition: cmnTokenizer.h:111