cisst-saw
Loading...
Searching...
No Matches
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
14This software is provided "as is" under an open source license, with
15no warranty. The complete license can be found in license.txt and
16http://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
35
36#include <vector>
37
38// Always the last cisst include
40
66{
67 public:
68
69 typedef std::vector<const char *> TokensContainer;
70 typedef TokensContainer::size_type size_type;
71
73
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) CISST_THROW(std::runtime_error);
127
128
129 inline void Parse(const std::string & string) CISST_THROW(std::runtime_error) {
130 Parse(string.c_str());
131 }
132
133
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
161private:
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
const char * GetToken(size_type num) const
const char *const * GetTokensArray(void) const
static const char * GetDefaultDelimiters(void)
Definition cmnTokenizer.h:106
const char * GetDelimiters(void) const
Definition cmnTokenizer.h:91
std::vector< const char * > TokensContainer
Definition cmnTokenizer.h:69
void SetEscapeMarkers(const char *markers)
Definition cmnTokenizer.h:86
static const char * GetDefaultEscapeMarkers(void)
Definition cmnTokenizer.h:116
size_type GetNumTokens(void) const
Definition cmnTokenizer.h:135
TokensContainer::size_type size_type
Definition cmnTokenizer.h:70
void SetDelimiters(const char *delimiters)
Definition cmnTokenizer.h:76
const char * GetEscapeMarkers(void) const
Definition cmnTokenizer.h:101
void Parse(const char *string) CISST_THROW(std void Parse(const std::string &string) CISST_THROW(std
Definition cmnTokenizer.h:129
static const char * GetDefaultQuoteMarkers(void)
Definition cmnTokenizer.h:111
void SetQuoteMarkers(const char *markers)
Definition cmnTokenizer.h:81
void GetArgvTokens(std::vector< const char * > &argvTokens) const
const char * GetQuoteMarkers(void) const
Definition cmnTokenizer.h:96
Macros to export the symbols of cisstCommon (in a Dll).
#define CISST_EXPORT
Definition cmnExportMacros.h:50
Portability across compilers and operating systems tools.
#define CISST_THROW(exceptionParameter)
Somewhat portable compilation warning message. This works with very recent versions of gcc (4....
Definition cmnPortability.h:559
Declaration of the template function cmnThrow.