diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-12-13 10:07:09 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-12-13 10:07:09 -0800 |
commit | 1e530365fd3a1ab749091e7c56850405dc98aed1 (patch) | |
tree | e98e6e16c5f6fd003ef4c6581fa8a97f215ccfed /docs/examples/parsing/ListParser.scala | |
parent | d614965f083981817bfa08b84a07c069987d0a78 (diff) | |
parent | 3bfd83971ec48102fd1e711236f5a313c6a1ce3e (diff) | |
download | scala-1e530365fd3a1ab749091e7c56850405dc98aed1.tar.gz scala-1e530365fd3a1ab749091e7c56850405dc98aed1.tar.bz2 scala-1e530365fd3a1ab749091e7c56850405dc98aed1.zip |
Merge pull request #3265 from retronym/merge/2.10.x-to-master
Merge 2.10.x to master
Diffstat (limited to 'docs/examples/parsing/ListParser.scala')
-rw-r--r-- | docs/examples/parsing/ListParser.scala | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/docs/examples/parsing/ListParser.scala b/docs/examples/parsing/ListParser.scala deleted file mode 100644 index 59fc292c1d..0000000000 --- a/docs/examples/parsing/ListParser.scala +++ /dev/null @@ -1,33 +0,0 @@ -package examples.parsing - -import scala.util.parsing.combinator.{Parsers, ImplicitConversions, ~, mkTilde} -import scala.util.parsing.input.CharArrayReader - -object listParser { - abstract class Tree - case class Id(s: String) extends Tree - case class Num(n: Int) extends Tree - case class Lst(elems: List[Tree]) extends Tree - - import Character.{isLetter, isLetterOrDigit, isDigit} - def mkString(cs: List[Any]) = cs.mkString("") - - class ListParsers extends Parsers { - type Elem = Char - - lazy val ident = rep1(elem("letter", isLetter), elem("letter or digit", isLetterOrDigit)) ^^ {cs => Id(mkString(cs))} - lazy val number = chainl1(elem("digit", isDigit) ^^ (_ - '0'), success{(accum: Int, d: Int) => accum * 10 + d}) ^^ Num - lazy val list = '(' ~> repsep(expr, ',') <~ ')' ^^ Lst - lazy val expr: Parser[Tree] = list | ident | number - } - - def main(args: Array[String]) { - println( - if (args.length == 1) { - (new ListParsers).expr(new CharArrayReader(args(0).toCharArray())) - } - else - "usage: scala examples.parsing.listParser <list-string>" - ) - } -} |