diff options
author | Araq <rumpf_a@web.de> | 2012-07-02 08:49:38 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-07-02 08:49:38 +0200 |
commit | 2e2650c708e5ad163aac1be11e0e434cc3126e48 (patch) | |
tree | 9dd5e8080f861f53a7b3c84d12743d0b6948a833 /compiler | |
parent | dd97e00553884495c486a121bb71c49bc19c1271 (diff) | |
download | Nim-2e2650c708e5ad163aac1be11e0e434cc3126e48.tar.gz |
' is optional in type suffixes for numerical literals
Diffstat (limited to 'compiler')
-rwxr-xr-x | compiler/lexer.nim | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/lexer.nim b/compiler/lexer.nim index afa52d621..01d284692 100755 --- a/compiler/lexer.nim +++ b/compiler/lexer.nim @@ -266,7 +266,10 @@ proc GetNumber(L: var TLexer): TToken = result.literal = "" result.base = base10 # BUGFIX pos = L.bufpos # make sure the literal is correct for error messages: - matchUnderscoreChars(L, result, {'A'..'Z', 'a'..'z', '0'..'9'}) + if L.buf[pos] == '0' and L.buf[pos+1] in {'X', 'x'}: + matchUnderscoreChars(L, result, {'A'..'F', 'a'..'f', '0'..'9', 'X', 'x'}) + else: + matchUnderscoreChars(L, result, {'0'..'9', 'b', 'B', 'o', 'c', 'C'}) if (L.buf[L.bufpos] == '.') and (L.buf[L.bufpos + 1] in {'0'..'9'}): add(result.literal, '.') inc(L.bufpos) @@ -280,9 +283,9 @@ proc GetNumber(L: var TLexer): TToken = inc(L.bufpos) matchUnderscoreChars(L, result, {'0'..'9'}) endpos = L.bufpos - if L.buf[endpos] == '\'': + if L.buf[endpos] in {'\'', 'f', 'F', 'i', 'I', 'u', 'U'}: #matchUnderscoreChars(L, result, ['''', 'f', 'F', 'i', 'I', '0'..'9']); - inc(endpos) + if L.buf[endpos] == '\'': inc(endpos) L.bufpos = pos # restore position case L.buf[endpos] of 'f', 'F': |