X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FTreeWalker.java;h=b7356731ab5add7c0e90278aa97a2fbe47fd7056;hb=f09d2abb95f106197aea99c345282c3bf0cd3717;hp=74f3f07b90542933bdc8d7cd10ebca5b5f3410fa;hpb=c91766b1001c9ea6f1d3f3aa945c8b90bb4940f2;p=sbp.git diff --git a/src/edu/berkeley/sbp/misc/TreeWalker.java b/src/edu/berkeley/sbp/misc/TreeWalker.java index 74f3f07..b735673 100644 --- a/src/edu/berkeley/sbp/misc/TreeWalker.java +++ b/src/edu/berkeley/sbp/misc/TreeWalker.java @@ -10,11 +10,14 @@ import edu.berkeley.sbp.*; public abstract class TreeWalker { public abstract Object walk(T head, Object[] args); + public Object walk(Tree tree, int idx) { + return walk(tree.child(idx)); + } public void walkChildren(Tree tree) { for(Tree child : tree.children()) walk(child); } public Object walk(Tree tree) { - Object[] args = new Object[tree.numChildren()]; + Object[] args = new Object[tree.size()]; int i = 0; for(Tree child : tree.children()) args[i++] = walk(child); args = Reflection.lub(args);