mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
MathParser: Add namespace blocks to avoid issues like 223231f
This commit is contained in:
parent
223231f96e
commit
9e5a1f4a8f
@ -22,6 +22,8 @@
|
||||
#include <stdint.h>
|
||||
#include "MathParser.h"
|
||||
|
||||
namespace MathParser {
|
||||
|
||||
static const double M_E = 2.7182818284590452354;
|
||||
static const double M_PI = 3.14159265358979323846;
|
||||
|
||||
@ -97,11 +99,11 @@ struct Function
|
||||
};
|
||||
|
||||
static double frac(double x);
|
||||
static double trunc2(double x);
|
||||
static double trunc(double x);
|
||||
static double rad(double deg);
|
||||
static double sgn(double x);
|
||||
static double neg(double x);
|
||||
static const WCHAR* round2(int paramcnt, double* args, double* result);
|
||||
static const WCHAR* round(int paramcnt, double* args, double* result);
|
||||
|
||||
static Function g_Functions[] =
|
||||
{
|
||||
@ -115,10 +117,10 @@ static Function g_Functions[] =
|
||||
{ L"log", &log10, 3 },
|
||||
{ L"sqrt", &sqrt, 4 },
|
||||
{ L"frac", &frac, 4 },
|
||||
{ L"trunc", &trunc2, 5 },
|
||||
{ L"trunc", &trunc, 5 },
|
||||
{ L"floor", &floor, 5 },
|
||||
{ L"ceil", &ceil, 4 },
|
||||
{ L"round", (SingleArgFunction)&round2, 5 },
|
||||
{ L"round", (SingleArgFunction)&round, 5 },
|
||||
{ L"asin", &asin, 4 },
|
||||
{ L"acos", &acos, 4 },
|
||||
{ L"rad", &rad, 3 },
|
||||
@ -137,7 +139,7 @@ static const BYTE FUNC_INVALID = UCHAR_MAX;
|
||||
static const Operation g_BrOp = { Operator::OpeningBracket, 0, 0};
|
||||
static const Operation g_NegOp = { Operator::SingleArgFunction, 18, 0 };
|
||||
|
||||
static const BYTE g_OpPriorities[Operator::Invalid] =
|
||||
static const BYTE g_OpPriorities[(uint8_t)Operator::Invalid] =
|
||||
{
|
||||
5, // Operator::ShiftLeft
|
||||
5, // Operator::ShiftRight
|
||||
@ -216,7 +218,7 @@ const WCHAR* eUnknFunc = L"\"%s\" is unknown";
|
||||
const WCHAR* eLogicErr = L"Logical expression error";
|
||||
const WCHAR* eInvPrmCnt = L"Invalid function parameter count";
|
||||
|
||||
const WCHAR* MathParser::Check(const WCHAR* formula)
|
||||
const WCHAR* Check(const WCHAR* formula)
|
||||
{
|
||||
int brackets = 0;
|
||||
|
||||
@ -237,7 +239,7 @@ const WCHAR* MathParser::Check(const WCHAR* formula)
|
||||
return (brackets != 0) ? eBrackets : nullptr;
|
||||
}
|
||||
|
||||
const WCHAR* MathParser::CheckedParse(const WCHAR* formula, double* result)
|
||||
const WCHAR* CheckedParse(const WCHAR* formula, double* result)
|
||||
{
|
||||
const WCHAR* error = Check(formula);
|
||||
if (!error)
|
||||
@ -247,7 +249,7 @@ const WCHAR* MathParser::CheckedParse(const WCHAR* formula, double* result)
|
||||
return error;
|
||||
}
|
||||
|
||||
const WCHAR* MathParser::Parse(
|
||||
const WCHAR* Parse(
|
||||
const WCHAR* formula, double* result, GetValueFunc getValue, void* getValueContext)
|
||||
{
|
||||
static WCHAR errorBuffer[128];
|
||||
@ -753,7 +755,7 @@ CharType GetCharType(WCHAR ch)
|
||||
return CharType::Unknown;
|
||||
}
|
||||
|
||||
bool MathParser::IsDelimiter(WCHAR ch)
|
||||
bool IsDelimiter(WCHAR ch)
|
||||
{
|
||||
CharType type = GetCharType(ch);
|
||||
return type == CharType::Symbol || type == CharType::Separator;
|
||||
@ -846,7 +848,7 @@ static double frac(double x)
|
||||
return modf(x, &y);
|
||||
}
|
||||
|
||||
static double trunc2(double x)
|
||||
static double trunc(double x)
|
||||
{
|
||||
return (x >= 0.0) ? floor(x) : ceil(x);
|
||||
}
|
||||
@ -867,7 +869,7 @@ static double neg(double x)
|
||||
}
|
||||
|
||||
// "Advanced" round function; second argument - sharpness
|
||||
static const WCHAR* round2(int paramcnt, double* args, double* result)
|
||||
static const WCHAR* round(int paramcnt, double* args, double* result)
|
||||
{
|
||||
int sharpness;
|
||||
if (paramcnt == 1)
|
||||
@ -905,3 +907,5 @@ static const WCHAR* round2(int paramcnt, double* args, double* result)
|
||||
*result = x;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace MathParser
|
||||
|
Loading…
Reference in New Issue
Block a user