fix javadoc generation
[sbp.git] / src / edu / berkeley / sbp / misc / TreeWalker.java
1 // Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
2
3 package edu.berkeley.sbp.misc;
4 import java.io.*;
5 import java.util.*;
6 import java.lang.reflect.*;
7 import java.lang.ref.*;
8 import edu.berkeley.sbp.*;
9 import edu.berkeley.sbp.*;
10 import edu.berkeley.sbp.util.*;
11 import edu.berkeley.sbp.*;
12
13 public abstract class TreeWalker<T> {
14     public abstract Object walk(T head, Object[] args);
15     public Object walk(Tree<T> tree, int idx) {
16         return walk(tree.child(idx));
17     }
18     public void walkChildren(Tree<T> tree) {
19         for(Tree<T> child : tree.children()) walk(child);        
20     }
21     public Object walk(Tree<T> tree) {
22         Object[] args = new Object[tree.size()];
23         int i = 0;
24         for(Tree<T> child : tree.children()) args[i++] = walk(child);
25         args = Reflection.lub(args);
26         return walk(tree.head(), args);
27     }
28 }