class MarkupParser extends MarkupParserCommon
- Source
- MarkupParsers.scala
- Alphabetic
- By Inheritance
- MarkupParser
- MarkupParserCommon
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new MarkupParser(parser: SourceFileParser, preserveWS: Boolean)
Type Members
-
type
AttributesType = Map[String, Global.Tree]
- Definition Classes
- MarkupParser → MarkupParserCommon
-
type
ElementType = Global.Tree
- Definition Classes
- MarkupParser → MarkupParserCommon
- type InputType = CharArrayReader
-
type
NamespaceType = Any
- Definition Classes
- MarkupParser → MarkupParserCommon
-
type
PositionType = Position
- Definition Classes
- MarkupParser → MarkupParserCommon
Value Members
- def appendText(pos: Global.Position, ts: Buffer[Global.Tree], txt: String): Unit
-
def
ch: Char
The library and compiler parsers had the interesting distinction of different behavior for nextch (a function for which there are a total of two plausible behaviors, so we know the design space was fully explored.) One of them returned the value of nextch before the increment and one of them the new value.
The library and compiler parsers had the interesting distinction of different behavior for nextch (a function for which there are a total of two plausible behaviors, so we know the design space was fully explored.) One of them returned the value of nextch before the increment and one of them the new value. So to unify code we have to at least temporarily abstract over the nextchs.
- Definition Classes
- MarkupParser → MarkupParserCommon
- def content: Buffer[Global.Tree]
-
def
content_AMP(ts: ArrayBuffer[Global.Tree]): Unit
adds entity/character to ts as side-effect
- def content_BRACE(p: Global.Position, ts: ArrayBuffer[Global.Tree]): Unit
- def curOffset: Int
-
def
element: Global.Tree
'<' element ::= xmlTag1 '>' { xmlExpr | '{' simpleExpr '}' } ETag | xmlTag1 '/' '>'
-
val
eof: Boolean
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
errorNoEnd(tag: String): Nothing
- Definition Classes
- MarkupParser → MarkupParserCommon
- def escapeToScala[A](op: ⇒ A, kind: String): A
- var input: CharArrayReader
-
def
lookahead(): BufferedIterator[Char]
Create a lookahead reader which does not influence the input
Create a lookahead reader which does not influence the input
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
mkAttributes(name: String, other: NamespaceType): AttributesType
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
mkProcInstr(position: Global.Position, name: String, text: String): ElementType
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
nextch(): Unit
this method assign the next character to ch and advances in input
this method assign the next character to ch and advances in input
- Definition Classes
- MarkupParser → MarkupParserCommon
- final val preserveWS: Boolean
-
def
reportSyntaxError(str: String): Unit
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
reportSyntaxError(pos: Int, str: String): Unit
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
returning[T](x: T)(f: (T) ⇒ Unit): T
Apply a function and return the passed value
Apply a function and return the passed value
- Definition Classes
- MarkupParserCommon
-
def
saving[A, B](getter: A, setter: (A) ⇒ Unit)(body: ⇒ B): B
Execute body with a variable saved and restored after execution
Execute body with a variable saved and restored after execution
- Definition Classes
- MarkupParserCommon
-
var
tmppos: Global.Position
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
truncatedError(msg: String): Nothing
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
xAttributeValue(endCh: Char): String
attribute value, terminated by either
'
or"
.attribute value, terminated by either
'
or"
. value may not contain<
.- endCh
either
'
or"
- Definition Classes
- MarkupParserCommon
-
def
xAttributes: LinkedHashMap[String, Global.Tree]
parse attribute and add it to listmap [41] Attributes ::= { S Name Eq AttValue } AttValue ::=
'
{ _ }'
|"
{ _ }"
|{
scalablock}
-
def
xCharData: Global.Tree
'<! CharData ::= [CDATA[ ( {char} - {char}"]]>"{char} ) ']]>'
'<! CharData ::= [CDATA[ ( {char} - {char}"]]>"{char} ) ']]>'
see [15]
-
def
xCharRef: String
- Definition Classes
- MarkupParserCommon
-
def
xCharRef(it: Iterator[Char]): String
- Definition Classes
- MarkupParserCommon
-
def
xCharRef(ch: () ⇒ Char, nextch: () ⇒ Unit): String
CharRef ::= "&#" '0'..'9' {'0'..'9'} ";" | "&#x" '0'..'9'|'A'..'F'|'a'..'f' { hexdigit } ";"
CharRef ::= "&#" '0'..'9' {'0'..'9'} ";" | "&#x" '0'..'9'|'A'..'F'|'a'..'f' { hexdigit } ";"
see [66]
- Definition Classes
- MarkupParserCommon
-
def
xCheckEmbeddedBlock: Boolean
checks whether next character starts a Scala block, if yes, skip it.
checks whether next character starts a Scala block, if yes, skip it.
- returns
true if next character starts a scala block
-
def
xComment: Global.Tree
Comment ::=
Comment ::=
see [15]
-
def
xEQ(): Unit
scan [S] '=' [S]
scan [S] '=' [S]
- Definition Classes
- MarkupParserCommon
- var xEmbeddedBlock: Boolean
- def xEmbeddedExpr: Global.Tree
-
def
xEndTag(startName: String): Unit
[42] '<' xmlEndTag ::= '<' '/' Name S? '>'
[42] '<' xmlEndTag ::= '<' '/' Name S? '>'
- Definition Classes
- MarkupParserCommon
-
def
xHandleError(that: Char, msg: String): Unit
- Definition Classes
- MarkupParser → MarkupParserCommon
-
def
xLiteral: Global.Tree
xLiteral = element { element }
xLiteral = element { element }
- returns
Scala representation of this xml literal
-
def
xLiteralPattern: Global.Tree
- returns
this xml pattern
- See also
xmlPattern. resynchronizes after successful parse
-
def
xName: String
actually, Name ::= (Letter | '_' | ':') (NameChar)* but starting with ':' cannot happen Name ::= (Letter | '_') (NameChar)*
actually, Name ::= (Letter | '_' | ':') (NameChar)* but starting with ':' cannot happen Name ::= (Letter | '_') (NameChar)*
see [5] of XML 1.0 specification
pre-condition: ch != ':' // assured by definition of XMLSTART token post-condition: name does neither start, nor end in ':'
- Definition Classes
- MarkupParserCommon
-
def
xPattern: Global.Tree
'<' xPattern ::= Name [S] { xmlPattern | '{' pattern3 '}' } ETag | Name [S] '/' '>'
-
def
xProcInstr: ElementType
'<?' ProcInstr ::= Name [S ({Char} - ({Char}'>?' {Char})]'?>'
'<?' ProcInstr ::= Name [S ({Char} - ({Char}'>?' {Char})]'?>'
see [15]
- Definition Classes
- MarkupParserCommon
-
def
xScalaPatterns: List[Global.Tree]
xScalaPatterns ::= patterns
-
def
xSpace(): Unit
scan [3] S ::= (#x20 | #x9 | #xD | #xA)+
scan [3] S ::= (#x20 | #x9 | #xD | #xA)+
- Definition Classes
- MarkupParserCommon
-
def
xSpaceOpt(): Unit
skip optional space S?
skip optional space S?
- Definition Classes
- MarkupParserCommon
-
def
xToken(that: Seq[Char]): Unit
- Definition Classes
- MarkupParserCommon
-
def
xToken(that: Char): Unit
- Definition Classes
- MarkupParserCommon
- def xUnparsed: Global.Tree
The Scala compiler and reflection APIs.