package polyglot.visit;
import polyglot.ast.*;
import polyglot.frontend.*;
import polyglot.types.*;
import polyglot.util.*;
import polyglot.types.Package;
import polyglot.main.Report;
import java.io.IOException;
import java.util.*;
/** Visitor which traverses the AST constructing type objects. */
public class AddMemberVisitor extends ContextVisitor
{
public AddMemberVisitor(Job job, TypeSystem ts, NodeFactory nf) {
super(job, ts, nf);
}
protected NodeVisitor enterCall(Node n) throws SemanticException {
if (Report.should_report(Report.visit, 4))
Report.report(4, ">> AddMemberVisitor::enter " + n);
return n.del().addMembersEnter(this);
}
protected Node leaveCall(Node old, Node n, NodeVisitor v) throws SemanticException {
if (Report.should_report(Report.visit, 4))
Report.report(4, "<< AddMemberVisitor::leave " + n);
return n.del().addMembers((AddMemberVisitor) v);
}
}