package org.scribble.del.name; import org.scribble.ast.AstFactoryImpl; import org.scribble.ast.MessageSigNameDecl; import org.scribble.ast.ScribNode; import org.scribble.ast.context.ModuleContext; import org.scribble.ast.name.qualified.MessageSigNameNode; import org.scribble.del.ScribDelBase; import org.scribble.main.ScribbleException; import org.scribble.sesstype.kind.SigKind; import org.scribble.sesstype.name.MessageSigName; import org.scribble.visit.wf.NameDisambiguator; public class MessageSigNameNodeDel extends ScribDelBase { public MessageSigNameNodeDel() { } // Is this needed? Or DataTypeNodes always created from AmbigNameNode? (in this same pass) @Override public ScribNode leaveDisambiguation(ScribNode parent, ScribNode child, NameDisambiguator disamb, ScribNode visited) throws ScribbleException { if (parent instanceof MessageSigNameDecl) // Hacky? don't want to do for decl simplenames (generally, don't do if parent is namedeclnode) { return visited; } ModuleContext mc = disamb.getModuleContext(); MessageSigNameNode msnn = (MessageSigNameNode) visited; MessageSigName fullname = mc.getVisibleMessageSigNameFullName(msnn.toName()); return (MessageSigNameNode) AstFactoryImpl.FACTORY.QualifiedNameNode(msnn.getSource(), SigKind.KIND, fullname.getElements()); // Didn't keep original del } }