30 inline void Foam::token::clear()
84 lineNumber_(t.lineNumber_)
147 punctuationToken_(
p),
148 lineNumber_(lineNumber)
155 wordTokenPtr_(new
word(w)),
156 lineNumber_(lineNumber)
163 stringTokenPtr_(new
string(
s)),
164 lineNumber_(lineNumber)
170 type_(VERBATIMSTRING),
172 lineNumber_(lineNumber)
180 lineNumber_(lineNumber)
187 floatScalarToken_(
s),
188 lineNumber_(lineNumber)
194 type_(DOUBLE_SCALAR),
195 doubleScalarToken_(
s),
196 lineNumber_(lineNumber)
202 type_(LONG_DOUBLE_SCALAR),
204 lineNumber_(lineNumber)
230 return (type_ != ERROR && type_ != UNDEFINED);
235 return (type_ == UNDEFINED);
240 return (type_ == ERROR);
245 return (type_ == PUNCTUATION);
250 if (type_ == PUNCTUATION)
252 return punctuationToken_;
256 parseError(
"punctuation character");
263 return (type_ == WORD);
270 return *wordTokenPtr_;
281 return (type_ == FUNCTIONNAME);
286 if (type_ == FUNCTIONNAME)
288 return *functionNameTokenPtr_;
299 return (type_ == VARIABLE);
304 if (type_ == VARIABLE)
306 return *variableTokenPtr_;
317 return (type_ == STRING);
324 return *stringTokenPtr_;
335 return (type_ == VERBATIMSTRING);
340 if (type_ == VERBATIMSTRING)
342 return *verbatimStringTokenPtr_;
356 || type_ == FUNCTIONNAME
359 || type_ == VERBATIMSTRING
367 return *wordTokenPtr_;
369 else if (type_ == FUNCTIONNAME)
371 return *functionNameTokenPtr_;
373 else if (type_ == VARIABLE)
375 return *variableTokenPtr_;
377 else if (type_ == STRING)
379 return *stringTokenPtr_;
381 else if (type_ == VERBATIMSTRING)
383 return *verbatimStringTokenPtr_;
394 return (type_ == LABEL);
412 return (type_ == FLOAT_SCALAR);
417 if (type_ == FLOAT_SCALAR)
419 return floatScalarToken_;
423 parseError(
"floatScalar");
431 return (type_ == DOUBLE_SCALAR);
436 if (type_ == DOUBLE_SCALAR)
438 return doubleScalarToken_;
442 parseError(
"doubleScalar");
450 return (type_ == LONG_DOUBLE_SCALAR);
455 if (type_ == LONG_DOUBLE_SCALAR)
457 return *longDoubleScalarTokenPtr_;
461 parseError(
"longDoubleScalar");
471 type_ == FLOAT_SCALAR
472 || type_ == DOUBLE_SCALAR
473 || type_ == LONG_DOUBLE_SCALAR
479 if (type_ == FLOAT_SCALAR)
481 return floatScalarToken_;
483 else if (type_ == DOUBLE_SCALAR)
485 return doubleScalarToken_;
487 else if (type_ == LONG_DOUBLE_SCALAR)
489 return *longDoubleScalarTokenPtr_;
500 return (type_ == LABEL ||
isScalar());
511 return scalarToken();
515 parseError(
"number (label or scalar)");
522 return (type_ == COMPOUND);
527 if (type_ == COMPOUND)
529 return *compoundTokenPtr_;
533 parseError(
"compound");
534 return *compoundTokenPtr_;
590 verbatimStringTokenPtr_ =
606 case LONG_DOUBLE_SCALAR:
607 longDoubleScalarTokenPtr_ =
613 compoundTokenPtr_->refCount::operator++();
620 lineNumber_ = t.lineNumber_;
627 punctuationToken_ =
p;
634 wordTokenPtr_ = wPtr;
639 operator=(
new word(w));
645 type_ = FUNCTIONNAME;
646 functionNameTokenPtr_ = fnPtr;
658 variableTokenPtr_ = vPtr;
670 stringTokenPtr_ = sPtr;
675 operator=(
new string(
s));
681 type_ = VERBATIMSTRING;
682 verbatimStringTokenPtr_ = vsPtr;
700 type_ = FLOAT_SCALAR;
701 floatScalarToken_ =
s;
707 type_ = DOUBLE_SCALAR;
708 doubleScalarToken_ =
s;
714 type_ = LONG_DOUBLE_SCALAR;
722 compoundTokenPtr_ = cPtr;
728 if (type_ != t.type_)
765 case LONG_DOUBLE_SCALAR:
768 *longDoubleScalarTokenPtr_,
784 return (type_ == PUNCTUATION && punctuationToken_ ==
p);
789 return (type_ == WORD && wordToken() == w);
794 return (type_ == FUNCTIONNAME && functionNameToken() == fn);
799 return (type_ == VARIABLE && variableToken() == v);
804 return (type_ == STRING && stringToken() ==
s);
809 return (type_ == VERBATIMSTRING && verbatimStringToken() == vs);
814 return (type_ == LABEL && labelToken_ == l);
819 return (type_ == FLOAT_SCALAR &&
equal(floatScalarToken_,
s));
824 return (type_ == DOUBLE_SCALAR &&
equal(doubleScalarToken_,
s));
831 type_ == LONG_DOUBLE_SCALAR &&
equal(*longDoubleScalarTokenPtr_,
s)
A functionName is a word starting with '#'.
static const functionName null
An empty functionName.
static const char *const typeName
Traits class for primitives.
bool unique() const
Return true if the reference count is zero.
A class for handling character strings derived from std::string.
static const string null
An empty string.
static const char *const typeName
Abstract base class for complex tokens.
A token holds items read from Istream.
longDoubleScalar longDoubleScalarToken() const
const variable & variableToken() const
bool isPunctuation() const
punctuationToken punctuationToken_
bool isDoubleScalar() const
tokenType
Enumeration defining the types of token.
bool isLongDoubleScalar() const
verbatimString * verbatimStringTokenPtr_
compound * compoundTokenPtr_
bool isVerbatimString() const
functionName * functionNameTokenPtr_
floatScalar floatScalarToken_
const functionName & functionNameToken() const
variable * variableTokenPtr_
floatScalar floatScalarToken() const
punctuationToken
Standard punctuation tokens.
const string & stringToken() const
punctuationToken pToken() const
void operator=(const token &)
const string & anyStringToken() const
bool isFunctionName() const
const compound & compoundToken() const
bool isFloatScalar() const
bool operator!=(const token &) const
doubleScalar doubleScalarToken() const
doubleScalar doubleScalarToken_
const word & wordToken() const
scalar scalarToken() const
const verbatimString & verbatimStringToken() const
bool operator==(const token &) const
longDoubleScalar * longDoubleScalarTokenPtr_
A variable is a word with support for additional characters, in particular '$' and '/'.
static const variable null
An empty variable.
static const char *const typeName
A class for handling verbatimStrings, derived from string.
static const verbatimString null
An empty verbatimString.
static const char *const typeName
A class for handling words, derived from string.
static const word null
An empty word.
static const char *const typeName
static bool isScalar[maxNames]
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
bool equal(const T &s1, const T &s2)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
tmp< fvMatrix< Type > > operator==(const fvMatrix< Type > &, const fvMatrix< Type > &)
double doubleScalar
Double precision floating point scalar type.
float floatScalar
Float precision floating point scalar type.
long double longDoubleScalar
Lang double precision floating point scalar type.