Skip to content

Commit 2b318ed

Browse files
committed
a
1 parent c9b83bb commit 2b318ed

File tree

1 file changed

+3
-15
lines changed

1 file changed

+3
-15
lines changed

src/kdl/lexer.nim

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -58,18 +58,6 @@ const
5858
0x0009, 0x0020, 0x00A0, 0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005,
5959
0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000,
6060
]
61-
escapeTable* = {
62-
'n': "\u000A", # Line Feed
63-
'r': "\u000D", # Carriage Return
64-
't': "\u0009", # Character Tabulation (Tab)
65-
'\\': "\u005C", # Reverse Solidus (Backslash)
66-
'/': "\u002F", # Solidus (Forwardslash)
67-
'"': "\u0022", # Quotation Mark (Double Quote)
68-
'b': "\u0008", # Backspace
69-
'f': "\u000C", # Form Feed
70-
'u': "", # Unicode
71-
}.toTable
72-
7361
equals = [0x003D, 0xFE66, 0xFF1D, 0x1F7F0]
7462
litMatches = {
7563
"*": tkStar,
@@ -391,7 +379,7 @@ proc tokenStringBody(lexer: var Lexer, raw = false) =
391379
continue
392380
393381
let next = lexer.peek(1)
394-
if next notin escapeTable:
382+
if next notin escapeTable and next != 'u':
395383
lexer.error &"Invalid escape '{next}'"
396384
397385
lexer.inc 2
@@ -417,7 +405,8 @@ proc tokenStringBody(lexer: var Lexer, raw = false) =
417405
elif endHashes > hashes:
418406
lexer.error &"Expected {hashes} hashes but found {endHashes}"
419407
else:
420-
lexer.inc r.size
408+
lexer.disallowedRunes()
409+
inc lexer
421410
422411
if not terminated:
423412
lexer.error "Unterminated string"
@@ -474,7 +463,6 @@ proc tokenIdent*() {.lexing: tkIdent.} =
474463
lexer.eof() or lexer.tokenWhitespace(addToStack = false) or
475464
lexer.tokenNewLine(addToStack = false) or lexer.peek() in nonIdenChars
476465
):
477-
lexer.setPos before
478466
return
479467
480468
block outer:

0 commit comments

Comments
 (0)