diff --git a/headers/private/shared/ExpressionParser.h b/headers/private/shared/ExpressionParser.h index 95df720db4..b180b87e17 100644 --- a/headers/private/shared/ExpressionParser.h +++ b/headers/private/shared/ExpressionParser.h @@ -14,8 +14,6 @@ #include -class Tokenizer; - class ParseException { public: ParseException(const char* message, int32 position) @@ -35,10 +33,10 @@ class ParseException { }; struct Function; -struct Token; class MAPM; class ExpressionParser { + public: ExpressionParser(); ~ExpressionParser(); @@ -52,6 +50,10 @@ class ExpressionParser { int64 EvaluateToInt64(const char* expressionString); double EvaluateToDouble(const char* expressionString); + private: + struct Token; + class Tokenizer; + private: MAPM _ParseBinary(); MAPM _ParseSum(); diff --git a/src/kits/shared/ExpressionParser.cpp b/src/kits/shared/ExpressionParser.cpp index c49c67d3a2..b75c0e2c79 100644 --- a/src/kits/shared/ExpressionParser.cpp +++ b/src/kits/shared/ExpressionParser.cpp @@ -47,7 +47,7 @@ enum { TOKEN_END_OF_LINE }; -struct Token { +struct ExpressionParser::Token { Token() : string(""), type(TOKEN_NONE), @@ -89,7 +89,7 @@ struct Token { }; -class Tokenizer { +class ExpressionParser::Tokenizer { public: Tokenizer() : fString(""), @@ -594,7 +594,7 @@ ExpressionParser::_ParseFunction(const Token& token) if (strcmp("e", token.string.String()) == 0) return _ParseFactorial(MAPM(MM_E)); else if (strcasecmp("pi", token.string.String()) == 0 - || ((unsigned char)token.string.String()[0] == 0xCF + || ((unsigned char)token.string.String()[0] == 0xCF && (unsigned char)token.string.String()[1] == 0x80)) { // UTF-8 small greek letter PI return _ParseFactorial(MAPM(MM_PI));