Fix trailing commas in arrays

This commit is contained in:
Thomas Pelletier
2021-03-28 00:04:25 -04:00
parent e5a091a092
commit 72c999ecbf
+23 -11
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,18 +411,25 @@ func (p *parser) parseValArray(b []byte) (ast.Reference, []byte, error) {
}
func (p *parser) parseOptionalWhitespaceCommentNewline(b []byte) ([]byte, error) {
var err error
b = p.parseWhitespace(b)
if len(b) > 0 && b[0] == '#' {
_, b, err = scanComment(b)
if err != nil {
return nil, err
for len(b) > 0 {
var err error
b = p.parseWhitespace(b)
if len(b) > 0 && b[0] == '#' {
_, b, err = scanComment(b)
if err != nil {
return nil, err
}
}
}
if len(b) > 0 && (b[0] == '\n' || b[0] == '\r') {
b, err = p.parseNewline(b)
if err != nil {
return nil, err
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