summaryrefslogblamecommitdiff
path: root/sources/scala/tools/nsc/transform/Transform.scala
blob: bac282502839f0a511a7137253d0ed38f17f0c10 (plain) (tree)
1
2
3
4
5
6
7
8
9






                                  

                                                                           
   
                                               

                                  
                                                                                 
 
                                                                          

                                                   
                                                            


   
/* NSC -- new scala compiler
 * Copyright 2005 LAMP/EPFL
 * @author
 */
// $Id$
package scala.tools.nsc.transform;

/** A base class for transforms.
 *  A transform contains a compiler phase which applies a tree transformer.
 */
abstract class Transform extends SubComponent {

  protected val phaseName: String;
  protected def newTransformer(unit: global.CompilationUnit): global.Transformer;

  class Phase(prev: scala.tools.nsc.Phase) extends global.StdPhase(prev) {
    def name: String = phaseName;
    def apply(unit: global.CompilationUnit): unit =
      unit.body = newTransformer(unit).transform(unit.body);
  }
}