From ddecf6008320f148b3e06ee76d4b81376546db98 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Sat, 27 Feb 2010 05:47:03 +0000 Subject: Some library reorganization I discussed with ma... Some library reorganization I discussed with martin. No review. --- src/library/scala/util/Sorting.scala | 45 ---------------------- .../util/parsing/combinator/lexical/Lexical.scala | 9 +++-- .../util/parsing/combinator/lexical/Scanners.scala | 9 +++-- .../parsing/combinator/lexical/StdLexical.scala | 9 +++-- .../syntactical/StandardTokenParsers.scala | 10 ++--- .../combinator/syntactical/StdTokenParsers.scala | 9 +++-- .../combinator/syntactical/TokenParsers.scala | 8 ++-- .../util/parsing/combinator/token/StdTokens.scala | 37 ++++++++++++++++++ .../util/parsing/combinator/token/Tokens.scala | 40 +++++++++++++++++++ .../scala/util/parsing/syntax/StdTokens.scala | 35 ----------------- src/library/scala/util/parsing/syntax/Tokens.scala | 38 ------------------ .../scala/util/parsing/syntax/package.scala | 19 +++++++++ 12 files changed, 125 insertions(+), 143 deletions(-) create mode 100644 src/library/scala/util/parsing/combinator/token/StdTokens.scala create mode 100644 src/library/scala/util/parsing/combinator/token/Tokens.scala delete mode 100644 src/library/scala/util/parsing/syntax/StdTokens.scala delete mode 100644 src/library/scala/util/parsing/syntax/Tokens.scala create mode 100644 src/library/scala/util/parsing/syntax/package.scala diff --git a/src/library/scala/util/Sorting.scala b/src/library/scala/util/Sorting.scala index c79f5d2fd2..4189f2d912 100644 --- a/src/library/scala/util/Sorting.scala +++ b/src/library/scala/util/Sorting.scala @@ -530,51 +530,6 @@ object Sorting { } } } - - // for testing - def main(args: Array[String]) { - val tuples = Array( - (1, "one"), (1, "un"), (3, "three"), (2, "deux"), - (2, "two"), (0, "zero"), (3, "trois") - ) - val integers = Array( - 3, 4, 0, 4, 5, 0, 3, 3, 0 - ) - val doubles = Array( - 3.4054752250314283E9, - 4.9663151227666664E10, -// 0.0/0.0 is interpreted as Nan -// 0.0/0.0, - 4.9663171987125E10, - 5.785996973446602E9, -// 0.0/0.0, - 3.973064849653333E10, - 3.724737288678125E10 -// 0.0/0.0 - ) - val floats = Array( - 3.4054752250314283E9f, - 4.9663151227666664E10f, -// 0.0f/0.0f, - 4.9663171987125E10f, - 5.785996973446602E9f, -// 0.0f/0.0f, - 3.973064849653333E10f, - 3.724737288678125E10f -// 0.0f/0.0f - ) - Sorting.quickSort(tuples) - println(tuples.toList) - - Sorting quickSort integers - println(integers.toList) - - Sorting quickSort doubles - println(doubles.toList) - - Sorting quickSort floats - println(floats.toList) - } } /**

diff --git a/src/library/scala/util/parsing/combinator/lexical/Lexical.scala b/src/library/scala/util/parsing/combinator/lexical/Lexical.scala index fc3100053a..7a35bcad7d 100644 --- a/src/library/scala/util/parsing/combinator/lexical/Lexical.scala +++ b/src/library/scala/util/parsing/combinator/lexical/Lexical.scala @@ -9,11 +9,12 @@ // $Id$ -package scala.util.parsing.combinator.lexical -import scala.util.parsing.combinator._ +package scala.util.parsing +package combinator +package lexical -import scala.util.parsing.syntax._ -import scala.util.parsing.input.CharArrayReader.EofCh +import token._ +import input.CharArrayReader.EofCh /**

* This component complements the Scanners component with diff --git a/src/library/scala/util/parsing/combinator/lexical/Scanners.scala b/src/library/scala/util/parsing/combinator/lexical/Scanners.scala index 5b01049c91..96e9a76572 100644 --- a/src/library/scala/util/parsing/combinator/lexical/Scanners.scala +++ b/src/library/scala/util/parsing/combinator/lexical/Scanners.scala @@ -9,11 +9,12 @@ // $Id$ -package scala.util.parsing.combinator.lexical -import scala.util.parsing.combinator._ +package scala.util.parsing +package combinator +package lexical -import scala.util.parsing.syntax._ -import scala.util.parsing.input._ +import token._ +import input._ /**

