From e90524b7715b249359b36412e0e20430b8ea118e Mon Sep 17 00:00:00 2001 From: buraq Date: Thu, 27 May 2004 09:04:40 +0000 Subject: move to lib --- sources/scala/tools/dtd2scala/regexp/Alt.scala | 4 -- sources/scala/tools/dtd2scala/regexp/Eps.scala | 3 - sources/scala/tools/dtd2scala/regexp/Node.scala | 3 - sources/scala/tools/dtd2scala/regexp/PCDATA_.scala | 3 - sources/scala/tools/dtd2scala/regexp/Parser.scala | 64 ---------------------- sources/scala/tools/dtd2scala/regexp/RegExp.scala | 15 ----- sources/scala/tools/dtd2scala/regexp/Scanner.scala | 59 -------------------- sources/scala/tools/dtd2scala/regexp/Seq.scala | 3 - sources/scala/tools/dtd2scala/regexp/Star.scala | 3 - sources/scala/tools/dtd2scala/regexp/Tokens.scala | 32 ----------- 10 files changed, 189 deletions(-) delete mode 100644 sources/scala/tools/dtd2scala/regexp/Alt.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/Eps.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/Node.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/PCDATA_.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/Parser.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/RegExp.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/Scanner.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/Seq.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/Star.scala delete mode 100644 sources/scala/tools/dtd2scala/regexp/Tokens.scala diff --git a/sources/scala/tools/dtd2scala/regexp/Alt.scala b/sources/scala/tools/dtd2scala/regexp/Alt.scala deleted file mode 100644 index fc88e9b8e0..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Alt.scala +++ /dev/null @@ -1,4 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -case class Alt(rs:RegExp*) extends RegExp; - diff --git a/sources/scala/tools/dtd2scala/regexp/Eps.scala b/sources/scala/tools/dtd2scala/regexp/Eps.scala deleted file mode 100644 index 0c0079745b..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Eps.scala +++ /dev/null @@ -1,3 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -case object Eps extends RegExp; diff --git a/sources/scala/tools/dtd2scala/regexp/Node.scala b/sources/scala/tools/dtd2scala/regexp/Node.scala deleted file mode 100644 index c56b60925d..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Node.scala +++ /dev/null @@ -1,3 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -case class Node(name:String) extends RegExp; diff --git a/sources/scala/tools/dtd2scala/regexp/PCDATA_.scala b/sources/scala/tools/dtd2scala/regexp/PCDATA_.scala deleted file mode 100644 index 5483fda9da..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/PCDATA_.scala +++ /dev/null @@ -1,3 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -case object PCDATA_ extends RegExp ; diff --git a/sources/scala/tools/dtd2scala/regexp/Parser.scala b/sources/scala/tools/dtd2scala/regexp/Parser.scala deleted file mode 100644 index 0a8e2d855a..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Parser.scala +++ /dev/null @@ -1,64 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -/** Parser for regexps (content models in DTD element declarations) */ - -object Parser with Scanner { // a bit too permissive concerning #PCDATA - - /** parses the argument to a regexp */ - def parse(s:String):RegExp = { initScanner( s ); regexp } - - // zzz parser methods zzz - private def accept( tok:int ) = { - if( token != tok ) error("unexpected token:"+token2string(token)); - nextToken - } - - private def suffix = (token==STAR)||(token==PLUS)||(token==OPT); - - private def handleSuffix(s:RegExp) = { - if( token == STAR ) { nextToken; Star( s ) } - else if( token == PLUS ){ nextToken; Seq( s, Star( s )) } - else if( token == OPT ) { nextToken; Alt( Eps, s ); } - else { error("suffix expected"); PCDATA_ } - } - - private def maybeSuffix(s:RegExp) = if( suffix ) handleSuffix( s ) else s; - - // regexp ::= seq [ '+' | '*' | '?' ] - private def regexp:RegExp = maybeSuffix( seq ); - - // seq ::= factor { ',' factor } - private def seq = { - val f = factor; - if( token != COMMA ) f else { - var fs:List[ RegExp ] = f :: Nil; - while( token == COMMA ) { nextToken; fs = factor :: fs } - Seq( fs.reverse:_* ); - } - } - - // factor ::= atomSuffix { '|' atomSuffix } - private def factor:RegExp = { - var a = atomSuffix; - if( token != CHOICE ) a else { - var as:List[ RegExp ] = a :: Nil; - while( token == CHOICE ) { nextToken; as = atomSuffix :: as; } - Alt( as.reverse:_* ); - } - } - - // atomSuffix ::= atom [ '+' | '*' | '?' ] - private def atomSuffix = maybeSuffix( atom ); - - // atom ::= '(' regexp ')' - // | '#PCDATA' - // | node - // | END - private def atom = - if( token == LPAREN ) { nextToken; val a = regexp; accept( RPAREN ); a } - else if( token == PCD ) { nextToken; PCDATA_ } - else if( token == NODE ){ val a = Node( value ); nextToken; a } - else if( token == END ) { Eps } - else error("unexpected token:"+token2string( token )); - -} diff --git a/sources/scala/tools/dtd2scala/regexp/RegExp.scala b/sources/scala/tools/dtd2scala/regexp/RegExp.scala deleted file mode 100644 index e5c12ac588..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/RegExp.scala +++ /dev/null @@ -1,15 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -abstract class RegExp ; - -//case class Node(name:String) extends RegExp; -//case object PCDATA_ extends RegExp ; - -//case object Eps extends RegExp; -//case class Star(r:RegExp) extends RegExp; -//case class Seq(rs:RegExp*) extends RegExp; -//case class Alt(rs:RegExp*) extends RegExp; - -object RegExp { - def parse(s:String):RegExp = Parser.parse( s ); -} diff --git a/sources/scala/tools/dtd2scala/regexp/Scanner.scala b/sources/scala/tools/dtd2scala/regexp/Scanner.scala deleted file mode 100644 index 7a99c0e2c7..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Scanner.scala +++ /dev/null @@ -1,59 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -/** Scanner for regexps (content models in DTD element declarations) */ -class Scanner with Tokens { - - // zzz constants zzz - private val ENDCH:char = '%'; - - // zzz fields zzz - var token:int = 0; - var value:String = ""; - - private var it:Iterator[char] = null; - private var c:char = 'z'; - - - /** initializes the scanner on input s */ - def initScanner( s:String ) = { - it = Iterator.fromString(s); - next; - token = 0; - nextToken; - } - - /** scans the next token */ - def nextToken = { token = if( token != END ) readToken else END } - - // zzz scanner methods zzz - - // todo: see XML specification... probably isLetter,isDigit is fine - private def isIdentChar = { ('a' <= c && c <= 'z') - || ('A' <= c && c <= 'Z')}; - - private def next = if( it.hasNext ) c = it.next else c = ENDCH; - - private def skip( i:int ):Unit = if( i > 0 ) { next; skip(i-1) } else { } - - private def readToken:int = c.match { - case '(' => next; LPAREN; - case ')' => next; RPAREN; - case ',' => next; COMMA; - case '*' => next; STAR; - case '+' => next; PLUS; - case '?' => next; OPT; - case '|' => next; CHOICE; - case '#' => skip( "PCDATA".length() ); next; PCD - case '%' => END; - case _ => if( isIdentChar ) - { readValue; NODE } - else - { error("unexpected character:"+c); END } - } - - private def readValue = { - var buf = c :: Nil; next; while ( isIdentChar ) { buf = c::buf; next } - value = buf.foldLeft ("") { ( s, c ) => c+s }; - } - -} diff --git a/sources/scala/tools/dtd2scala/regexp/Seq.scala b/sources/scala/tools/dtd2scala/regexp/Seq.scala deleted file mode 100644 index f2658f7c20..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Seq.scala +++ /dev/null @@ -1,3 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -case class Seq(rs:RegExp*) extends RegExp; diff --git a/sources/scala/tools/dtd2scala/regexp/Star.scala b/sources/scala/tools/dtd2scala/regexp/Star.scala deleted file mode 100644 index 8927ff70e9..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Star.scala +++ /dev/null @@ -1,3 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -case class Star(r:RegExp) extends RegExp; diff --git a/sources/scala/tools/dtd2scala/regexp/Tokens.scala b/sources/scala/tools/dtd2scala/regexp/Tokens.scala deleted file mode 100644 index 2cc704a4f4..0000000000 --- a/sources/scala/tools/dtd2scala/regexp/Tokens.scala +++ /dev/null @@ -1,32 +0,0 @@ -package scala.tools.dtd2scala.regexp ; - -class Tokens { - - // Tokens - - val PCD = 0; - val NODE = 1; - val EMPTY = 2; - val LPAREN = 3; - val RPAREN = 4; - val COMMA = 5; - val STAR = 6; - val PLUS = 7; - val OPT = 8; - val CHOICE = 9; - val END = 10; - - def token2string( i:int ):String = i.match { - case 0 => "#PCD"; - case 1 => "NODE"; - case 2 => "EMPTY"; - case 3 => "("; - case 4 => ")"; - case 5 => ","; - case 6 => "*"; - case 7 => "+"; - case 8 => "?"; - case 9 => "|"; - case 10 => "END"; - } -} -- cgit v1.2.3