package sugarVisitors;
import java.util.HashSet;
import ast.ErrorMessage;
import ast.Expression;
import ast.Expression.*;
public class CollectDeclaredVars extends CloneVisitor {
HashSet<String> xs=new HashSet<String>();
public static HashSet<String> of(Expression e){
CollectDeclaredVars cdv=new CollectDeclaredVars();
e.accept(cdv);
return cdv.xs;
}
//Note: this also work for with is and es!
@Override
protected ast.Ast.VarDecXE liftVarDecXE(ast.Ast.VarDecXE d) {
assert d.getX().length()>0;
//if(d.getX().length()>0){xs.add(d.getX());}
xs.add(d.getX());
return super.liftVarDecXE(d);
}
@Override
protected Expression.Catch liftK(Expression.Catch k){
if(k.getX().length()>0){xs.add(k.getX());}
return super.liftK(k);
}
public Expression visit(ClassB s) {
return s;
}
}