copyright notices/updates
[sbp.git] / src / edu / berkeley / sbp / misc / TreeWalker.java
index 38cbb81..aeec51a 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
+
 package edu.berkeley.sbp.misc;
 import java.io.*;
 import java.util.*;
@@ -10,8 +12,14 @@ import edu.berkeley.sbp.*;
 
 public abstract class TreeWalker<T> {
     public abstract Object walk(T head, Object[] args);
+    public Object walk(Tree<T> tree, int idx) {
+        return walk(tree.child(idx));
+    }
+    public void walkChildren(Tree<T> tree) {
+        for(Tree<T> child : tree.children()) walk(child);        
+    }
     public Object walk(Tree<T> tree) {
-        Object[] args = new Object[tree.numChildren()];
+        Object[] args = new Object[tree.size()];
         int i = 0;
         for(Tree<T> child : tree.children()) args[i++] = walk(child);
         args = Reflection.lub(args);