* This component provides core functionality for lexical parsers. diff --git a/src/library/scala/util/parsing/combinator/lexical/StdLexical.scala b/src/library/scala/util/parsing/combinator/lexical/StdLexical.scala index 1bb3e7c83f..bc53e3731d 100644 --- a/src/library/scala/util/parsing/combinator/lexical/StdLexical.scala +++ b/src/library/scala/util/parsing/combinator/lexical/StdLexical.scala @@ -9,11 +9,12 @@ // $Id$ -package scala.util.parsing.combinator.lexical -import scala.util.parsing.combinator._ +package scala.util.parsing +package combinator +package lexical -import scala.util.parsing.syntax._ -import scala.util.parsing.input.CharArrayReader.EofCh +import token._ +import input.CharArrayReader.EofCh import collection.mutable.HashSet /**

diff --git a/src/library/scala/util/parsing/combinator/syntactical/StandardTokenParsers.scala b/src/library/scala/util/parsing/combinator/syntactical/StandardTokenParsers.scala index 85c0592572..31fa06035c 100644 --- a/src/library/scala/util/parsing/combinator/syntactical/StandardTokenParsers.scala +++ b/src/library/scala/util/parsing/combinator/syntactical/StandardTokenParsers.scala @@ -8,12 +8,12 @@ // $Id$ +package scala.util.parsing +package combinator +package syntactical -package scala.util.parsing.combinator.syntactical -import scala.util.parsing.combinator._ - -import scala.util.parsing.syntax._ -import scala.util.parsing.combinator.lexical.StdLexical +import token._ +import lexical.StdLexical /** This component provides primitive parsers for the standard tokens defined in `StdTokens'. * diff --git a/src/library/scala/util/parsing/combinator/syntactical/StdTokenParsers.scala b/src/library/scala/util/parsing/combinator/syntactical/StdTokenParsers.scala index 544c7f08d5..5b62280b78 100644 --- a/src/library/scala/util/parsing/combinator/syntactical/StdTokenParsers.scala +++ b/src/library/scala/util/parsing/combinator/syntactical/StdTokenParsers.scala @@ -9,11 +9,12 @@ // $Id$ -package scala.util.parsing.combinator.syntactical -import scala.util.parsing.combinator._ +package scala.util.parsing +package combinator +package syntactical -import scala.util.parsing.syntax._ -import scala.collection.mutable.HashMap +import token._ +import collection.mutable.HashMap /** This component provides primitive parsers for the standard tokens defined in `StdTokens'. * diff --git a/src/library/scala/util/parsing/combinator/syntactical/TokenParsers.scala b/src/library/scala/util/parsing/combinator/syntactical/TokenParsers.scala index ff2c552deb..ae4120b402 100644 --- a/src/library/scala/util/parsing/combinator/syntactical/TokenParsers.scala +++ b/src/library/scala/util/parsing/combinator/syntactical/TokenParsers.scala @@ -8,9 +8,9 @@ // $Id$ - -package scala.util.parsing.combinator.syntactical -import scala.util.parsing.combinator._ +package scala.util.parsing +package combinator +package syntactical /** This is the core component for token-based parsers. * @@ -18,7 +18,7 @@ import scala.util.parsing.combinator._ */ trait TokenParsers extends Parsers { /** Tokens is the abstract type of the `Token's consumed by the parsers in this component*/ - type Tokens <: scala.util.parsing.syntax.Tokens + type Tokens <: token.Tokens /** lexical is the component responsible for consuming some basic kind of * input (usually character-based) and turning it into the tokens diff --git a/src/library/scala/util/parsing/combinator/token/StdTokens.scala b/src/library/scala/util/parsing/combinator/token/StdTokens.scala new file mode 100644 index 0000000000..ea565235d1 --- /dev/null +++ b/src/library/scala/util/parsing/combinator/token/StdTokens.scala @@ -0,0 +1,37 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2006-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +package scala.util.parsing +package combinator +package token + +/** This component provides the standard `Token's for a simple, Scala-like language. + * + * @author Martin Odersky, Adriaan Moors + */ +trait StdTokens extends Tokens { + /** The class of keyword tokens */ + case class Keyword(chars: String) extends Token { + override def toString = "`"+chars+"'" + } + + /** The class of numeric literal tokens */ + case class NumericLit(chars: String) extends Token { + override def toString = chars + } + + /** The class of string literal tokens */ + case class StringLit(chars: String) extends Token { + override def toString = "\""+chars+"\"" + } + + /** The class of identifier tokens */ + case class Identifier(chars: String) extends Token { + override def toString = "identifier "+chars + } +} diff --git a/src/library/scala/util/parsing/combinator/token/Tokens.scala b/src/library/scala/util/parsing/combinator/token/Tokens.scala new file mode 100644 index 0000000000..b7a568efea --- /dev/null +++ b/src/library/scala/util/parsing/combinator/token/Tokens.scala @@ -0,0 +1,40 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2006-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +package scala.util.parsing +package combinator +package token + +/** This component provides the notion of `Token', the unit of information that is passed from lexical + * parsers in the `Lexical' component to the parsers in the `TokenParsers' component. + * + * @author Martin Odersky, Adriaan Moors + */ +trait Tokens { + /** Objects of this type are produced by a lexical parser or ``scanner'', and consumed by a parser + * {@see scala.util.parsing.combinator.syntactical.TokenParsers}. + */ + abstract class Token { + def chars: String + } + + /** A class of error tokens. Error tokens are used to communicate + * errors detected during lexical analysis + */ + case class ErrorToken(msg: String) extends Token { + def chars = "*** error: "+msg + } + + /** A class for end-of-file tokens */ + case object EOF extends Token { + def chars = "" + } + + /** This token is produced by a scanner {@see Scanner} when scanning failed. */ + def errorToken(msg: String): Token = new ErrorToken(msg) +} diff --git a/src/library/scala/util/parsing/syntax/StdTokens.scala b/src/library/scala/util/parsing/syntax/StdTokens.scala deleted file mode 100644 index 2321082b92..0000000000 --- a/src/library/scala/util/parsing/syntax/StdTokens.scala +++ /dev/null @@ -1,35 +0,0 @@ -/* __ *\ -** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2006-2010, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** -** /____/\___/_/ |_/____/_/ | | ** -** |/ ** -\* */ - -package scala.util.parsing.syntax - -/** This component provides the standard `Token's for a simple, Scala-like language. - * - * @author Martin Odersky, Adriaan Moors - */ -trait StdTokens extends Tokens { - /** The class of keyword tokens */ - case class Keyword(chars: String) extends Token { - override def toString = "`"+chars+"'" - } - - /** The class of numeric literal tokens */ - case class NumericLit(chars: String) extends Token { - override def toString = chars - } - - /** The class of string literal tokens */ - case class StringLit(chars: String) extends Token { - override def toString = "\""+chars+"\"" - } - - /** The class of identifier tokens */ - case class Identifier(chars: String) extends Token { - override def toString = "identifier "+chars - } -} diff --git a/src/library/scala/util/parsing/syntax/Tokens.scala b/src/library/scala/util/parsing/syntax/Tokens.scala deleted file mode 100644 index fdc6385b6e..0000000000 --- a/src/library/scala/util/parsing/syntax/Tokens.scala +++ /dev/null @@ -1,38 +0,0 @@ -/* __ *\ -** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2006-2010, LAMP/EPFL ** -** __\ \/ /__/ __ |/ /__/ __ | ** -** /____/\___/_/ |_/____/_/ | | ** -** |/ ** -\* */ - -package scala.util.parsing.syntax - -/** This component provides the notion of `Token', the unit of information that is passed from lexical - * parsers in the `Lexical' component to the parsers in the `TokenParsers' component. - * - * @author Martin Odersky, Adriaan Moors - */ -trait Tokens { - /** Objects of this type are produced by a lexical parser or ``scanner'', and consumed by a parser - * {@see scala.util.parsing.combinator.syntactical.TokenParsers}. - */ - abstract class Token { - def chars: String - } - - /** A class of error tokens. Error tokens are used to communicate - * errors detected during lexical analysis - */ - case class ErrorToken(msg: String) extends Token { - def chars = "*** error: "+msg - } - - /** A class for end-of-file tokens */ - case object EOF extends Token { - def chars = "" - } - - /** This token is produced by a scanner {@see Scanner} when scanning failed. */ - def errorToken(msg: String): Token = new ErrorToken(msg) -} diff --git a/src/library/scala/util/parsing/syntax/package.scala b/src/library/scala/util/parsing/syntax/package.scala new file mode 100644 index 0000000000..9dc909ca60 --- /dev/null +++ b/src/library/scala/util/parsing/syntax/package.scala @@ -0,0 +1,19 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2006-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +package scala.util.parsing + +import scala.util.parsing.combinator.token + +/** If deprecating the whole package worked, that's what would best + * be done, but it doesn't (yet) so it isn't. + */ +package object syntax { + @deprecated("Moved to scala.util.parsing.combinator.token") type Tokens = token.Tokens + @deprecated("Moved to scala.util.parsing.combinator.token") type StdTokens = token.StdTokens +} -- cgit v1.2.3