Let the scanner returned unsigned integers

- The scanner already recognized the u suffix for unsigned integers, but
  otherwise ignored it. Return it as a proper token.
This commit is contained in:
Randy Heit 2013-09-10 21:40:05 -05:00
commit 33344201fa
3 changed files with 15 additions and 3 deletions

View file

@ -530,8 +530,19 @@ bool FScanner::GetToken ()
else if (TokenType == TK_IntConst)
{
char *stopper;
Number = strtol(String, &stopper, 0);
Float = Number;
// Check for unsigned
if (String[StringLen - 1] == 'u' || String[StringLen - 1] == 'U' ||
String[StringLen - 2] == 'u' || String[StringLen - 2] == 'U')
{
TokenType = TK_UIntConst;
Number = strtoul(String, &stopper, 0);
Float = (unsigned)Number;
}
else
{
Number = strtol(String, &stopper, 0);
Float = Number;
}
}
else if (TokenType == TK_FloatConst)
{