1 package polyglot.ext.pao.extension;2 3 import polyglot.ast.Ext;4 import polyglot.ast.Node;5 import polyglot.ast.NodeFactory;6 import polyglot.ext.pao.types.PaoTypeSystem;7 8 /**9 * The <code>Ext</code> interface for the pao extension. The10 * <code>PaoExt</code> interface provides one additional method: 11 * {@link #rewrite(PaoTypeSystem, NodeFactory) rewrite(PaoTypeSystem, NodeFactory)}.12 */13 public interface PaoExt extends Ext {14 /**15 * Rewrites the <code>Node</code> associated with this <code>Ext</code>16 * object, to automatically box and unbox primitives.17 * 18 * @param ts The <code>PaoTypeSystem</code> instance.19 * @param nf The <code>NodeFactory</code> instance.20 * @return the result of rewriting the AST node to provide boxing and21 * unboxing.22 */23 public Node rewrite(PaoTypeSystem ts, NodeFactory nf);24 }25