blob: 4607dc884322c9bf775994f5d49d59c24598b041 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2006-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.util.parsing.combinator.testing
import scala.util.parsing.combinator._
import scala.util.parsing.combinator.lexical.Lexical
import scala.util.parsing.combinator.syntactical.TokenParsers
/** Facilitates testing a given parser on various input strings.
*
* Example use:
* {{{
* val syntactic = new MyParsers
* }}}
* and
* {{{
* val parser = syntactic.term
* }}}
* (If `MyParsers` extends [[scala.util.parsing.combinator.syntactical.TokenParsers]]
* with a parser called `term`.)
*
* @author Martin Odersky
* @author Adriaan Moors
*/
abstract class Tester {
val syntactic: TokenParsers { val lexical: Lexical }
val parser: syntactic.Parser[Any]
/** Scans a String (using a `syntactic.lexical.Scanner`), parses it using
* `phrase(parser)`, and prints the input and the parsed result to the
* console.
*/
def test(in: String) {
Console.println("\nin : "+in)
Console.println(syntactic.phrase[Any](parser)(new syntactic.lexical.Scanner(in)))
}
}
|