treerack/node.go
2017-11-05 03:28:36 +01:00

39 lines
591 B
Go

package treerack
import "fmt"
type Node struct {
Name string
Nodes []*Node
From, To int
tokens []rune
}
func mapNodes(m func(n *Node) *Node, n []*Node) []*Node {
var nn []*Node
for i := range n {
nn = append(nn, m(n[i]))
}
return nn
}
func filterNodes(f func(n *Node) bool, n []*Node) []*Node {
var nn []*Node
for i := range n {
if f(n[i]) {
nn = append(nn, n[i])
}
}
return nn
}
func (n *Node) String() string {
return fmt.Sprintf("%s:%d:%d:%s", n.Name, n.From, n.To, n.Text())
}
func (n *Node) Text() string {
return string(n.tokens[n.From:n.To])
}