Skip to content

Commit 3ea3be0

Browse files
authored
Fix unknown escape sequences in string literals to preserve backslash (#38)
1 parent c32dede commit 3ea3be0

6 files changed

Lines changed: 7 additions & 6 deletions

File tree

lexer/lexer.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,8 @@ func (l *Lexer) readString(quote rune) Item {
397397
val := hexValue(hex1)*16 + hexValue(hex2)
398398
sb.WriteByte(byte(val))
399399
default:
400-
// Unknown escape, just write the character after backslash
400+
// Unknown escape, preserve both the backslash and the character
401+
sb.WriteRune('\\')
401402
sb.WriteRune(l.ch)
402403
}
403404
l.readChar()
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"todo": true}
1+
{}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"todo": true}
1+
{}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"todo": true}
1+
{}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"todo": true}
1+
{}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"todo": true}
1+
{}

0 commit comments

Comments
 (0)