summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-02-05 15:39:55 +0100
committerAraq <rumpf_a@web.de>2019-02-05 15:40:03 +0100
commit2e880c726b0072bec93e897e5caef8f5bbe3d6b6 (patch)
tree632e69344bb44062cbbe198d1a8f661ff36c7569 /compiler
parent7424ea4315469a6e4cf6a391495a7f95655886a0 (diff)
downloadNim-2e880c726b0072bec93e897e5caef8f5bbe3d6b6.tar.gz
fixes a lexer regression for 'nimble check'
Diffstat (limited to 'compiler')
-rw-r--r--compiler/lexer.nim7
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")