From e6bae8d916d976d227489fe0daa57586472c6c4e Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 20 Jul 2023 00:37:52 -0700 Subject: [PATCH] parser: keep seeking until eof --- parser/parser.go | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/parser/parser.go b/parser/parser.go index 635e727637..b8007c2a57 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -71,22 +71,16 @@ func scanModelfile(data []byte, atEOF bool) (advance int, token []byte, err erro if start := bytes.Index(data, []byte(`"""`)); start >= 0 && start < newline { end := bytes.Index(data[start+3:], []byte(`"""`)) if end < 0 { - return 0, nil, errors.New(`unterminated multiline string: """`) + if atEOF { + return 0, nil, errors.New(`unterminated multiline string: """`) + } else { + return 0, nil, nil + } } n := start + 3 + end + 3 return n, bytes.Replace(data[:n], []byte(`"""`), []byte(""), 2), nil } - if start := bytes.Index(data, []byte(`'''`)); start >= 0 && start < newline { - end := bytes.Index(data[start+3:], []byte(`'''`)) - if end < 0 { - return 0, nil, errors.New("unterminated multiline string: '''") - } - - n := start + 3 + end + 3 - return n, bytes.Replace(data[:n], []byte("'''"), []byte(""), 2), nil - } - return bufio.ScanLines(data, atEOF) }