checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / StringWalker.java
1 package edu.berkeley.sbp.misc;
2 import edu.berkeley.sbp.*;
3 import edu.berkeley.sbp.util.*;
4 import java.io.*;
5 import java.util.*;
6 import java.lang.reflect.*;
7
8 public abstract class StringWalker extends TreeWalker<String> {
9     public void   walk(String tag) { }
10     public Object walk(Tree<String> tree) {
11         Object o = tree.head();
12         if (!(o instanceof String)) o = null; /* FIXME */
13         walk((String)o);
14         return super.walk(tree);
15     }
16     public Object walk(String tag, Object[] tokens) {
17         if (tokens.length==0) return tag;
18         if (tag==null) return null;
19         throw new Error("walker error: couldn't walk tag " + tag + " with " + tokens.length + " children");
20     }
21 }