diff options
author | sbucher <sbucher@epfl.ch> | 2004-08-19 12:41:11 +0000 |
---|---|---|
committer | sbucher <sbucher@epfl.ch> | 2004-08-19 12:41:11 +0000 |
commit | c7ccac906aac92d890560756c61f1fde860264b4 (patch) | |
tree | 0e8f3d30c9fd481e0eaa3840415ca1eae8400027 | |
parent | e23a24bb9f8f72348aed27e6fee207bf4048b925 (diff) | |
download | scala-c7ccac906aac92d890560756c61f1fde860264b4.tar.gz scala-c7ccac906aac92d890560756c61f1fde860264b4.tar.bz2 scala-c7ccac906aac92d890560756c61f1fde860264b4.zip |
*** empty log message ***
-rw-r--r-- | sources/scala/xml/parsing/ParserFactory.scala | 25 |
1 files changed, 25 insertions, 0 deletions
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; + } + } + +} |