| 119 |
|
//} |
| 120 |
|
if (lookingAtDecimal((tokCommand & Token::negnums) != 0)) { |
| 121 |
|
float value = lexi_cast<float>(script.substr(ichToken, cchToken)); |
| 122 |
– |
std::cout << "encount an decimal: " << value << std::endl; |
| 122 |
|
ltoken.push_back(Token(Token::decimal, boost::any(value))); |
| 123 |
|
continue; |
| 124 |
|
} |
| 125 |
|
if (lookingAtInteger((tokCommand & Token::negnums) != 0)) { |
| 126 |
|
|
| 127 |
|
int val = lexi_cast<int>(script.substr(ichToken, cchToken)); |
| 129 |
– |
std::cout << "encount an integer: " << val << std::endl; |
| 128 |
|
ltoken.push_back(Token(Token::integer, boost::any(val))); |
| 129 |
|
continue; |
| 130 |
|
} |
| 242 |
|
previousCharBackslash = ch == '\\' ? !previousCharBackslash : false; |
| 243 |
|
} |
| 244 |
|
cchToken = ichT - ichToken; |
| 247 |
– |
|
| 245 |
|
|
| 249 |
– |
std::cout << "lookingAtString: encount " << script.substr(ichToken, cchToken) << std::endl; |
| 246 |
|
return true; |
| 247 |
|
} |
| 248 |
|
|
| 340 |
|
return false; |
| 341 |
|
} |
| 342 |
|
|
| 343 |
< |
// to support 1.ca, let's check the character after the dot |
| 344 |
< |
// to determine if it is an alpha |
| 349 |
< |
if (ch == '.' && (ichT + 1 < cchScript) && std::isalpha(script[ichT + 1])) { |
| 343 |
> |
// to support DMPC.1, let's check the character before the dot |
| 344 |
> |
if (ch == '.' && (ichT > 0) && std::isalpha(script[ichT - 1])) { |
| 345 |
|
return false; |
| 346 |
|
} |
| 347 |
|
|
| 428 |
|
|
| 429 |
|
cchToken = ichT - ichToken; |
| 430 |
|
|
| 436 |
– |
std::cout << "lookingAtLookupToken: encount " << script.substr(ichToken, cchToken) << std::endl; |
| 431 |
|
return true; |
| 432 |
|
} |
| 433 |
|
|
| 684 |
|
|
| 685 |
|
int tok = tokPeek(); |
| 686 |
|
|
| 687 |
< |
if (tok == Token::asterisk || tok == Token::identifier) { |
| 688 |
< |
name += boost::any_cast<std::string>(tokenNext().value); |
| 689 |
< |
|
| 687 |
> |
if (tok == Token::asterisk || tok == Token::identifier || tok == Token::integer) { |
| 688 |
> |
|
| 689 |
> |
Token token = tokenNext(); |
| 690 |
> |
if (token.value.type() == typeid(std::string)) { |
| 691 |
> |
name += boost::any_cast<std::string>(token.value); |
| 692 |
> |
} else if (token.value.type() == typeid(int)){ |
| 693 |
> |
int intVal = boost::any_cast<int>(token.value); |
| 694 |
> |
char buffer[255]; |
| 695 |
> |
sprintf(buffer,"%d", intVal); |
| 696 |
> |
name += buffer; /** @todo */ |
| 697 |
> |
//name += toString<int>(intVal); |
| 698 |
> |
} |
| 699 |
|
while(true){ |
| 700 |
|
tok = tokPeek(); |
| 701 |
|
switch (tok) { |