Dotty Documentation



[-] Constructors

[-] Members

[+] abstract class CharArrayReader
[+] object JavaParsers
[+] object JavaScanners
[+] object JavaTokens
[+] trait MarkupParserCommon

This is not a public trait - it contains common code shared between the library level XML parser and the compiler's. All members should be accessed through those.

[+] object MarkupParsers

This trait ...

[+] object Parsers
[+] object Scanners
[+] object ScriptParsers

Performs the following context-free rewritings:

- Places all pattern variables in Bind nodes. In a pattern, for identifiers x: 

x  => x @ _
x:T  => x @ (_ : T)

  • Removes pattern definitions (PatDef's) as follows: If pattern is a simple (typed) identifier: 

    val x = e     ==>  val x = e
    val x: T = e  ==>  val x: T = e

    if there are no variables in pattern 

    val p = e  ==>  e match (case p => ())

    if there is exactly one variable in pattern 

    val x_1 = e match (case p => (x_1))

    if there is more than one variable in pattern 

    val p = e  ==>  private synthetic val t$ = e match (case p => (x_1, ..., x_N))
    val x_1 = t$._1
    val x_N = t$._N

- Removes function types as follows: 

(argtpes) => restpe   ==>   scala.Function_n[argtpes, restpe]

- Wraps naked case definitions in a match as follows: 

{ cases }   ==>   (x => x.match {cases}), except when already argument to match

[+] class SymbolicXMLBuilder

This class builds instance of Tree that represent XML.

Note from martin: This needs to have its position info reworked. I don't understand exactly what's done here. To make validation pass, I set many positions to be transparent. Not sure this is a good idea for navigating XML trees in the IDE but it's the best I can do right now. If someone who understands this part better wants to give it a shot, please do!

[+] object Tokens
[+] abstract class TokensCommon
[+] object Utility

The Utility object provides utility functions for processing instances of bound and not bound XML classes, as well as escaping text nodes.

[+] def maxPrec : Int
[+] def minInfixPrec : Int
[+] def minPrec : Int
[+] def precedence ( operator: Name ) : Int