package polyglot.ext.pao.ast;
import polyglot.ast.Ext;
import polyglot.ext.jl.ast.AbstractExtFactory_c;
import polyglot.ext.pao.extension.PaoBinaryExt_c;
import polyglot.ext.pao.extension.PaoCastExt_c;
import polyglot.ext.pao.extension.PaoExt_c;
import polyglot.ext.pao.extension.PaoInstanceofExt_c;
/**
* Extension factory for the pao extension. The extension factory
* is responsible for creating <code>Ext</code> objects, and is
* used only by the <code>NodeFactory</code>.
*/
public class PaoExtFactory_c extends AbstractExtFactory_c {
PaoExtFactory_c() {
super();
}
/**
* @return the default Ext object for all AST
* nodes other than <code>InstanceOf</code>,
* <code>Cast</code> and <code>Binary</code>.
*/
public Ext extNodeImpl() {
return new PaoExt_c();
}
/**
* @see AbstractExtFactory_c#extInstanceofImpl()
*/
public Ext extInstanceofImpl() {
return new PaoInstanceofExt_c();
}
/**
* @see AbstractExtFactory_c#extCastImpl()
*/
public Ext extCastImpl() {
return new PaoCastExt_c();
}
/**
* @see AbstractExtFactory_c#extBinaryImpl()
*/
public Ext extBinaryImpl() {
return new PaoBinaryExt_c();
}
}