projects
/
sbp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added performance instrumentation (commented out)
[sbp.git]
/
src
/
edu
/
berkeley
/
sbp
/
misc
/
TreeWalker.java
diff --git
a/src/edu/berkeley/sbp/misc/TreeWalker.java
b/src/edu/berkeley/sbp/misc/TreeWalker.java
index
38cbb81
..
ff64c6a
100644
(file)
--- a/
src/edu/berkeley/sbp/misc/TreeWalker.java
+++ b/
src/edu/berkeley/sbp/misc/TreeWalker.java
@@
-1,3
+1,5
@@
+// Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
+
package edu.berkeley.sbp.misc;
import java.io.*;
import java.util.*;
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 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) {
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);
int i = 0;
for(Tree<T> child : tree.children()) args[i++] = walk(child);
args = Reflection.lub(args);