diff --git a/src/include/wxml.h b/src/include/wxml.h index 1c2ba89..2532c60 100644 --- a/src/include/wxml.h +++ b/src/include/wxml.h @@ -424,12 +424,19 @@ namespace WXML class Token { + /** + * 内存结构: + * 00 00 00 00 标识type + * 00 00 00 00... 当标识为0时后面为需要的动态字符串tokenName + */ private: /* data */ + int type; + std::string tokenName; public: Token(/* args */); ~Token(); - static const char * GetTokenName(const char **a1); + const char * GetTokenName(); }; diff --git a/src/wxml/expr_lib/token.cpp b/src/wxml/expr_lib/token.cpp index 5f22c18..282b4a4 100644 --- a/src/wxml/expr_lib/token.cpp +++ b/src/wxml/expr_lib/token.cpp @@ -12,15 +12,13 @@ namespace WXML Token::~Token() { } - const char * Token::GetTokenName(const char **a1) + const char * Token::GetTokenName() { - const char *result; // eax - - result = *a1; - switch ( (unsigned int)*a1 ) + const char *result; + switch ( this->type ) { case 0u: - result = (const char *)(a1 + 1); + result = this->tokenName.c_str(); break; case 1u: result = "$DECIMAL";