summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2006-10-08 21:07:23 +0000
committermichelou <michelou@epfl.ch>2006-10-08 21:07:23 +0000
commitc986830f3c13ac70829430f84115b18f229579f9 (patch)
tree0c2e34b88d4ffc9058de8361afc9c23949bbbcf5 /src/compiler
parentfbc3a71a1e0d5cea346f0832202bbca8523f5aba (diff)
downloadscala-c986830f3c13ac70829430f84115b18f229579f9.tar.gz
scala-c986830f3c13ac70829430f84115b18f229579f9.tar.bz2
scala-c986830f3c13ac70829430f84115b18f229579f9.zip
modified escapedStringValue and cleaned up comm...
modified escapedStringValue and cleaned up comments
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/SubComponent.scala31
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreePrinters.scala2
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Tokens.scala155
-rw-r--r--src/compiler/scala/tools/nsc/doc/DocGenerator.scala4
-rw-r--r--src/compiler/scala/tools/nsc/doc/style.css8
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Constants.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Names.scala12
-rw-r--r--src/compiler/scala/tools/nsc/transform/InfoTransform.scala17
-rw-r--r--src/compiler/scala/tools/nsc/transform/Transform.scala17
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala34
-rw-r--r--src/compiler/scala/tools/nsc/util/Set.scala10
-rw-r--r--src/compiler/scala/tools/nsc/util/SourceFile.scala35
12 files changed, 211 insertions, 116 deletions
diff --git a/src/compiler/scala/tools/nsc/SubComponent.scala b/src/compiler/scala/tools/nsc/SubComponent.scala
index 556b6538ad..7b7cce7f11 100644
--- a/src/compiler/scala/tools/nsc/SubComponent.scala
+++ b/src/compiler/scala/tools/nsc/SubComponent.scala
@@ -1,29 +1,40 @@
-/* NSC -- new scala compiler
- * Copyright 2005 LAMP/EPFL
+/* NSC -- new Scala compiler
+ * Copyright 2005-2006 LAMP/EPFL
* @author Martin Odersky
*/
// $Id$
-package scala.tools.nsc;
-/** An nsc sub-component.
+package scala.tools.nsc
+
+/** <p>
+ * An nsc sub-component.
+ * </p>
+ * <dl class="subclasses">
+ * <dt><b>Direct Known Subclasses:</b></dt>
+ * <dd>
+ * <a href="transform/Transform.html" target="contentFrame">Transform</a>
+ * </dd>
+ * </dl>
+ *
+ * @author Martin Odersky
*/
abstract class SubComponent {
/** The global environment; overridden by instantiation in Global. */
- val global: Global;
+ val global: Global
/** The name of the phase */
- val phaseName: String;
+ val phaseName: String
/** New flags defined by the phase which are not valid before */
- def phaseNewFlags: long = 0;
+ def phaseNewFlags: long = 0
/** The phase factory */
- def newPhase(prev: Phase): Phase;
+ def newPhase(prev: Phase): Phase
/** A standard phase template */
abstract class StdPhase(prev: Phase) extends global.GlobalPhase(prev) {
- def name = phaseName;
- override def newFlags = phaseNewFlags;
+ def name = phaseName
+ override def newFlags = phaseNewFlags
}
}
diff --git a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
index 1acc8e8c20..916736bda4 100644
--- a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
@@ -111,7 +111,7 @@ abstract class TreePrinters {
case Triple(tp, args, nvPairs) =>
str.append(tp.toString())
if (!args.isEmpty)
- str.append(args.mkString("(", ",", ")"))
+ str.append(args.map(.escapedStringValue).mkString("(", ",", ")"))
if (!nvPairs.isEmpty)
for (val Pair(Pair(name, value), index) <- nvPairs.zipWithIndex) {
if (index > 0)
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Tokens.scala b/src/compiler/scala/tools/nsc/ast/parser/Tokens.scala
index 620c04dc45..7aaae5e07a 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Tokens.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Tokens.scala
@@ -1,98 +1,99 @@
-/* NSC -- new scala compiler
- * Copyright 2005 LAMP/EPFL
+/* NSC -- new Scala compiler
+ * Copyright 2005-2006 LAMP/EPFL
* @author Martin Odersky
*/
// $Id$
-package scala.tools.nsc.ast.parser;
+
+package scala.tools.nsc.ast.parser
object Tokens {
/** special tokens */
- final val EMPTY = -3;
- final val UNDEF = -2;
- final val ERROR = -1;
- final val EOF = 0;
+ final val EMPTY = -3
+ final val UNDEF = -2
+ final val ERROR = -1
+ final val EOF = 0
/** literals */
- final val CHARLIT = 1;
- final val INTLIT = 2;
- final val LONGLIT = 3;
- final val FLOATLIT = 4;
- final val DOUBLELIT = 5;
- final val STRINGLIT = 6;
- final val SYMBOLLIT = 7;
+ final val CHARLIT = 1
+ final val INTLIT = 2
+ final val LONGLIT = 3
+ final val FLOATLIT = 4
+ final val DOUBLELIT = 5
+ final val STRINGLIT = 6
+ final val SYMBOLLIT = 7
/** identifiers */
- final val IDENTIFIER = 10;
- final val BACKQUOTED_IDENT = 11;
+ final val IDENTIFIER = 10
+ final val BACKQUOTED_IDENT = 11
/** keywords */
- final val IF = 20;
- final val FOR = 21;
- final val ELSE = 22;
- final val THIS = 23;
- final val NULL = 24;
- final val NEW = 25;
- final val WITH = 26;
- final val SUPER = 27;
- final val CASE = 28;
- final val CASECLASS = 29;
- final val CASEOBJECT = 30;
- final val VAL = 31;
- final val ABSTRACT = 32;
- final val FINAL = 33;
- final val PRIVATE = 34;
- final val PROTECTED = 35;
- final val OVERRIDE = 36;
- final val IMPLICIT = 37;
- final val VAR = 38;
- final val DEF = 39;
- final val TYPE = 40;
- final val EXTENDS = 41;
- final val TRUE = 42;
- final val FALSE = 43;
- final val OBJECT = 44;
- final val CLASS = 45;
+ final val IF = 20
+ final val FOR = 21
+ final val ELSE = 22
+ final val THIS = 23
+ final val NULL = 24
+ final val NEW = 25
+ final val WITH = 26
+ final val SUPER = 27
+ final val CASE = 28
+ final val CASECLASS = 29
+ final val CASEOBJECT = 30
+ final val VAL = 31
+ final val ABSTRACT = 32
+ final val FINAL = 33
+ final val PRIVATE = 34
+ final val PROTECTED = 35
+ final val OVERRIDE = 36
+ final val IMPLICIT = 37
+ final val VAR = 38
+ final val DEF = 39
+ final val TYPE = 40
+ final val EXTENDS = 41
+ final val TRUE = 42
+ final val FALSE = 43
+ final val OBJECT = 44
+ final val CLASS = 45
- final val IMPORT = 46;
- final val PACKAGE = 47;
- final val YIELD = 48;
- final val DO = 49;
- final val TRAIT = 50;
- final val SEALED = 51;
- final val THROW = 52;
- final val TRY = 53;
- final val CATCH = 54;
- final val FINALLY = 55;
- final val WHILE = 56;
- final val RETURN = 57;
- final val MATCH = 58;
- final val REQUIRES = 59;
+ final val IMPORT = 46
+ final val PACKAGE = 47
+ final val YIELD = 48
+ final val DO = 49
+ final val TRAIT = 50
+ final val SEALED = 51
+ final val THROW = 52
+ final val TRY = 53
+ final val CATCH = 54
+ final val FINALLY = 55
+ final val WHILE = 56
+ final val RETURN = 57
+ final val MATCH = 58
+ final val REQUIRES = 59
/** special symbols */
- final val COMMA = 61;
- final val SEMI = 62;
- final val DOT = 63;
- final val USCORE = 64;
- final val COLON = 65;
- final val EQUALS = 66;
- final val LARROW = 67;
- final val ARROW = 68;
- final val NEWLINE = 69;
- final val SUBTYPE = 70;
- final val SUPERTYPE = 71;
- final val HASH = 72;
- final val AT = 73;
- final val VIEWBOUND = 74;
+ final val COMMA = 61
+ final val SEMI = 62
+ final val DOT = 63
+ final val USCORE = 64
+ final val COLON = 65
+ final val EQUALS = 66
+ final val LARROW = 67
+ final val ARROW = 68
+ final val NEWLINE = 69
+ final val SUBTYPE = 70
+ final val SUPERTYPE = 71
+ final val HASH = 72
+ final val AT = 73
+ final val VIEWBOUND = 74
/** parenthesis */
- final val LPAREN = 90;
- final val RPAREN = 91;
- final val LBRACKET = 92;
- final val RBRACKET = 93;
- final val LBRACE = 94;
- final val RBRACE = 95;
+ final val LPAREN = 90
+ final val RPAREN = 91
+ final val LBRACKET = 92
+ final val RBRACKET = 93
+ final val LBRACE = 94
+ final val RBRACE = 95
/** XML mode */
- final val XMLSTART = 96;
+ final val XMLSTART = 96
}
diff --git a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala
index 4be668d950..f7d39e2305 100644
--- a/src/compiler/scala/tools/nsc/doc/DocGenerator.scala
+++ b/src/compiler/scala/tools/nsc/doc/DocGenerator.scala
@@ -251,7 +251,7 @@ abstract class DocGenerator extends Models {
val Triple(tpe, args, nvPairs) = attr
val name = aref(urlFor(tpe.symbol), contentFrame, tpe.toString)
if (!args.isEmpty)
- buf.append(args.mkString("(", ",", ")"))
+ buf.append(args.map(.escapedStringValue).mkString("(", ",", ")"))
if (!nvPairs.isEmpty)
for (val Pair(Pair(name, value), index) <- nvPairs.zipWithIndex) {
if (index > 0)
@@ -263,7 +263,7 @@ abstract class DocGenerator extends Models {
var res: NodeSeq = Text("[")
val attrs = tree.symbol.attributes
for (val i <- attrs.indices) {
- if (i > 0) res = res.concat(Text(","))
+ if (i > 0) res = res.concat(Text("," + LINE_SEPARATOR))
res = res.concat(attrFor(attrs(i)))
}
br(res.concat(Text("]")))
diff --git a/src/compiler/scala/tools/nsc/doc/style.css b/src/compiler/scala/tools/nsc/doc/style.css
index 5fecb9014e..b05acc5f5b 100644
--- a/src/compiler/scala/tools/nsc/doc/style.css
+++ b/src/compiler/scala/tools/nsc/doc/style.css
@@ -40,6 +40,14 @@ div.page-title {
text-align: center;
}
+dl.subclasses {
+ margin:0 0 0 -20px;
+}
+
+dl.subclasses dd {
+ margin:0 0 0 20px;
+}
+
span.entity {
color: #ff6666;
}
diff --git a/src/compiler/scala/tools/nsc/symtab/Constants.scala b/src/compiler/scala/tools/nsc/symtab/Constants.scala
index ab2c58cdbd..75d781df72 100644
--- a/src/compiler/scala/tools/nsc/symtab/Constants.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Constants.scala
@@ -205,7 +205,7 @@ trait Constants requires SymbolTable {
tag match {
case NullTag => "null"
case StringTag => "\"" + escape(stringValue) + "\""
- case ClassTag => signature(typeValue) + ".class"
+ case ClassTag => "classOf[" + signature(typeValue) + "]"
case CharTag => escape("\'" + charValue + "\'")
case LongTag => longValue.toString() + "L"
case _ => value.toString()
diff --git a/src/compiler/scala/tools/nsc/symtab/Names.scala b/src/compiler/scala/tools/nsc/symtab/Names.scala
index e7f61614b8..41ccd953df 100644
--- a/src/compiler/scala/tools/nsc/symtab/Names.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Names.scala
@@ -9,6 +9,16 @@ package scala.tools.nsc.symtab
import scala.tools.nsc.util.NameTransformer
import scala.tools.util.UTF8Codec
+/** <p>
+ * The class <code>Names</code> ...
+ * </p>
+ * <dl class="subclasses">
+ * <dt><b>Direct Known Subclasses:</b></dt>
+ * <dd>
+ * <a href="SymbolTable.html" target="contentFrame">SymbolTable</a>
+ * </dd>
+ * </dl>
+ */
class Names {
// Operations -------------------------------------------------------------
@@ -119,7 +129,7 @@ class Names {
// Classes ----------------------------------------------------------------------
- /** The name class */
+ /** The name class. */
abstract class Name(index: int, len: int) extends Function1[int, char] {
/** Index into name table */
diff --git a/src/compiler/scala/tools/nsc/transform/InfoTransform.scala b/src/compiler/scala/tools/nsc/transform/InfoTransform.scala
index f9a53419df..9f46da68a9 100644
--- a/src/compiler/scala/tools/nsc/transform/InfoTransform.scala
+++ b/src/compiler/scala/tools/nsc/transform/InfoTransform.scala
@@ -6,8 +6,21 @@
package scala.tools.nsc.transform
-/** A base class for transforms.
- * A transform contains a compiler phase which applies a tree transformer.
+/** <p>
+ * A base class for transforms.
+ * A transform contains a compiler phase which applies a tree transformer.
+ * </p>
+ * <dl class="subclasses">
+ * <dt><b>Direct Known Subclasses:</b></dt>
+ * <dd>
+ * <a href="AddInterfaces.html" target="contentFrame">AddInterfaces</a>,
+ * <a href="ExplicitOuter.html" target="contentFrame">ExplicitOuter</a>,
+ * <a href="Flatten.html" target="contentFrame">Flatten</a>,
+ * <a href="LambdaLift.html" target="contentFrame">LambdaLift</a>,
+ * <a href="Mixin.html" target="contentFrame">Mixin</a>,
+ * <a href="UnCurry.html" target="contentFrame">UnCurry</a>
+ * </dd>
+ * </dl>
*/
abstract class InfoTransform extends Transform {
import global.{Symbol, Type, InfoTransformer, infoTransformers}
diff --git a/src/compiler/scala/tools/nsc/transform/Transform.scala b/src/compiler/scala/tools/nsc/transform/Transform.scala
index 9aefaf7a8d..1825438984 100644
--- a/src/compiler/scala/tools/nsc/transform/Transform.scala
+++ b/src/compiler/scala/tools/nsc/transform/Transform.scala
@@ -6,8 +6,21 @@
package scala.tools.nsc.transform;
-/** A base class for transforms.
- * A transform contains a compiler phase which applies a tree transformer.
+/** <p>
+ * A base class for transforms.
+ * A transform contains a compiler phase which applies a tree transformer.
+ * </p>
+ * <dl class="subclasses">
+ * <dt><b>Direct Known Subclasses:</b></dt>
+ * <dd>
+ * <a href="InfoTransform.html" target="contentFrame">CleanUp</a>,
+ * <a href="CleanUp.html" target="contentFrame">Constructors</a>,
+ * <a href="InfoTransform.html" target="contentFrame">InfoTransform</a>,
+ * <a href="LiftCode.html" target="contentFrame">LiftCode</a>,
+ * <a href="SampleTransform.html" target="contentFrame">SampleTransform</a>,
+ * <a href="TailCalls.html" target="contentFrame">TailCalls</a>
+ * </dd>
+ * </dl>
*
* @author Martin Odersky
* @version 1.0
diff --git a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
index e94edfecef..b098caabdf 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SyntheticMethods.scala
@@ -1,6 +1,6 @@
/* NSC -- new Scala compiler
* Copyright 2005-2006 LAMP/EPFL
- * @author
+ * @author Martin Odersky
*/
// $Id$
@@ -10,20 +10,34 @@ import symtab.Flags._
import util.FreshNameCreator
import scala.collection.mutable.ListBuffer
-/**
- * - caseArity, caseElement implementations added to case classes
- * - equals, and hashCode and toString methods are added to case classes,
- * unless they are defined in the class or a baseclass
- * different from java.lang.Object
- * - toString method is added to case objects,
- * unless they are defined in the class or a baseclass
- * different from java.lang.Object
-*/
+/** <ul>
+ * <li>
+ * <code>caseArity</code>, <code>caseElement</code> implementations added
+ * to case classes
+ * </li>
+ * <li>
+ * <code>equals</code>, <code>hashCode</code> and </code>toString</code>
+ * methods are added to case classes, unless they are defined in the
+ * class or a baseclass different from <code>java.lang.Object</code>
+ * </li>
+ * <li>
+ * <code>toString</code> method is added to case objects, unless they
+ * are defined in the class or a baseclass different from
+ * <code>java.lang.Object</code>
+ * </li>
+ * </ul>
+ */
trait SyntheticMethods requires Analyzer {
import global._ // the global environment
import definitions._ // standard classes and methods
import typer.{typed} // methods to type trees
+ /**
+ * @param templ ...
+ * @param clazz ...
+ * @param unit ...
+ * @return ...
+ */
def addSyntheticMethods(templ: Template, clazz: Symbol, unit: CompilationUnit): Template = {
def hasImplementation(name: Name): Boolean = {
diff --git a/src/compiler/scala/tools/nsc/util/Set.scala b/src/compiler/scala/tools/nsc/util/Set.scala
index 26305972d3..618497e9c2 100644
--- a/src/compiler/scala/tools/nsc/util/Set.scala
+++ b/src/compiler/scala/tools/nsc/util/Set.scala
@@ -6,7 +6,15 @@
package scala.tools.nsc.util
-/** A common class for lightweight sets.
+/** <p>
+ * A common class for lightweight sets.
+ * </p>
+ * <dl class="subclasses">
+ * <dt><b>Direct Known Subclasses:</b></dt>
+ * <dd>
+ * <a href="HashSet.html" target="contentFrame">HashSet</a>
+ * </dd>
+ * </dl>
*/
abstract class Set[T <: AnyRef] {
diff --git a/src/compiler/scala/tools/nsc/util/SourceFile.scala b/src/compiler/scala/tools/nsc/util/SourceFile.scala
index 6201ecfa99..8e25976782 100644
--- a/src/compiler/scala/tools/nsc/util/SourceFile.scala
+++ b/src/compiler/scala/tools/nsc/util/SourceFile.scala
@@ -13,11 +13,6 @@ package scala.tools.nsc.util
import scala.tools.nsc.io.{AbstractFile, VirtualFile}
-/** Uses positions that are offsets rather than line/column pairs.
- *
- * @author Sean McDirmid
- * @version 1.0
- */
object SourceFile {
val LF: Char = 0x0A
val FF: Char = 0x0C
@@ -26,7 +21,20 @@ object SourceFile {
def isLineBreak(c: Char) = c == LF || c == FF || c == CR || c == SU
}
-
+/** <p>
+ * Uses positions that are offsets rather than line/column pairs.
+ * </p>
+ * <dl class="subclasses">
+ * <dt><b>Direct Known Subclasses:</b></dt>
+ * <dd>
+ * <a href="CompoundSourceFile.html" target="contentFrame">CompoundSourceFile</a>,
+ * <a href="SourceFileFragment.html" target="contentFrame">SourceFileFragment</a>
+ * </dd>
+ * </dl>
+ *
+ * @author Sean McDirmid
+ * @version 1.0
+ */
class SourceFile(val file: AbstractFile, _content: Array[Char]) {
import SourceFile._
@@ -53,7 +61,8 @@ class SourceFile(val file: AbstractFile, _content: Array[Char]) {
new Position(this, lineToOffset(line) + column)
/** Map a position to a position in the underlying source file.
- * For regular source files, simply return the argument. */
+ * For regular source files, simply return the argument.
+ */
def positionInUltimateSource(position: Position) = position
// constants
@@ -141,7 +150,11 @@ class SourceFile(val file: AbstractFile, _content: Array[Char]) {
}
}
-/** A source file composed of multiple other source files. */
+/** A source file composed of multiple other source files.
+ *
+ * @author Sean McDirmid
+ * @version 1.0
+ */
class CompoundSourceFile(
name: String,
components: List[SourceFile],
@@ -149,7 +162,11 @@ class CompoundSourceFile(
extends SourceFile(name, contents)
{
/** The usual constructor. Specify a name for the compound file and
- * a list of component sources */
+ * a list of component sources.
+ *
+ * @param name ...
+ * @param components ...
+ */
def this(name: String, components: SourceFile*) = {
/* Note that the contents leaves off the final SU character
* of all components */