package org.scribble.visit.util; import org.scribble.ast.ScribNode; import org.scribble.ast.context.ModuleContext; import org.scribble.main.Job; import org.scribble.main.ScribbleException; import org.scribble.sesstype.name.MessageId; public class MessageIdCollector extends NameCollector<MessageId<?>> { public MessageIdCollector(Job job, ModuleContext mcontext) { super(job, mcontext); } @Override protected final void offsetSubprotocolEnter(ScribNode parent, ScribNode child) throws ScribbleException { super.offsetSubprotocolEnter(parent, child); child.del().enterMessageIdCollection(parent, child, this); } @Override protected ScribNode offsetSubprotocolLeave(ScribNode parent, ScribNode child, ScribNode visited) throws ScribbleException { visited = visited.del().leaveMessageIdCollection(parent, child, this, visited); return super.offsetSubprotocolLeave(parent, child, visited); } }