29 lines
464 B
Go
29 lines
464 B
Go
![]() |
package treerack
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
type Node struct {
|
||
|
Name string
|
||
|
Nodes []*Node
|
||
|
From, To int
|
||
|
tokens []rune
|
||
|
}
|
||
|
|
||
|
func (n *Node) Tokens() []rune {
|
||
|
defer func() {
|
||
|
if err := recover(); err != nil {
|
||
|
println(len(n.tokens), n.From, n.To)
|
||
|
panic(err)
|
||
|
}
|
||
|
}()
|
||
|
return n.tokens
|
||
|
}
|
||
|
|
||
|
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])
|
||
|
}
|