summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala33
1 files changed, 10 insertions, 23 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala b/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala
index 67e1cd8304..bd46d2219d 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/MarkupParsers.scala
@@ -50,10 +50,17 @@ trait MarkupParsers
import global._
- class MarkupParser(parser: UnitParser, final val preserveWS: Boolean) {
+ class MarkupParser(parser: UnitParser, final val preserveWS: Boolean) extends scala.xml.parsing.MarkupParserCommon {
import Tokens.{ EMPTY, LBRACE, RBRACE }
+ type PositionType = Position
+ val eof = false
+
+ def xHandleError(that: Char, msg: String) =
+ if (ch == SU) throw TruncatedXML
+ else reportSyntaxError(msg)
+
var input : CharArrayReader = _
import parser.{ symbXMLBuilder => handle, o2p, r2p }
@@ -73,15 +80,6 @@ trait MarkupParsers
finally setter(saved)
}
- /** munch expected XML token, report syntax error for unexpected.
- *
- * @param that ...
- */
- def xToken(that: Char): Unit =
- if (ch == that) nextch
- else if (ch == SU) throw TruncatedXML
- else reportSyntaxError("'%s' expected instead of '%s'".format(that, ch))
-
private var debugLastStartElement = new mutable.Stack[(Int, String)]
private def debugLastPos = debugLastStartElement.top._1
private def debugLastElem = debugLastStartElement.top._2
@@ -421,18 +419,6 @@ trait MarkupParsers
buf.toString.intern
}
- /** scan [S] '=' [S]*/
- def xEQ = { xSpaceOpt; xToken('='); xSpaceOpt }
-
- /** skip optional space S? */
- def xSpaceOpt = { while (isSpace(ch)) { nextch }}
-
- /** scan [3] S ::= (#x20 | #x9 | #xD | #xA)+ */
- def xSpace =
- if (isSpace(ch)) { nextch; xSpaceOpt }
- else if (ch == SU) throw TruncatedXML
- else reportSyntaxError("whitespace expected")
-
/** '<?' ProcInstr ::= Name [S ({Char} - ({Char}'>?' {Char})]'?>'
*
* see [15]
@@ -558,8 +544,9 @@ trait MarkupParsers
*/
def xScalaPatterns: List[Tree] = escapeToScala(parser.patterns(true), "pattern")
+ def reportSyntaxError(pos: Int, str: String) = parser.syntaxError(pos, str)
def reportSyntaxError(str: String) = {
- parser.syntaxError(curOffset, "in XML literal: " + str)
+ reportSyntaxError(curOffset, "in XML literal: " + str)
nextch
}