45 value_type v3) {
return (Round(v1)==1) ? Round(v2) : Round(v3); }
67 return std::pow((
double)Round(v1), (
double)Round(v2));
84 for (
int i=0; i<a_iArgc; ++i)
94 throw ParserError(
_T(
"too few arguments for function min.") );
97 for (
int i=0; i<a_iArgc; ++i)
107 throw ParserError(
_T(
"too few arguments for function min."));
110 for (
int i=0; i<a_iArgc; ++i)
121 std::size_t pos = buf.find_first_not_of(
_T(
"0123456789"));
123 if (pos==std::string::npos)
133 stringstream_type::pos_type iEnd = stream.tellg();
135 iEnd = stream.str().length();
137 if (iEnd==(stringstream_type::pos_type)-1)
140 *a_iPos += (int)iEnd;
163 stringstream_type::pos_type nPos(0);
165 ss >> std::hex >> iVal;
168 if (nPos==(stringstream_type::pos_type)0)
171 *a_iPos += (int)(2 + nPos);
183 iBits(
sizeof(iVal)*8),
187 iVal |= (
int)(
a_szExpr[i+1]==
'1') << ((iBits-1)-i);
195 *
a_fVal = (unsigned)(iVal >> (iBits-i) );
206 ParserInt::ParserInt()
226 DefineNameChars(
_T(
"0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") );