From 7c574439453b88d328d975845c2e55499b56bf14 Mon Sep 17 00:00:00 2001 From: Adriaan Moors Date: Wed, 18 Jul 2007 21:55:59 +0000 Subject: added another example using the combinator pars... added another example using the combinator parsers, courtesy of Miles Sabin (slightly simplified/adapted to new combinators) --- docs/examples/parsing/lambda/Main.scala | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 docs/examples/parsing/lambda/Main.scala (limited to 'docs/examples/parsing/lambda/Main.scala') diff --git a/docs/examples/parsing/lambda/Main.scala b/docs/examples/parsing/lambda/Main.scala new file mode 100755 index 0000000000..c0453e75a8 --- /dev/null +++ b/docs/examples/parsing/lambda/Main.scala @@ -0,0 +1,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 + * + * (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) + } + } +} -- cgit v1.2.3