|
1 |
| -scala-parser-combinators [<img src="https://img.shields.io/travis/scala/scala-parser-combinators.svg"/>](https://travis-ci.org/scala/scala-parser-combinators) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-parser-combinators_2.11.svg?label=latest%20release%20for%202.11"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-parser-combinators_2.11) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-parser-combinators_2.12.svg?label=latest%20release%20for%202.12"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-parser-combinators_2.12) [](https://gitter.im/scala/scala-parser-combinators) |
2 |
| -======================== |
| 1 | +# scala-parser-combinators [<img src="https://img.shields.io/travis/scala/scala-parser-combinators.svg"/>](https://travis-ci.org/scala/scala-parser-combinators) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-parser-combinators_2.11.svg?label=latest%20release%20for%202.11"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-parser-combinators_2.11) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-parser-combinators_2.12.svg?label=latest%20release%20for%202.12"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-parser-combinators_2.12) [](https://gitter.im/scala/scala-parser-combinators) |
3 | 2 |
|
4 | 3 | ### Scala Standard Parser Combinator Library
|
5 | 4 |
|
@@ -29,24 +28,23 @@ To support multiple Scala versions, see the example in [scala/scala-module-depen
|
29 | 28 | import scala.util.parsing.combinator._
|
30 | 29 |
|
31 | 30 | case class WordFreq(word: String, count: Int) {
|
32 |
| - override def toString = "Word <" + word + "> " + |
33 |
| - "occurs with frequency " + count |
| 31 | + override def toString = s"Word <$word> occurs with frequency $count" |
34 | 32 | }
|
35 | 33 |
|
36 | 34 | class SimpleParser extends RegexParsers {
|
37 |
| - def word: Parser[String] = """[a-z]+""".r ^^ { _.toString } |
38 |
| - def number: Parser[Int] = """(0|[1-9]\d*)""".r ^^ { _.toInt } |
39 |
| - def freq: Parser[WordFreq] = word ~ number ^^ { case wd ~ fr => WordFreq(wd,fr) } |
| 35 | + def word: Parser[String] = """[a-z]+""".r ^^ { _.toString } |
| 36 | + def number: Parser[Int] = """(0|[1-9]\d*)""".r ^^ { _.toInt } |
| 37 | + def freq: Parser[WordFreq] = word ~ number ^^ { case wd ~ fr => WordFreq(wd,fr) } |
40 | 38 | }
|
41 | 39 |
|
42 | 40 | object TestSimpleParser extends SimpleParser {
|
43 |
| - def main(args: Array[String]) = { |
44 |
| - parse(freq, "johnny 121") match { |
45 |
| - case Success(matched,_) => println(matched) |
46 |
| - case Failure(msg,_) => println("FAILURE: " + msg) |
47 |
| - case Error(msg,_) => println("ERROR: " + msg) |
48 |
| - } |
| 41 | + def main(args: Array[String]) = { |
| 42 | + parse(freq, "johnny 121") match { |
| 43 | + case Success(matched,_) => println(matched) |
| 44 | + case Failure(msg,_) => println(s"FAILURE: $msg") |
| 45 | + case Error(msg,_) => println(s"ERROR: $msg") |
49 | 46 | }
|
| 47 | + } |
50 | 48 | }
|
51 | 49 | ```
|
52 | 50 |
|
|
0 commit comments