}
*/
public void walk(String tag) {
+ if (tag==null) return;
Member m = member(normalize(tag), 0, false);
if (m!=null) Reflection.fuzzyInvoke(target, m);
}
if (argo.length==0) return super.walk(tag, argo);
if (argo==null) return tag;
if (tag==null || "".equals(tag)) return argo;
- Member m = member(normalize(tag), argo.length, argo.length>0);
+ Member m = tag==null ? null : member(normalize(tag), argo.length, argo.length>0);
if (m==null) return super.walk(tag, argo);
//System.out.println("preparing to invoke method " + (m==null ? "null" : (m.toString())) + " for sequence " + (owner()+"."+tag));
if (m != null) return Reflection.fuzzyInvoke(target, m, argo);
//import org.ibex.io.*;
import edu.berkeley.sbp.*;
import edu.berkeley.sbp.misc.*;
+import edu.berkeley.sbp.util.*;
import java.util.*;
import java.io.*;
System.out.println(((Tree)new TibDoc().walk(f.expand1())).toPrettyString());
}
- public Tree<String> walk(Tree<String> tree) {
- String head = tree.head();
+ //public void header() { throw new Error(); }
+ public Object walk(String head, Object[] children) {
if ("stringify".equals(head)) {
StringBuffer ret = new StringBuffer();
- for(Tree<String> t : tree.child(0)) ret.append(t);
+ for(Tree<String> t : (Tree<String>)children[0]) ret.append(t);
return new Tree<String>(null, ret.toString());
}
- Tree<String>[] children = new Tree[tree.numChildren()];
- for(int i=0; i<children.length; i++) children[i] = walk(tree.child(i));
- return new Tree<String>(null, head, children);
+ if (children.length==0) return new Tree<String>(null, head, new Tree[0]);
+ return new Tree<String>(null, head, (Tree<String>[])Reflection.lub(children));
}