package org.scribble.visit.context;
import org.scribble.ast.ScribNode;
import org.scribble.ast.context.ModuleContext;
import org.scribble.main.Job;
import org.scribble.main.ScribbleException;
import org.scribble.visit.AstVisitor;
// Disambiguates ambiguous PayloadTypeOrParameter names and inserts implicit Scope names
public class ModuleContextBuilder extends AstVisitor
{
private ModuleContext mcontext; // The "root" Module context (not the "main" module)
public ModuleContextBuilder(Job job)
{
super(job);
}
@Override
protected void enter(ScribNode parent, ScribNode child) throws ScribbleException
{
child.del().enterModuleContextBuilding(parent, child, this);
}
@Override
protected ScribNode leave(ScribNode parent, ScribNode child, ScribNode visited) throws ScribbleException
{
return visited.del().leaveModuleContextBuilding(parent, child, this, visited);
}
public void setModuleContext(ModuleContext mcontext)
{
this.mcontext = mcontext;
}
public ModuleContext getModuleContext()
{
return this.mcontext;
}
}