blob: e683e7072dde5db3b60be21eb813d4b700fc14e5 (
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
|
/* NSC -- new Scala compiler
* Copyright 2005-2007 LAMP/EPFL
* @author Martin Odersky
*/
// $Id$
package scala.tools.nsc
/** An nsc sub-component.
*
* @author Martin Odersky
*/
abstract class SubComponent {
/** The global environment; overridden by instantiation in Global. */
val global: Global
/** The name of the phase */
val phaseName: String
/** New flags defined by the phase which are not valid before */
def phaseNewFlags: Long = 0
/** The phase factory */
def newPhase(prev: Phase): Phase
/** The phase defined by this subcomponent. Can be called only after phase is installed by newPhase. */
// lazy val ownPhase: Phase = global.currentRun.phaseNamed(phaseName)
/** A standard phase template */
abstract class StdPhase(prev: Phase) extends global.GlobalPhase(prev) {
def name = phaseName
override def newFlags = phaseNewFlags
}
}
|