diff options
author | Martin Odersky <odersky@gmail.com> | 2004-07-01 14:46:03 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2004-07-01 14:46:03 +0000 |
commit | 02f1b571ce849c6dac5ffcde0d2b199e43618100 (patch) | |
tree | e9fedfcd7687279262b33d868e0d562176f1a43b /sources/scalac/CompilationUnit.java | |
parent | 563faf882f28b8927089655d2ec14bddd8dbda3a (diff) | |
download | scala-02f1b571ce849c6dac5ffcde0d2b199e43618100.tar.gz scala-02f1b571ce849c6dac5ffcde0d2b199e43618100.tar.bz2 scala-02f1b571ce849c6dac5ffcde0d2b199e43618100.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/CompilationUnit.java')
-rw-r--r-- | sources/scalac/CompilationUnit.java | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/sources/scalac/CompilationUnit.java b/sources/scalac/CompilationUnit.java new file mode 100644 index 0000000000..44e131bed7 --- /dev/null +++ b/sources/scalac/CompilationUnit.java @@ -0,0 +1,89 @@ +/* ____ ____ ____ ____ ______ *\ +** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala ** +** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL ** +** /_____/\____/\___/\____/____/ ** +** ** +** $Id$ +\* */ + +package scalac; + +import scala.tools.util.Position; +import scala.tools.util.SourceFile; + +import scalac.ast.Tree; +import scalac.atree.ARepository; +import scalac.util.FreshNameCreator; +import java.util.HashMap; + + +/** A representation for a compilation unit in scala + * + * @author Matthias Zenger + * @version 1.0 + */ +public class CompilationUnit { + + /** the global compilation environment + */ + public final Global global; + + /** the associated source code file + */ + public final SourceFile source; + + /** does this unit come from the interpreter console + */ + public final boolean console; + + /** is this unit only there for mixin expansion? + */ + public final boolean mixinOnly; + + /** the fresh name creator + */ + public final FreshNameCreator fresh; + + /** the content of the compilation unit in tree form + */ + public Tree[] body; + public ARepository repository; + + public CompilationUnit(Global global, SourceFile source, + boolean console, boolean mixinOnly) { + this.global = global; + this.source = source; + this.console = console; + this.mixinOnly = mixinOnly; + this.fresh = new FreshNameCreator(); + } + + public CompilationUnit(Global global, SourceFile source, boolean console) { + this(global, source, console, false); + } + + /** return the position representing the given encoded position + */ + public Position position(int pos) { + return new Position(source, pos); + } + + /** issue an error in this compilation unit at a specific location + */ + public void error(int pos, String message) { + global.reporter.error(position(pos), message); + } + + /** issue a warning in this compilation unit at a specific location + */ + public void warning(int pos, String message) { + global.reporter.warning(position(pos), message); + } + + /** return a string representation + */ + public String toString() { + return source.toString(); + } + +} |