package polyglot.frontend;
import polyglot.ast.*;
import polyglot.frontend.*;
import polyglot.types.*;
import polyglot.util.*;
import polyglot.visit.*;
import polyglot.types.Package;
import java.io.*;
import java.util.*;
/** An output pass generates output code from the processed AST. */
public class OutputPass extends AbstractPass
{
protected Job job;
protected Translator translator;
/**
* Create a Translator. The output of the visitor is a collection of files
* whose names are added to the collection <code>outputFiles</code>.
*/
public OutputPass(Pass.ID id, Job job, Translator translator) {
super(id);
this.job = job;
this.translator = translator;
}
public boolean run() {
Node ast = job.ast();
if (ast == null) {
throw new InternalCompilerError("AST is null");
}
return translator.translate(ast);
}
}