本文整理汇总了C++中Real::setCode方法的典型用法代码示例。如果您正苦于以下问题:C++ Real::setCode方法的具体用法?C++ Real::setCode怎么用?C++ Real::setCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Real
的用法示例。
在下文中一共展示了Real::setCode方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getNumber
Token* Scanner::getNumber(char *str, char *token_ptr)
{
/*
Write some code to Extract the number and convert it to a literal number.
*/
char ch = *line_ptr;
bool int_type = true;
do
{
*(token_ptr++) = ch;
ch = *(++line_ptr);
}
while (char_table[ch] == DIGIT);
if (ch == '.')
{
//Then we might have a dot or dotdot
ch = *(++line_ptr);
if (ch == '.')
{
//We have a dotdot, back up ptr and our number is an int.
int_type = true;
--line_ptr;
}
else
{
int_type = false;
*(token_ptr++) = '.';
//We have a floating point number
do
{
*(token_ptr++) = ch;
ch = *(line_ptr++);
}
while (char_table[ch] == DIGIT);
}
}
if (ch == 'e' || ch == 'E')
{
int_type = false;
*(token_ptr++) = ch;
ch = *(++line_ptr);
if (ch == '+' || ch == '-')
{
*(token_ptr++) = ch;
ch = *(++line_ptr);
}
do
{
*(token_ptr++) = ch;
ch = *(++line_ptr);
}
while (char_table[ch] == DIGIT);
}
*token_ptr = '\0';
if (int_type)
{
//tok->setLiteral((int)atoi(str)); //old remove
Integer* tok = new Integer((int)atoi(str));
tok->setCode(NUMBER);
return tok;
//tok->setType(INTEGER_LIT); //old remove
}
else
{
//tok->setLiteral((float)atof(str)); //old remove
Real* tok = new Real((float)atof(str));
tok->setCode(NUMBER);
tok->setTokenString(string(str));
return tok;
//tok->setType(REAL_LIT); //old remove
}
}