test: parsing inline table
This commit is contained in:
@@ -412,6 +412,73 @@ func TestParser_AST(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "inline table with leading comma",
|
||||||
|
input: "name = { first = \"Tom\"\n, last = \"Werner\" }",
|
||||||
|
ast: astNode{
|
||||||
|
Kind: KeyValue,
|
||||||
|
Children: []astNode{
|
||||||
|
{
|
||||||
|
Kind: InlineTable,
|
||||||
|
Children: []astNode{
|
||||||
|
{
|
||||||
|
Kind: KeyValue,
|
||||||
|
Children: []astNode{
|
||||||
|
{Kind: String, Data: []byte(`Tom`)},
|
||||||
|
{Kind: Key, Data: []byte(`first`)},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Kind: KeyValue,
|
||||||
|
Children: []astNode{
|
||||||
|
{Kind: String, Data: []byte(`Werner`)},
|
||||||
|
{Kind: Key, Data: []byte(`last`)},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Kind: Key,
|
||||||
|
Data: []byte(`name`),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "inline table with leading trailing comma",
|
||||||
|
input: "name = { first = \"Tom\"\n, }",
|
||||||
|
ast: astNode{
|
||||||
|
Kind: KeyValue,
|
||||||
|
Children: []astNode{
|
||||||
|
{
|
||||||
|
Kind: InlineTable,
|
||||||
|
Children: []astNode{
|
||||||
|
{
|
||||||
|
Kind: KeyValue,
|
||||||
|
Children: []astNode{
|
||||||
|
{Kind: String, Data: []byte(`Tom`)},
|
||||||
|
{Kind: Key, Data: []byte(`first`)},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Kind: Key,
|
||||||
|
Data: []byte(`name`),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "inline table comma at start is error",
|
||||||
|
input: "name = { , first = \"Tom\" }",
|
||||||
|
err: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "inline table double comma across newline is error",
|
||||||
|
input: "name = { first = \"Tom\",\n, last = \"Werner\" }",
|
||||||
|
err: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, e := range examples {
|
for _, e := range examples {
|
||||||
|
|||||||
Reference in New Issue
Block a user