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) { |