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
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toany2stringadd[Parsers.MarkupParser] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (Parsers.MarkupParser, B)
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toArrowAssoc[Parsers.MarkupParser] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def appendText(pos: Global.Position, ts: Buffer[Global.Tree], txt: String): Unit
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- 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 ch_returning_nextch: Char
- Attributes
- protected
- Definition Classes
- MarkupParser → MarkupParserCommon
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- 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 '/' '>'
- def ensuring(cond: (Parsers.MarkupParser) => Boolean, msg: => Any): Parsers.MarkupParser
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toEnsuring[Parsers.MarkupParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (Parsers.MarkupParser) => Boolean): Parsers.MarkupParser
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toEnsuring[Parsers.MarkupParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): Parsers.MarkupParser
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toEnsuring[Parsers.MarkupParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): Parsers.MarkupParser
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toEnsuring[Parsers.MarkupParser] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- val eof: Boolean
- Definition Classes
- MarkupParser → MarkupParserCommon
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def errorAndResult[T](msg: String, x: T): T
- Attributes
- protected
- Definition Classes
- MarkupParserCommon
- def errorNoEnd(tag: String): Nothing
- Definition Classes
- MarkupParser → MarkupParserCommon
- def escapeToScala[A](op: => A, kind: String): A
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- var input: CharArrayReader
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- 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 def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- 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
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- var tmppos: Global.Position
- Definition Classes
- MarkupParser → MarkupParserCommon
- def toString(): String
- Definition Classes
- AnyRef → Any
- def truncatedError(msg: String): Nothing
- Definition Classes
- MarkupParser → MarkupParserCommon
- def unreachable: Nothing
- Attributes
- protected
- Definition Classes
- MarkupParserCommon
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- 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 xTag(pscope: NamespaceType): (String, AttributesType)
parse a start or empty tag.
parse a start or empty tag. [40] STag ::= '<' Name { S Attribute } [S] [44] EmptyElemTag ::= '<' Name { S Attribute } [S]
- Attributes
- protected
- Definition Classes
- MarkupParserCommon
- def xTakeUntil[T](handler: (PositionType, String) => T, positioner: () => PositionType, until: String): T
Take characters from input stream until given String "until" is seen.
Take characters from input stream until given String "until" is seen. Once seen, the accumulated characters are passed along with the current Position to the supplied handler function.
- Attributes
- protected
- Definition Classes
- MarkupParserCommon
- def xToken(that: Iterable[Char]): Unit
- Definition Classes
- MarkupParserCommon
- def xToken(that: Char): Unit
- Definition Classes
- MarkupParserCommon
- def xUnparsed: Global.Tree
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toStringFormat[Parsers.MarkupParser] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (Parsers.MarkupParser, B)
- Implicit
- This member is added by an implicit conversion from Parsers.MarkupParser toArrowAssoc[Parsers.MarkupParser] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
The Scala compiler and reflection APIs.