Fix trailing commas in arrays

This commit is contained in:
Thomas Pelletier
2021-03-28 00:04:25 -04:00
parent e5a091a092
commit 72c999ecbf
+13 -1
View File
@@ -380,6 +380,11 @@ func (p *parser) parseValArray(b []byte) (ast.Reference, []byte, error) {
}
}
// TOML allows trailing commas in arrays.
if len(b) > 0 && b[0] == ']' {
break
}
var valueRef ast.Reference
valueRef, b, err = p.parseVal(b)
if err != nil {
@@ -406,6 +411,7 @@ func (p *parser) parseValArray(b []byte) (ast.Reference, []byte, error) {
}
func (p *parser) parseOptionalWhitespaceCommentNewline(b []byte) ([]byte, error) {
for len(b) > 0 {
var err error
b = p.parseWhitespace(b)
if len(b) > 0 && b[0] == '#' {
@@ -414,11 +420,17 @@ func (p *parser) parseOptionalWhitespaceCommentNewline(b []byte) ([]byte, error)
return nil, err
}
}
if len(b) > 0 && (b[0] == '\n' || b[0] == '\r') {
if len(b) == 0 {
break
}
if b[0] == '\n' || b[0] == '\r' {
b, err = p.parseNewline(b)
if err != nil {
return nil, err
}
} else {
break
}
}
return b, nil
}