1 package polyglot.ext.pao.ast;2 3 import polyglot.ast.Ext;4 import polyglot.ext.jl.ast.AbstractExtFactory_c;5 import polyglot.ext.pao.extension.PaoBinaryExt_c;6 import polyglot.ext.pao.extension.PaoCastExt_c;7 import polyglot.ext.pao.extension.PaoExt_c;8 import polyglot.ext.pao.extension.PaoInstanceofExt_c;9 10 /**11 * Extension factory for the pao extension. The extension factory 12 * is responsible for creating <code>Ext</code> objects, and is13 * used only by the <code>NodeFactory</code>. 14 */15 public class PaoExtFactory_c extends AbstractExtFactory_c {16 PaoExtFactory_c() {17 super();18 }19 20 /**21 * @return the default Ext object for all AST 22 * nodes other than <code>InstanceOf</code>, 23 * <code>Cast</code> and <code>Binary</code>.24 */25 public Ext extNodeImpl() {26 return new PaoExt_c();27 }28 29 /**30 * @see AbstractExtFactory_c#extInstanceofImpl()31 */32 public Ext extInstanceofImpl() {33 return new PaoInstanceofExt_c();34 }35 36 /**37 * @see AbstractExtFactory_c#extCastImpl()38 */39 public Ext extCastImpl() {40 return new PaoCastExt_c();41 }42 43 /**44 * @see AbstractExtFactory_c#extBinaryImpl()45 */46 public Ext extBinaryImpl() {47 return new PaoBinaryExt_c();48 }49 }50