Move Tokenizer/Token into ExpressionParser's namespace.
This commit is contained in:
@@ -14,8 +14,6 @@
|
|||||||
#include <String.h>
|
#include <String.h>
|
||||||
|
|
||||||
|
|
||||||
class Tokenizer;
|
|
||||||
|
|
||||||
class ParseException {
|
class ParseException {
|
||||||
public:
|
public:
|
||||||
ParseException(const char* message, int32 position)
|
ParseException(const char* message, int32 position)
|
||||||
@@ -35,10 +33,10 @@ class ParseException {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct Function;
|
struct Function;
|
||||||
struct Token;
|
|
||||||
class MAPM;
|
class MAPM;
|
||||||
|
|
||||||
class ExpressionParser {
|
class ExpressionParser {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ExpressionParser();
|
ExpressionParser();
|
||||||
~ExpressionParser();
|
~ExpressionParser();
|
||||||
@@ -52,6 +50,10 @@ class ExpressionParser {
|
|||||||
int64 EvaluateToInt64(const char* expressionString);
|
int64 EvaluateToInt64(const char* expressionString);
|
||||||
double EvaluateToDouble(const char* expressionString);
|
double EvaluateToDouble(const char* expressionString);
|
||||||
|
|
||||||
|
private:
|
||||||
|
struct Token;
|
||||||
|
class Tokenizer;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MAPM _ParseBinary();
|
MAPM _ParseBinary();
|
||||||
MAPM _ParseSum();
|
MAPM _ParseSum();
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ enum {
|
|||||||
TOKEN_END_OF_LINE
|
TOKEN_END_OF_LINE
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Token {
|
struct ExpressionParser::Token {
|
||||||
Token()
|
Token()
|
||||||
: string(""),
|
: string(""),
|
||||||
type(TOKEN_NONE),
|
type(TOKEN_NONE),
|
||||||
@@ -89,7 +89,7 @@ struct Token {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class Tokenizer {
|
class ExpressionParser::Tokenizer {
|
||||||
public:
|
public:
|
||||||
Tokenizer()
|
Tokenizer()
|
||||||
: fString(""),
|
: fString(""),
|
||||||
@@ -594,7 +594,7 @@ ExpressionParser::_ParseFunction(const Token& token)
|
|||||||
if (strcmp("e", token.string.String()) == 0)
|
if (strcmp("e", token.string.String()) == 0)
|
||||||
return _ParseFactorial(MAPM(MM_E));
|
return _ParseFactorial(MAPM(MM_E));
|
||||||
else if (strcasecmp("pi", token.string.String()) == 0
|
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)) {
|
&& (unsigned char)token.string.String()[1] == 0x80)) {
|
||||||
// UTF-8 small greek letter PI
|
// UTF-8 small greek letter PI
|
||||||
return _ParseFactorial(MAPM(MM_PI));
|
return _ParseFactorial(MAPM(MM_PI));
|
||||||
|
|||||||
Reference in New Issue
Block a user