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)
|
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 {
|
func NewErrInvalidEscapeSequence(p *TextParser, seq string) *lexer.Error {
|
||||||
pos, s := p.Position(), p.String()
|
pos, s := p.Position(), p.String()
|
||||||
|
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ func lexQuotedStringEscaped(p *TextParser) (string, *lexer.Error) {
|
|||||||
var result strings.Builder
|
var result strings.Builder
|
||||||
|
|
||||||
// append what was accepted before the escape character
|
// append what was accepted before the escape character
|
||||||
_, _ = result.WriteString(p.String()[1:])
|
result.WriteString(p.String()[1:])
|
||||||
|
|
||||||
for {
|
for {
|
||||||
r, _, err := p.ReadRune()
|
r, _, err := p.ReadRune()
|
||||||
@@ -101,13 +101,14 @@ func lexQuotedStringEscaped(p *TextParser) (string, *lexer.Error) {
|
|||||||
default:
|
default:
|
||||||
// TODO: check valid escape character and
|
// TODO: check valid escape character and
|
||||||
// append to result
|
// append to result
|
||||||
|
p.UnreadRune()
|
||||||
s := string([]rune{r, r2})
|
s := string([]rune{r, r2})
|
||||||
err := NewErrInvalidEscapeSequence(p, s)
|
err := NewErrInvalidEscapeSequence(p, s)
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
// normal, append to result
|
// normal, append to result
|
||||||
_, _ = result.WriteRune(r)
|
result.WriteRune(r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user