Limit Node.String() to print itself, no children

This commit is contained in:
Vytautas Šaltenis 2016-07-27 09:44:24 +03:00
parent 89653c9927
commit a4f1e5c786
1 changed files with 10 additions and 4 deletions

14
node.go
View File

@ -128,6 +128,16 @@ func NewNode(typ NodeType) *Node {
}
}
func (n *Node) String() string {
ellipsis := ""
snippet := n.Literal
if len(snippet) > 16 {
snippet = snippet[:16]
ellipsis = "..."
}
return fmt.Sprintf("%s: '%s%s'", n.Type, snippet, ellipsis)
}
func (n *Node) unlink() {
if n.Prev != nil {
n.Prev.Next = n.Next
@ -310,10 +320,6 @@ func (nw *NodeWalker) resumeAt(node *Node, entering bool) (*Node, bool) {
return nw.next()
}
func (ast *Node) String() string {
return dumpString(ast)
}
func dump(ast *Node) {
fmt.Println(dumpString(ast))
}