class MarkupParser extends MarkupParserCommon
- Alphabetic
- By Inheritance
- MarkupParser
- MarkupParserCommon
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
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
adds entity/character to ts as side-effect
- Note
Pre-condition: ch == '&'
- def content_BRACE(p: Global.Position, ts: ArrayBuffer[Global.Tree]): Unit
- Note
Pre-condition: ch == '{'
,Post-condition: xEmbeddedBlock == false!
- 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(): collection.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 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: Iterable[Char]): Unit
- Definition Classes
- MarkupParserCommon
- def xToken(that: Char): Unit
- Definition Classes
- MarkupParserCommon
- def xUnparsed: Global.Tree
The Scala compiler and reflection APIs.