diff options
author | Araq <rumpf_a@web.de> | 2019-02-05 15:39:55 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2019-02-05 15:40:03 +0100 |
commit | 2e880c726b0072bec93e897e5caef8f5bbe3d6b6 (patch) | |
tree | 632e69344bb44062cbbe198d1a8f661ff36c7569 /compiler | |
parent | 7424ea4315469a6e4cf6a391495a7f95655886a0 (diff) | |
download | Nim-2e880c726b0072bec93e897e5caef8f5bbe3d6b6.tar.gz |
fixes a lexer regression for 'nimble check'
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/lexer.nim | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/lexer.nim b/compiler/lexer.nim index 06c318f94..5eaa4c09f 100644 --- a/compiler/lexer.nim +++ b/compiler/lexer.nim @@ -618,7 +618,7 @@ proc getNumber(L: var TLexer, result: var TToken) = tokenEnd(result, postPos-1) L.bufpos = postPos -proc handleHexChar(L: var TLexer, xi: var int; position: range[1..4]) = +proc handleHexChar(L: var TLexer, xi: var int; position: range[0..4]) = template invalid() = lexMessage(L, errGenerated, "expected a hex digit, but found: " & L.buf[L.bufpos] & @@ -635,8 +635,9 @@ proc handleHexChar(L: var TLexer, xi: var int; position: range[1..4]) = xi = (xi shl 4) or (ord(L.buf[L.bufpos]) - ord('A') + 10) inc(L.bufpos) of '"', '\'': - if position == 1: invalid() + if position <= 1: invalid() # do not progress the bufpos here. + if position == 0: inc(L.bufpos) else: invalid() # Need to progress for `nim check` @@ -745,7 +746,7 @@ proc getEscapedChar(L: var TLexer, tok: var TToken) = inc(L.bufpos) var start = L.bufpos while L.buf[L.bufpos] != '}': - handleHexChar(L, xi, 1) + handleHexChar(L, xi, 0) if start == L.bufpos: lexMessage(L, errGenerated, "Unicode codepoint cannot be empty") |