summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsbucher <sbucher@epfl.ch>2004-08-19 12:41:11 +0000
committersbucher <sbucher@epfl.ch>2004-08-19 12:41:11 +0000
commitc7ccac906aac92d890560756c61f1fde860264b4 (patch)
tree0e8f3d30c9fd481e0eaa3840415ca1eae8400027
parente23a24bb9f8f72348aed27e6fee207bf4048b925 (diff)
downloadscala-c7ccac906aac92d890560756c61f1fde860264b4.tar.gz
scala-c7ccac906aac92d890560756c61f1fde860264b4.tar.bz2
scala-c7ccac906aac92d890560756c61f1fde860264b4.zip
*** empty log message ***
-rw-r--r--sources/scala/xml/parsing/ParserFactory.scala25
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;
+ }
+ }
+
+}