blob: 165e82b67079b99647bc3e9ec347f9cb8b2f27eb (
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
|
package examples.parsing.lambda
import scala.util.parsing.combinator.Parsers
import scala.util.parsing.input.StreamReader
import java.io.File
import java.io.FileInputStream
import java.io.InputStreamReader
/**
* Parser for an untyped lambda calculus
*
* Usage: scala examples.parsing.lambda.Main <file>
*
* (example files: see test/ *.kwi)
*
* @author Miles Sabin (adapted slightly by Adriaan Moors)
*/
object Main extends Application with TestParser
{
override def main(args: Array[String]) =
{
val in = StreamReader(new InputStreamReader(new FileInputStream(new File(args(0))), "ISO-8859-1"))
parse(in) match
{
case Success(term, _) =>
{
Console.println("Term: \n"+term)
}
case Failure(msg, remainder) => Console.println("Failure: "+msg+"\n"+"Remainder: \n"+remainder.pos.longString)
case Error(msg, remainder) => Console.println("Error: "+msg+"\n"+"Remainder: \n"+remainder.pos.longString)
}
}
}
|