summaryrefslogtreecommitdiff
path: root/sources/scalac/PhaseRepository.java
blob: ee46ed032383226bc8de35f6cedede8dbec45570 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*     ____ ____  ____ ____  ______                                     *\
**    / __// __ \/ __// __ \/ ____/    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.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;

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