Dotty Documentation

0.10.0-bin-SNAPSHOT

package dotty.tools.dotc.parsing
extends Object

[-] Constructors

[-] Members

[+] abstract class CharArrayReader
[+] object JavaParsers
[+] object JavaScanners
[+] object JavaTokens
[+] 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



[+] object Tokens
[+] abstract class TokensCommon
[+] def maxPrec : Int
[+] def minInfixPrec : Int
[+] def minPrec : Int
[+] def precedence ( operator: Name ) : Int

Compute the precedence of infix operator operator according to the SLS ยง 6.12.3. We implement SIP-33 and give type operators the same precedence as term operators.