ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/utils/StringTokenizer.hpp
(Generate patch)

Comparing trunk/OOPSE-4/src/utils/StringTokenizer.hpp (file contents):
Revision 1945 by tim, Fri Jan 14 16:49:46 2005 UTC vs.
Revision 2204 by gezelter, Fri Apr 15 22:04:00 2005 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# Line 54 | Line 54 | namespace oopse {
54  
55   namespace oopse {
56  
57 < /**
58 < * @class StringTokenizer.hpp "util/StringTokenizer.hpp"
59 < * @brief The string tokenizer class allows an application to break a string into tokens
60 < * The set of delimiters (the characters that separate tokens) may be specified either
61 < * at creation time or on a per-token basis.
62 < * An instance of StringTokenizer behaves in one of two ways, depending on whether it was
63 < * created with the returnTokens flag having the value true or false.
64 < */
65 < class StringTokenizer {
66 <    public:
57 >  /**
58 >   * @class StringTokenizer.hpp "util/StringTokenizer.hpp"
59 >   * @brief The string tokenizer class allows an application to break a string into tokens
60 >   * The set of delimiters (the characters that separate tokens) may be specified either
61 >   * at creation time or on a per-token basis.
62 >   * An instance of StringTokenizer behaves in one of two ways, depending on whether it was
63 >   * created with the returnTokens flag having the value true or false.
64 >   */
65 >  class StringTokenizer {
66 >  public:
67  
68 <        /**
69 <         * Constructs a string tokenizer for the specified string. The characters in the delim argument
70 <         * are the delimiters for separating tokens. characters are skipped and only serve as
71 <         * separators between tokens.
72 <         * @param str a string to be parsed.
73 <         * @param delim the delimiters, default value is " ;\t\n\r".
74 <         * @note this is still a little bit java like implementation. Pure c++ one should use TokenIterator.
75 <         * Boost's tokenizer class is one of them
76 <         */
77 <        StringTokenizer(const std::string & str,
78 <                        const std::string & delim = " ;\t\n\r");
68 >    /**
69 >     * Constructs a string tokenizer for the specified string. The characters in the delim argument
70 >     * are the delimiters for separating tokens. characters are skipped and only serve as
71 >     * separators between tokens.
72 >     * @param str a string to be parsed.
73 >     * @param delim the delimiters, default value is " ;\t\n\r".
74 >     * @note this is still a little bit java like implementation. Pure c++ one should use TokenIterator.
75 >     * Boost's tokenizer class is one of them
76 >     */
77 >    StringTokenizer(const std::string & str,
78 >                    const std::string & delim = " ;\t\n\r");
79  
80 <        /**
81 <         * Constructs a string tokenizer for an iterator range [first, last). The characters in the delim argument
82 <         * are the delimiters for separating tokens. characters are skipped and only serve as
83 <         * separators between tokens.
84 <         * @param first begin iterator
85 <         * @param last end iterator
86 <         * @param delim the delimiters, default value is " ;\t\n\r".
87 <         * @note this is still a little bit java like implementation. Pure c++ one should use TokenIterator.
88 <         * Boost's tokenizer class is one of them
89 <         */
90 <        StringTokenizer(std::string::const_iterator& first, std::string::const_iterator& last,
91 <                        const std::string & delim = " ;\t\n\r");
80 >    /**
81 >     * Constructs a string tokenizer for an iterator range [first, last). The characters in the delim argument
82 >     * are the delimiters for separating tokens. characters are skipped and only serve as
83 >     * separators between tokens.
84 >     * @param first begin iterator
85 >     * @param last end iterator
86 >     * @param delim the delimiters, default value is " ;\t\n\r".
87 >     * @note this is still a little bit java like implementation. Pure c++ one should use TokenIterator.
88 >     * Boost's tokenizer class is one of them
89 >     */
90 >    StringTokenizer(std::string::const_iterator& first, std::string::const_iterator& last,
91 >                    const std::string & delim = " ;\t\n\r");
92  
93 <        /**
94 <         * Constructs a string tokenizer for the specified string. The characters in the delim argument
95 <         * are the delimiters for separating tokens.
96 <         * If the returnTokens flag is true, then the delimiter characters are also returned as tokens.
97 <         * Each delimiter is returned as a string of length one. If the flag is false, the delimiter
98 <         * characters are skipped and only serve as separators between tokens.
99 <         * @param str a string to be parsed.
100 <         * @param delim the delimiters.
101 <         * @param returnTokens flag indicating whether to return the delimiters as tokens.
102 <         */
103 <        StringTokenizer(const std::string&str, const std::string&delim,
104 <                        bool returnTokens);
93 >    /**
94 >     * Constructs a string tokenizer for the specified string. The characters in the delim argument
95 >     * are the delimiters for separating tokens.
96 >     * If the returnTokens flag is true, then the delimiter characters are also returned as tokens.
97 >     * Each delimiter is returned as a string of length one. If the flag is false, the delimiter
98 >     * characters are skipped and only serve as separators between tokens.
99 >     * @param str a string to be parsed.
100 >     * @param delim the delimiters.
101 >     * @param returnTokens flag indicating whether to return the delimiters as tokens.
102 >     */
103 >    StringTokenizer(const std::string&str, const std::string&delim,
104 >                    bool returnTokens);
105  
106 <        /**
107 <         * Calculates the number of times that this tokenizer's nextToken method can be called
108 <         * before it generates an exception.
109 <         * @return the number of tokens remaining in the string using the current delimiter set.
110 <         */
111 <        int countTokens();
106 >    /**
107 >     * Calculates the number of times that this tokenizer's nextToken method can be called
108 >     * before it generates an exception.
109 >     * @return the number of tokens remaining in the string using the current delimiter set.
110 >     */
111 >    int countTokens();
112  
113 <        /**
114 <         * Tests if there are more tokens available from this tokenizer's string.
115 <         * @return true if there are more tokens available from this tokenizer's string, false otherwise
116 <         */
117 <        bool hasMoreTokens();
113 >    /**
114 >     * Tests if there are more tokens available from this tokenizer's string.
115 >     * @return true if there are more tokens available from this tokenizer's string, false otherwise
116 >     */
117 >    bool hasMoreTokens();
118  
119 <        /**
120 <         * Returns the next token from this string tokenizer.
121 <         * @return the next token from this string tokenizer.
122 <         * @exception NoSuchElementException if there are no more tokens in this tokenizer's string
123 <         */
124 <        std::string nextToken();
119 >    /**
120 >     * Returns the next token from this string tokenizer.
121 >     * @return the next token from this string tokenizer.
122 >     * @exception NoSuchElementException if there are no more tokens in this tokenizer's string
123 >     */
124 >    std::string nextToken();
125  
126 <        //actually, nextToken Can be template function
127 <        //template <typename ReturnType>
128 <        //ReturnType nextToken();
126 >    //actually, nextToken Can be template function
127 >    //template <typename ReturnType>
128 >    //ReturnType nextToken();
129          
130 <        /**
131 <         * Returns the next token from this string tokenizer as a bool.
132 <         * @return the next token from this string tokenizer  as a bool.
133 <         */
134 <        bool nextTokenAsBool();
130 >    /**
131 >     * Returns the next token from this string tokenizer as a bool.
132 >     * @return the next token from this string tokenizer  as a bool.
133 >     */
134 >    bool nextTokenAsBool();
135  
136 <        /**
137 <         * Returns the next token from this string tokenizer as an integer.
138 <         * @return the next token from this string tokenizer  as an integer.
139 <         */
140 <        int nextTokenAsInt();
136 >    /**
137 >     * Returns the next token from this string tokenizer as an integer.
138 >     * @return the next token from this string tokenizer  as an integer.
139 >     */
140 >    int nextTokenAsInt();
141  
142 <        /**
143 <         * Returns the next token from this string tokenizer as a float.
144 <         * @return the next token from this string tokenizer as a float.
145 <         */
146 <        float nextTokenAsFloat();
142 >    /**
143 >     * Returns the next token from this string tokenizer as a float.
144 >     * @return the next token from this string tokenizer as a float.
145 >     */
146 >    float nextTokenAsFloat();
147  
148 <        /**
149 <         * Returns the next token from this string tokenizer as a double.
150 <         * @return the next token from this string tokenizer as a double.
151 <         */
152 <        double nextTokenAsDouble();
148 >    /**
149 >     * Returns the next token from this string tokenizer as a double.
150 >     * @return the next token from this string tokenizer as a double.
151 >     */
152 >    double nextTokenAsDouble();
153  
154 <        /**
155 <         * Returns the next token without advancing the position of the StringTokenizer.
156 <         * @return the next token
157 <         */
158 <        std::string  peekNextToken();
154 >    /**
155 >     * Returns the next token without advancing the position of the StringTokenizer.
156 >     * @return the next token
157 >     */
158 >    std::string  peekNextToken();
159  
160 <        /**
161 <         * Returns the current delimiter set of this string tokenizer
162 <         * @return the current delimiter set
163 <         */
164 <        const std::string& getDelimiters() {
165 <            return delim_;
166 <        }
160 >    /**
161 >     * Returns the current delimiter set of this string tokenizer
162 >     * @return the current delimiter set
163 >     */
164 >    const std::string& getDelimiters() {
165 >      return delim_;
166 >    }
167  
168 <        /**
169 <         * Returns the original string before tokenizing.
170 <         * @return the original string before tokenizing
171 <         */
172 <        const std::string& getOriginal() {
173 <            return tokenString_;
174 <        }
168 >    /**
169 >     * Returns the original string before tokenizing.
170 >     * @return the original string before tokenizing
171 >     */
172 >    const std::string& getOriginal() {
173 >      return tokenString_;
174 >    }
175  
176 <    private:
176 >  private:
177  
178 <        /**
179 <         * Test if character is in current delimiter set.
180 <         * @param c character to be tested
181 <         * @return true if character is in current delimiter set, flase otherwise.
182 <         */
183 <        bool isDelimiter(const char c);
178 >    /**
179 >     * Test if character is in current delimiter set.
180 >     * @param c character to be tested
181 >     * @return true if character is in current delimiter set, flase otherwise.
182 >     */
183 >    bool isDelimiter(const char c);
184  
185 <        /** convert a fortran number to a c/c++ number */
186 <        void convertFortranNumber(std::string& fortranNumber);
185 >    /** convert a fortran number to a c/c++ number */
186 >    void convertFortranNumber(std::string& fortranNumber);
187          
188  
189 <        std::string tokenString_;
189 >    std::string tokenString_;
190  
191 <        std::string delim_;         /**< current delimiter set of this string tokenizer */
191 >    std::string delim_;         /**< current delimiter set of this string tokenizer */
192  
193 <        bool returnTokens_; /**< flag indicating whether to return the delimiters as tokens */
193 >    bool returnTokens_; /**< flag indicating whether to return the delimiters as tokens */
194  
195 <        std::string::const_iterator currentPos_;
196 <        std::string::const_iterator end_;
197 < };
195 >    std::string::const_iterator currentPos_;
196 >    std::string::const_iterator end_;
197 >  };
198  
199   }                               //namespace oopse
200  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines