summaryrefslogblamecommitdiff
path: root/sources/scalac/PhaseRepository.java
blob: 4568d20bd71affc02b3d752860361d6ce43c468f (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14













                                                                          
                                          
                                          
                                                    
                                            
                                             

                                            
                                               
  
                                      
                                        
                                
  
                                      


















                                                                              

                                           
                                               
                                               





                                                            
              

                                         
              
                                       












                                                                              

                                        
                                            
                                            





                                                         
      

                                      
      
                                    



                                                                              
/*     ____ ____  ____ ____  ______                                     *\
**    / __// __ \/ __// __ \/ ____/    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.transformer.AddConstructorsPhase;
/*
import scalac.optimizer.OptimizePhase;
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;

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