1 salcianu 1.1 // RoleInference.java, created Wed Apr 16 11:13:48 2003 by salcianu 2 salcianu 1.1 // Copyright (C) 2003 Alexandru Salcianu <salcianu@MIT.EDU> 3 salcianu 1.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 salcianu 1.1 package harpoon.Main; 5 salcianu 1.1 6 salcianu 1.1 import harpoon.Analysis.Quads.QuadClassHierarchy; 7 salcianu 1.1 8 salcianu 1.1 import harpoon.Util.Options.Option; 9 salcianu 1.1 10 salcianu 1.1 import java.util.List; 11 salcianu 1.1 import java.util.LinkedList; 12 salcianu 1.1 13 salcianu 1.1 /** 14 salcianu 1.1 * <code>RoleInference</code> 15 salcianu 1.1 * 16 salcianu 1.1 * @author Alexandru Salcianu <salcianu@MIT.EDU> 17 salcianu 1.2 * @version $Id: RoleInference.java,v 1.2 2003/04/22 00:09:57 salcianu Exp $ 18 salcianu 1.1 */ 19 salcianu 1.1 public class RoleInference extends CompilerStageEZ { 20 salcianu 1.1 21 salcianu 1.1 public RoleInference() { super("role-inference"); } 22 salcianu 1.1 23 salcianu 1.1 public List/*<Option>*/ getOptions() { 24 salcianu 1.1 List/*<Option>*/ opts = new LinkedList/*<Option>*/(); 25 salcianu 1.1 opts.add(new Option("e", "Role Inference") { 26 salcianu 1.1 public void action() { ROLE_INFER = true; } 27 salcianu 1.1 }); 28 salcianu 1.1 return opts; 29 salcianu 1.1 } 30 salcianu 1.1 31 salcianu 1.2 public boolean enabled() { return ROLE_INFER; } 32 salcianu 1.1 private static boolean ROLE_INFER = false; 33 salcianu 1.1 34 salcianu 1.1 protected void real_action() { 35 salcianu 1.1 hcf = harpoon.IR.Quads.QuadNoSSA.codeFactory(hcf); 36 salcianu 1.1 hcf = (new harpoon.Analysis.RoleInference.RoleInference 37 salcianu 1.1 (hcf, linker)).codeFactory(); 38 salcianu 1.1 classHierarchy = new QuadClassHierarchy(linker, roots, hcf); 39 salcianu 1.1 } 40 salcianu 1.1 41 salcianu 1.1 }