summaryrefslogtreecommitdiff
path: root/docs/examples/parsing/ListParser.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-12-13 10:07:09 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-12-13 10:07:09 -0800
commit1e530365fd3a1ab749091e7c56850405dc98aed1 (patch)
treee98e6e16c5f6fd003ef4c6581fa8a97f215ccfed /docs/examples/parsing/ListParser.scala
parentd614965f083981817bfa08b84a07c069987d0a78 (diff)
parent3bfd83971ec48102fd1e711236f5a313c6a1ce3e (diff)
downloadscala-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.scala33
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>"
- )
- }
-}