MCPcopy Create free account
hub / github.com/OpenFOAM/OpenFOAM-dev / splitWord

Function splitWord

src/OpenFOAM/dimensionSet/dimensionSetIO.C:134–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

132
133
134void Foam::dimensionSet::tokeniser::splitWord(const word& w)
135{
136 size_t start = 0;
137 for (size_t i=0; i<w.size(); ++i)
138 {
139 if (!valid(w[i]))
140 {
141 if (i > start)
142 {
143 word subWord = w(start, i-start);
144 if (isdigit(subWord[0]) || subWord[0] == token::SUBTRACT)
145 {
146 push(token(readScalar(IStringStream(subWord)())));
147 }
148 else
149 {
150 push(token(subWord));
151 }
152 }
153 if (w[i] != token::SPACE)
154 {
155 if (isdigit(w[i]))
156 {
157 push(token(readScalar(IStringStream(w[i])())));
158 }
159 else
160 {
161 push(token::punctuationToken(w[i]));
162 }
163 }
164 start = i+1;
165 }
166 }
167 if (start < w.size())
168 {
169 word subWord = w(start, w.size()-start);
170 if (isdigit(subWord[0]) || subWord[0] == token::SUBTRACT)
171 {
172 push(token(readScalar(IStringStream(subWord)())));
173 }
174 else
175 {
176 push(token(subWord));
177 }
178 }
179}
180
181
182Foam::token Foam::dimensionSet::tokeniser::nextToken()

Callers 1

dimensionSetIO.CFile · 0.85

Calls 7

validFunction · 0.85
pushFunction · 0.85
IStringStreamClass · 0.85
punctuationTokenEnum · 0.85
tokenClass · 0.50
readScalarFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected