diff options
author | michelou <michelou@epfl.ch> | 2006-10-08 21:07:23 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2006-10-08 21:07:23 +0000 |
commit | c986830f3c13ac70829430f84115b18f229579f9 (patch) | |
tree | 0c2e34b88d4ffc9058de8361afc9c23949bbbcf5 /src/compiler | |
parent | fbc3a71a1e0d5cea346f0832202bbca8523f5aba (diff) | |
download | scala-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')
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 */ |