40 char *endptr =
nullptr;
42 const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
44 const int64_t val = int64_t(parsed);
48 (parsed < INT64_MIN || parsed > INT64_MAX)
49 ? parsing::errorType::RANGE
50 : parsing::checkConversion(buf, endptr)
53 if (err != parsing::errorType::NONE)
56 << parsing::errorNames[err] <<
" '" << buf <<
"'"
66 char *endptr =
nullptr;
68 const intmax_t parsed = ::strtoimax(buf, &endptr, 10);
70 val = int64_t(parsed);
74 (parsed < INT64_MIN || parsed > INT64_MAX)
76 : (parsing::checkConversion(buf, endptr) == parsing::errorType::NONE)
97 <<
"Bad token - could not get int64"
110 if (prefix == token::PLUS || prefix == token::MINUS)
120 (prefix == token::MINUS)
129 (prefix == token::MINUS)
134 const intmax_t parsed = intmax_t(std::round(sval));
135 val = 0 + int64_t(parsed);
140 if (parsed < INT64_MIN || parsed > INT64_MAX)
143 <<
"Expected integral (int64), value out-of-range "
149 else if (1
e-4 < std::abs(sval - scalar(parsed)))
152 <<
"Expected integral (int64), found non-integral value "
162 <<
"Wrong token type - expected label (int64), found ";
163 if (prefix == token::PLUS || prefix == token::MINUS)
179 os.write(label(val));
185#if defined(__APPLE__)
188 return operator>>(is,
reinterpret_cast<int64_t&
>(val));
193 return (
os << int64_t(val));
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
virtual bool check(const char *operation) const
Check IOstream status for given operation.
void setBad()
Set stream state to be 'bad'.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A token holds an item read from Istream.
bool isPunctuation() const noexcept
Token is PUNCTUATION.
bool isLabel() const noexcept
Token is LABEL.
punctuationToken pToken() const
Return punctuation character.
bool good() const noexcept
True if token is not UNDEFINED or ERROR.
label labelToken() const
Return label value.
InfoProxy< token > info() const
Return info proxy for printing token information to a stream.
bool isScalar() const noexcept
Token is FLOAT or DOUBLE.
scalar scalarToken() const
Return float or double value.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
OBJstream os(runTime.globalPath()/outputName)
errorType
Enumeration for possible parsing error.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
Istream & operator>>(Istream &, directionInfo &)
errorManipArg< error, int > exit(error &err, const int errNo=1)
int64_t readInt64(Istream &is)
Read int64_t from stream.