31 inline void Foam::token::clear()
85 lineNumber_(t.lineNumber_)
160 punctuationToken_(
p),
161 lineNumber_(lineNumber)
168 wordTokenPtr_(new
word(w)),
169 lineNumber_(lineNumber)
176 stringTokenPtr_(new
string(
s)),
177 lineNumber_(lineNumber)
184 lineNumber_(lineNumber)
227 type_(VERBATIMSTRING),
229 lineNumber_(lineNumber)
237 lineNumber_(lineNumber)
245 lineNumber_(lineNumber)
251 type_(UNSIGNED_INTEGER_32),
252 unsignedInteger32Token_(l),
253 lineNumber_(lineNumber)
259 type_(UNSIGNED_INTEGER_64),
260 unsignedInteger64Token_(l),
261 lineNumber_(lineNumber)
268 floatScalarToken_(
s),
269 lineNumber_(lineNumber)
275 type_(DOUBLE_SCALAR),
276 doubleScalarToken_(
s),
277 lineNumber_(lineNumber)
283 type_(LONG_DOUBLE_SCALAR),
285 lineNumber_(lineNumber)
311 return (type_ != ERROR && type_ != UNDEFINED);
316 return (type_ == UNDEFINED);
321 return (type_ == ERROR);
326 return (type_ == PUNCTUATION);
331 if (type_ == PUNCTUATION)
333 return punctuationToken_;
337 parseError(
"punctuation character");
344 return (type_ == WORD);
351 return *wordTokenPtr_;
362 return (type_ == FUNCTIONNAME);
367 if (type_ == FUNCTIONNAME)
369 return *functionNameTokenPtr_;
380 return (type_ == VARIABLE);
385 if (type_ == VARIABLE)
387 return *variableTokenPtr_;
398 return (type_ == STRING);
405 return *stringTokenPtr_;
416 return (type_ == VERBATIMSTRING);
421 if (type_ == VERBATIMSTRING)
423 return *verbatimStringTokenPtr_;
437 || type_ == FUNCTIONNAME
440 || type_ == VERBATIMSTRING
448 return *wordTokenPtr_;
450 else if (type_ == FUNCTIONNAME)
452 return *functionNameTokenPtr_;
454 else if (type_ == VARIABLE)
456 return *variableTokenPtr_;
458 else if (type_ == STRING)
460 return *stringTokenPtr_;
462 else if (type_ == VERBATIMSTRING)
464 return *verbatimStringTokenPtr_;
479 && (integer64Token_ >= INT32_MIN) && (integer64Token_ <= INT32_MAX)
481 || (type_ == UNSIGNED_INTEGER_32 && unsignedInteger32Token_ <= INT32_MAX)
482 || (type_ == UNSIGNED_INTEGER_64 && unsignedInteger64Token_ <= INT32_MAX);
487 if (type_ == INTEGER_32)
489 return integer32Token_;
491 else if (type_ == INTEGER_64)
493 return integer64Token_;
495 if (type_ == UNSIGNED_INTEGER_32)
497 return unsignedInteger32Token_;
499 else if (type_ == UNSIGNED_INTEGER_64)
501 return unsignedInteger64Token_;
514 || type_ == INTEGER_64
515 || type_ == UNSIGNED_INTEGER_32
516 || (type_ == UNSIGNED_INTEGER_64 && unsignedInteger64Token_ <= INT64_MAX);
521 if (type_ == INTEGER_32)
523 return integer32Token_;
525 else if (type_ == INTEGER_64)
527 return integer64Token_;
529 if (type_ == UNSIGNED_INTEGER_32)
531 return unsignedInteger32Token_;
533 else if (type_ == UNSIGNED_INTEGER_64)
535 return unsignedInteger64Token_;
547 (type_ == INTEGER_32 && integer32Token_ >= 0)
550 && (integer64Token_ >= 0) && (integer64Token_ <= UINT32_MAX)
552 || type_ == UNSIGNED_INTEGER_32
553 || (type_ == UNSIGNED_INTEGER_64 && unsignedInteger64Token_ <= UINT32_MAX);
558 if (type_ == INTEGER_32)
560 return integer32Token_;
562 else if (type_ == INTEGER_64)
564 return integer64Token_;
566 if (type_ == UNSIGNED_INTEGER_32)
568 return unsignedInteger32Token_;
570 else if (type_ == UNSIGNED_INTEGER_64)
572 return unsignedInteger64Token_;
584 (type_ == INTEGER_32 && integer32Token_ >= 0)
585 || (type_ == INTEGER_64 && integer64Token_ >= 0)
586 || type_ == UNSIGNED_INTEGER_32
587 || type_ == UNSIGNED_INTEGER_64;
592 if (type_ == INTEGER_32)
594 return integer32Token_;
596 else if (type_ == INTEGER_64)
598 return integer64Token_;
600 if (type_ == UNSIGNED_INTEGER_32)
602 return unsignedInteger32Token_;
604 else if (type_ == UNSIGNED_INTEGER_64)
606 return unsignedInteger64Token_;
621 && integer64Token_ >= int64_t(
labelMin)
622 && integer64Token_ <= int64_t(
labelMax)
625 type_ == UNSIGNED_INTEGER_32
626 && uint64_t(unsignedInteger32Token_) <= uint64_t(
labelMax)
629 type_ == UNSIGNED_INTEGER_64
630 && unsignedInteger64Token_ <= uint64_t(
labelMax)
636 if (type_ == INTEGER_32)
638 return integer32Token_;
640 else if (type_ == INTEGER_64)
642 return integer64Token_;
644 if (type_ == UNSIGNED_INTEGER_32)
646 return unsignedInteger32Token_;
648 else if (type_ == UNSIGNED_INTEGER_64)
650 return unsignedInteger64Token_;
664 && integer32Token_ >= 0
668 && integer64Token_ >= 0
669 && uint64_t(integer64Token_) <= uint64_t(
uLabelMax)
671 || type_ == UNSIGNED_INTEGER_32
673 type_ == UNSIGNED_INTEGER_64
674 && unsignedInteger64Token_ <= uint64_t(
uLabelMax)
680 if (type_ == INTEGER_32)
682 return integer32Token_;
684 else if (type_ == INTEGER_64)
686 return integer64Token_;
688 if (type_ == UNSIGNED_INTEGER_32)
690 return unsignedInteger32Token_;
692 else if (type_ == UNSIGNED_INTEGER_64)
694 return unsignedInteger64Token_;
705 return (type_ == FLOAT_SCALAR);
710 if (type_ == FLOAT_SCALAR)
712 return floatScalarToken_;
716 parseError(
"floatScalar");
724 return (type_ == DOUBLE_SCALAR);
729 if (type_ == DOUBLE_SCALAR)
731 return doubleScalarToken_;
735 parseError(
"doubleScalar");
743 return (type_ == LONG_DOUBLE_SCALAR);
748 if (type_ == LONG_DOUBLE_SCALAR)
750 return *longDoubleScalarTokenPtr_;
754 parseError(
"longDoubleScalar");
763 type_ == FLOAT_SCALAR
764 || type_ == DOUBLE_SCALAR
765 || type_ == LONG_DOUBLE_SCALAR;
770 if (type_ == FLOAT_SCALAR)
772 return floatScalarToken_;
774 else if (type_ == DOUBLE_SCALAR)
776 return doubleScalarToken_;
778 else if (type_ == LONG_DOUBLE_SCALAR)
780 return *longDoubleScalarTokenPtr_;
793 || type_ == INTEGER_64
794 || type_ == UNSIGNED_INTEGER_32
795 || type_ == UNSIGNED_INTEGER_64
801 if (type_ == INTEGER_32)
803 return integer32Token_;
805 else if (type_ == INTEGER_64)
807 return integer64Token_;
809 if (type_ == UNSIGNED_INTEGER_32)
811 return unsignedInteger32Token_;
813 else if (type_ == UNSIGNED_INTEGER_64)
815 return unsignedInteger64Token_;
819 return scalarToken();
823 parseError(
"number (label or scalar)");
830 return (type_ == COMPOUND);
835 if (type_ == COMPOUND)
837 return *compoundTokenPtr_;
841 parseError(
"compound");
842 return *compoundTokenPtr_;
898 verbatimStringTokenPtr_ =
910 case UNSIGNED_INTEGER_32:
914 case UNSIGNED_INTEGER_64:
926 case LONG_DOUBLE_SCALAR:
927 longDoubleScalarTokenPtr_ =
933 compoundTokenPtr_->refCount::operator++();
940 lineNumber_ = t.lineNumber_;
947 punctuationToken_ =
p;
954 wordTokenPtr_ = wPtr;
959 operator=(
new word(w));
965 type_ = FUNCTIONNAME;
966 functionNameTokenPtr_ = fnPtr;
978 variableTokenPtr_ = vPtr;
990 stringTokenPtr_ = sPtr;
995 operator=(
new string(
s));
1001 type_ = VERBATIMSTRING;
1002 verbatimStringTokenPtr_ = vsPtr;
1014 integer32Token_ = l;
1021 integer64Token_ = l;
1027 type_ = UNSIGNED_INTEGER_32;
1028 unsignedInteger32Token_ = l;
1034 type_ = UNSIGNED_INTEGER_64;
1035 unsignedInteger64Token_ = l;
1041 type_ = FLOAT_SCALAR;
1042 floatScalarToken_ =
s;
1048 type_ = DOUBLE_SCALAR;
1049 doubleScalarToken_ =
s;
1055 type_ = LONG_DOUBLE_SCALAR;
1063 compoundTokenPtr_ = cPtr;
1069 if (type_ != t.type_)
1094 case VERBATIMSTRING:
1103 case UNSIGNED_INTEGER_32:
1106 case UNSIGNED_INTEGER_64:
1115 case LONG_DOUBLE_SCALAR:
1118 *longDoubleScalarTokenPtr_,
1134 return (type_ == PUNCTUATION && punctuationToken_ ==
p);
1139 return (type_ == WORD && wordToken() == w);
1144 return (type_ == FUNCTIONNAME && functionNameToken() == fn);
1149 return (type_ == VARIABLE && variableToken() == v);
1154 return (type_ == STRING && stringToken() ==
s);
1159 return (type_ == VERBATIMSTRING && verbatimStringToken() == vs);
1164 return (type_ == INTEGER_32 && integer32Token_ == l);
1169 return (type_ == INTEGER_64 && integer64Token_ == l);
1174 return (type_ == UNSIGNED_INTEGER_32 && unsignedInteger32Token_ == l);
1179 return (type_ == UNSIGNED_INTEGER_64 && unsignedInteger64Token_ == l);
1184 return (type_ == FLOAT_SCALAR &&
equal(floatScalarToken_,
s));
1189 return (type_ == DOUBLE_SCALAR &&
equal(doubleScalarToken_,
s));
1196 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
A class for handling keywords in dictionaries.
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 isUnsignedInteger32() const
bool isPunctuation() const
punctuationToken punctuationToken_
bool isDoubleScalar() const
tokenType
Enumeration defining the types of token.
bool isLongDoubleScalar() const
verbatimString * verbatimStringTokenPtr_
int32_t integer32Token() const
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
bool isUnsignedInteger64() const
uint32_t unsignedInteger32Token() const
void operator=(const token &)
int64_t integer64Token() const
const string & anyStringToken() const
bool isFunctionName() const
const compound & compoundToken() const
bool isFloatScalar() const
uLabel uLabelToken() const
bool operator!=(const token &) const
uint64_t unsignedInteger64Token() const
doubleScalar doubleScalarToken() const
doubleScalar doubleScalarToken_
const word & wordToken() const
scalar scalarToken() const
const verbatimString & verbatimStringToken() const
uint32_t unsignedInteger32Token_
bool operator==(const token &) const
uint64_t unsignedInteger64Token_
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(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), lagrangian::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.
static const uLabel uLabelMax
float floatScalar
Float precision floating point scalar type.
uintWM_LABEL_SIZE_t uLabel
A uLabel is an uint32_t or uint64_t as specified by the pre-processor macro WM_LABEL_SIZE.
static const label labelMax
long double longDoubleScalar
Lang double precision floating point scalar type.
static const label labelMin