Browse Source

parser: keep seeking until eof

Jeffrey Morgan 1 năm trước cách đây
mục cha
commit
e6bae8d916
1 tập tin đã thay đổi với 5 bổ sung11 xóa
  1. 5 11
      parser/parser.go

+ 5 - 11
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)
 }