treerack/sexpr_test.go

72 lines
1.1 KiB
Go
Raw Normal View History

2017-06-25 17:51:08 +02:00
package parse
import "testing"
func TestSExpr(t *testing.T) {
test(t, "sexpr.parser", "s-expression", []testItem{{
2017-06-25 17:51:08 +02:00
msg: "number",
text: "42",
nodes: []*Node{{
Name: "number",
}},
ignorePosition: true,
}, {
msg: "string",
text: "\"foo\"",
nodes: []*Node{{
Name: "string",
}},
ignorePosition: true,
}, {
msg: "symbol",
text: "foo",
nodes: []*Node{{
Name: "symbol",
}},
ignorePosition: true,
}, {
msg: "nil",
text: "()",
nodes: []*Node{{
Name: "list",
}},
ignorePosition: true,
}, {
msg: "list",
text: "(foo bar baz)",
nodes: []*Node{{
Name: "list",
Nodes: []*Node{{
Name: "symbol",
}, {
Name: "symbol",
}, {
Name: "symbol",
}},
}},
ignorePosition: true,
}, {
msg: "embedded list",
text: "(foo (bar (baz)) qux)",
nodes: []*Node{{
Name: "list",
Nodes: []*Node{{
Name: "symbol",
}, {
Name: "list",
Nodes: []*Node{{
Name: "symbol",
}, {
Name: "list",
Nodes: []*Node{{
Name: "symbol",
}},
}},
}, {
Name: "symbol",
}},
}},
ignorePosition: true,
}})
}