1 package polyglot.ast; 2 3 import polyglot.types.ProcedureInstance; 4 import polyglot.types.Flags; 5 import java.util.List; 6 7 /** 8 * A procedure declaration. A procedure is the supertype of methods and 9 * constructors. 10 */ 11 public interface ProcedureDecl extends CodeDecl 12 { 13 /** The procedure's flags. */ 14 Flags flags(); 15 16 /** The procedure's name. */ 17 String name(); 18 19 /** The procedure's formal parameters. 20 * @return A list of {@link polyglot.ast.Formal Formal}. 21 */ 22 List formals(); 23 24 /** The procedure's exception throw types. 25 * @return A list of {@link polyglot.ast.TypeNode TypeNode}. 26 */ 27 List throwTypes(); 28 29 /** 30 * The procedure type object. This field may not be valid until 31 * after signature disambiguation. 32 */ 33 ProcedureInstance procedureInstance(); 34 } 35