summaryrefslogblamecommitdiff
path: root/sources/scalac/PhaseRepository.java
blob: 4b7e3d43430a636f906002815c2bff367efff7d5 (plain) (tree)































































































                                                                              
/*     ____ ____  ____ ____  ______                                     *\
**    / __// __ \/ __// __ \/ ____/    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.AddInterfacesPhase;
import scalac.transformer.AddAccessorsPhase;
import scalac.transformer.ExpandMixinsPhase;
import scalac.transformer.ErasurePhase;
import scalac.optimizer.OptimizePhase;
import scalac.backend.AddConstructorsPhase;
import scalac.backend.msil.GenMSILPhase;
import scalac.backend.jvm.GenJVMPhase;
import scalac.jaco.GenJavaPhase;
*/

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;

    //########################################################################
}