diff --git a/ast.go b/ast.go index 2899888..5394d80 100644 --- a/ast.go +++ b/ast.go @@ -83,8 +83,9 @@ func (self *ast) insert(tree, node *term) (root *term, err error) { if tree.isComplete() { var subRoot *term last := tree.removeLastChild() - subRoot, err = self.insert(last, node) - subRoot.setParent(tree) + if subRoot, err = self.insert(last, node); err == nil { + subRoot.setParent(tree) + } } else { node.setParent(tree) }