Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b76b9044bf | |||
| 7968b06d7e | |||
| 8b0bb69809 | |||
| c9f75bf74a | |||
| 4336ced6a8 | |||
| 67a8fb1387 | |||
| fa8eec7aa1 | |||
| beb7c29fed | |||
| b16aa02140 |
@@ -49,9 +49,6 @@ func newErrIncomplete(p *TextParser, hint string) *lexer.Error {
|
||||
return NewError(pos, s, hint, fs.ErrInvalid)
|
||||
}
|
||||
|
||||
// NewErrInvalidEscapeSequence returns a [lexer.Error] indicating
|
||||
// the specified sequence, at the end of the accepted buffer,
|
||||
// is invalid
|
||||
func NewErrInvalidEscapeSequence(p *TextParser, seq string) *lexer.Error {
|
||||
pos, s := p.Position(), p.String()
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ func lexQuotedStringEscaped(p *TextParser) (string, *lexer.Error) {
|
||||
var result strings.Builder
|
||||
|
||||
// append what was accepted before the escape character
|
||||
_, _ = result.WriteString(p.String()[1:])
|
||||
result.WriteString(p.String()[1:])
|
||||
|
||||
for {
|
||||
r, _, err := p.ReadRune()
|
||||
@@ -101,13 +101,14 @@ func lexQuotedStringEscaped(p *TextParser) (string, *lexer.Error) {
|
||||
default:
|
||||
// TODO: check valid escape character and
|
||||
// append to result
|
||||
p.UnreadRune()
|
||||
s := string([]rune{r, r2})
|
||||
err := NewErrInvalidEscapeSequence(p, s)
|
||||
return "", err
|
||||
}
|
||||
default:
|
||||
// normal, append to result
|
||||
_, _ = result.WriteRune(r)
|
||||
result.WriteRune(r)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user