From c7ccac906aac92d890560756c61f1fde860264b4 Mon Sep 17 00:00:00 2001 From: sbucher Date: Thu, 19 Aug 2004 12:41:11 +0000 Subject: *** empty log message *** --- sources/scala/xml/parsing/ParserFactory.scala | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sources/scala/xml/parsing/ParserFactory.scala diff --git a/sources/scala/xml/parsing/ParserFactory.scala b/sources/scala/xml/parsing/ParserFactory.scala new file mode 100644 index 0000000000..95b734b3b3 --- /dev/null +++ b/sources/scala/xml/parsing/ParserFactory.scala @@ -0,0 +1,25 @@ +package scala.xml.parsing ; + +/** factory object to make construcing parsers from files,arrays,iterators... */ + +object ParserFactory { + + def make(handle:ConstructingHandler, input:java.io.File): ConstructingParser = { + val arr: Array[Byte] = new Array[Byte]( input.length().asInstanceOf[Int] ); + val is = new java.io.FileInputStream( input ); + is.read( arr ); + val s = new String(arr); + make( handle, Iterator.fromString(s) ); + } + + def make(theHandle:ConstructingHandler, input:Iterator[Char]): ConstructingParser = { + new ConstructingParser() { + val it = input; + override val handle = theHandle; + def nextch = { ch = it.next; pos = pos + 1; } + def init = { ch = it.next; pos = 0; } + override val preserveWS = true; + } + } + +} -- cgit v1.2.3