Better map ast printing

This commit is contained in:
Anton Medvedev
2024-04-13 10:08:48 +02:00
parent db0054ab6f
commit 2ff83e8042
2 changed files with 10 additions and 3 deletions
+7 -1
View File
@@ -202,5 +202,11 @@ func (n *MapNode) String() string {
}
func (n *PairNode) String() string {
return fmt.Sprintf("%s: %s", n.Key.String(), n.Value.String())
if str, ok := n.Key.(*StringNode); ok {
if utils.IsValidIdentifier(str.Value) {
return fmt.Sprintf("%s: %s", str.Value, n.Value.String())
}
return fmt.Sprintf("%q: %s", str.String(), n.Value.String())
}
return fmt.Sprintf("(%s): %s", n.Key.String(), n.Value.String())
}
+3 -2
View File
@@ -55,8 +55,8 @@ func TestPrint(t *testing.T) {
{`func(a)`, `func(a)`},
{`func(a, b)`, `func(a, b)`},
{`{}`, `{}`},
{`{a: b}`, `{"a": b}`},
{`{a: b, c: d}`, `{"a": b, "c": d}`},
{`{a: b}`, `{a: b}`},
{`{a: b, c: d}`, `{a: b, c: d}`},
{`[]`, `[]`},
{`[a]`, `[a]`},
{`[a, b]`, `[a, b]`},
@@ -71,6 +71,7 @@ func TestPrint(t *testing.T) {
{`a[1:]`, `a[1:]`},
{`a[:]`, `a[:]`},
{`(nil ?? 1) > 0`, `(nil ?? 1) > 0`},
{`{("a" + "b"): 42}`, `{("a" + "b"): 42}`},
}
for _, tt := range tests {