package example.baum;
public class BaumSize extends BaumVisitor{
final BaumVisitor dies = this;
final LiBaumSize inner = new LiBaumSize();
public Integer size(Baum t){return t.visit(this);}
public Integer size(Li> xs){return xs.visit(inner);}
class LiBaumSize extends LiVisitor,Integer>{
public Integer eval(Empty> _){return 0;}
public Integer eval(Cons> xs){
return size(xs.getHead()) + size(xs.getTail());}
}
public Integer eval(Zweig x){
return 1+size(x.getChildren());}
public Integer eval(Leer _){return 0;}
}