57 lines
938 B
Go
57 lines
938 B
Go
package treerack
|
|
|
|
import "testing"
|
|
|
|
func TestKeyword(t *testing.T) {
|
|
const syntax = `
|
|
space:ws = " ";
|
|
keyword:kw = "foo" | "bar";
|
|
symbol:nokw:nows = [a-z]+;
|
|
doc:root = (keyword | symbol)*;
|
|
`
|
|
|
|
runTests(t, syntax, []testItem{{
|
|
title: "not keyword",
|
|
text: "baz",
|
|
ignorePosition: true,
|
|
node: &Node{
|
|
Name: "doc",
|
|
Nodes: []*Node{{
|
|
Name: "symbol",
|
|
}},
|
|
},
|
|
}, {
|
|
title: "keyword",
|
|
text: "foo",
|
|
ignorePosition: true,
|
|
node: &Node{
|
|
Name: "doc",
|
|
Nodes: []*Node{{
|
|
Name: "keyword",
|
|
}},
|
|
},
|
|
}, {
|
|
title: "mixed",
|
|
text: "foo bar baz bar foo baz bar",
|
|
ignorePosition: true,
|
|
node: &Node{
|
|
Name: "doc",
|
|
Nodes: []*Node{{
|
|
Name: "keyword",
|
|
}, {
|
|
Name: "keyword",
|
|
}, {
|
|
Name: "symbol",
|
|
}, {
|
|
Name: "keyword",
|
|
}, {
|
|
Name: "keyword",
|
|
}, {
|
|
Name: "symbol",
|
|
}, {
|
|
Name: "keyword",
|
|
}},
|
|
},
|
|
}})
|
|
}
|