/* ____ ____ ____ ____ ______ *\ ** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala ** ** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL ** ** /_____/\____/\___/\____/____/ ** \* */ // $Id$ package scalac; import scalac.ast.parser.ParserPhase; import scalac.typechecker.AnalyzerPhase; import scalac.typechecker.RefCheckPhase; import scalac.transformer.UnCurryPhase; import scalac.transformer.TransMatchPhase; import scalac.transformer.LambdaLiftPhase; import scalac.transformer.ExplicitOuterClassesPhase; import scalac.transformer.AddAccessorsPhase; import scalac.transformer.AddInterfacesPhase; import scalac.transformer.ExpandMixinsPhase; import scalac.transformer.ErasurePhase; /* import scalac.optimizer.OptimizePhase; import scalac.backend.AddConstructorsPhase; import scalac.backend.msil.GenMSILPhase; import scalac.jaco.GenJavaPhase; import scalac.backend.jvm.GenJVMPhase; */ public class PhaseRepository { //######################################################################## // Private state public final PhaseDescriptor[] phases; //######################################################################## // Reporter constructors public PhaseRepository() { this.phases = new PhaseDescriptor[] { INITIAL = PhaseDescriptor.INITIAL, PARSER = new ParserPhase(), ANALYZER = new AnalyzerPhase(), REFCHECK = new RefCheckPhase(), UNCURRY = new UnCurryPhase(), /* OPTIMIZE = new OptimizePhase(), */ TRANSMATCH = new TransMatchPhase(), LAMBDALIFT = new LambdaLiftPhase(), EXPLICITOUTER = new ExplicitOuterClassesPhase(), ADDACCESSORS = new AddAccessorsPhase(), ADDINTERFACES = new AddInterfacesPhase(), EXPANDMIXIN = new ExpandMixinsPhase(), ERASURE = new ErasurePhase(), /* ADDCONSTRUCTORS = new AddConstructorsPhase(), GENMSIL = new GenMSILPhase(), GENJAVA = new GenJavaPhase(), GENJVM = new GenJVMPhase(), */ TERMINAL = PhaseDescriptor.TERMINAL, }; } //######################################################################## // Reporter interface public final PhaseDescriptor INITIAL; public final ParserPhase PARSER; public final AnalyzerPhase ANALYZER; public final RefCheckPhase REFCHECK; public final UnCurryPhase UNCURRY; /* public final OptimizePhase OPTIMIZE; */ public final TransMatchPhase TRANSMATCH; public final LambdaLiftPhase LAMBDALIFT; public final ExplicitOuterClassesPhase EXPLICITOUTER; public final AddAccessorsPhase ADDACCESSORS; public final AddInterfacesPhase ADDINTERFACES; public final ExpandMixinsPhase EXPANDMIXIN; public final ErasurePhase ERASURE; /* public final AddConstructorsPhase ADDCONSTRUCTORS; public final GenMSILPhase GENMSIL; public final GenJavaPhase GENJAVA; public final GenJVMPhase GENJVM; */ public final PhaseDescriptor TERMINAL; //######################################################################## }