scala.tools.nsc.ast.parser

# Parsers

#### trait Parsers extends Scanners with MarkupParsers with ParsersCommon

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

Self Type
  Parsers

Linear Supertypes
ParsersCommon, MarkupParsers, Scanners, ScannersCommon, AnyRef, Any
Known Subclasses
CaseParser, ForEnumeratorParser, Parser, PatternParser, SyntaxAnalyzer, TermParser, TypeParser
Type Hierarchy Learn more about scaladoc diagrams
Ordering

1. Alphabetic
2. By inheritance

Inherited

1. Parsers
2. ParsersCommon
3. MarkupParsers
4. Scanners
5. ScannersCommon
6. AnyRef
7. Any

Implicitly

1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc

1. Hide All
2. Show all

Learn more about member selection
Visibility

1. Public
2. All

### Type Members

1. #### trait CommonTokenData extends AnyRef

   Definition Classes
     ScannersCommon

2. #### type Location = Int

3. #### class MalformedInput extends Exception

   Definition Classes
     Scanners

4. #### class MarkupParser extends MarkupParserCommon

   Definition Classes
     MarkupParsers

5. #### type Offset = Int

   Offset into source character array

   Offset into source character array

   Definition Classes
     ScannersCommon

6. #### case class OpInfo(lhs: Global.Tree, operator: Global.TermName, targs: List[Global.Tree], offset: Parsers.Offset) extends Product with Serializable

7. #### class OutlineParser extends SourceFileParser

8. #### class ParensAnalyzer extends UnitScanner

   Definition Classes
     Scanners

9. #### abstract class Parser extends ParserCommon

10. #### abstract class ParserCommon extends AnyRef

    This is now an abstract class, only to work around the optimizer: methods in traits are never inlined.

11. #### abstract class Scanner extends CharArrayReader with TokenData with ScannerData with ScannerCommon

    Definition Classes
      Scanners

12. #### trait ScannerCommon extends CommonTokenData

    Definition Classes
      ScannersCommon

13. #### trait ScannerData extends TokenData with CharArrayReaderData

    An interface to most of mutable data in Scanner defined in TokenData and CharArrayReader (+ next, prev fields) with copyFrom functionality to backup/restore data (used by quasiquotes' lookingAhead).

14. #### class SourceFileParser extends Parser

15. #### class SourceFileScanner extends Scanner

    A scanner for a given source file not necessarily attached to a compilation unit.

16. #### type Token = Int

    Definition Classes
      ScannersCommon

17. #### trait TokenData extends CommonTokenData

    Definition Classes
      Scanners

18. #### class UnitParser extends SourceFileParser

19. #### class UnitScanner extends SourceFileScanner

    A scanner over a given compilation unit

### Abstract Value Members

1. #### abstract val global: Global

   Definition Classes
     Parsers → ParsersCommon → Scanners → ScannersCommon

### Concrete Value Members

1. #### final def !=(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

2. #### final def ##(): Int

   Definition Classes
     AnyRef → Any

3. #### def +(other: String): String

   Implicit information
     This member is added by an implicit conversion from Parsers to any2stringadd[Parsers] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd

4. #### def ->[B](y: B): (Parsers, B)

   Implicit information
     This member is added by an implicit conversion from Parsers to ArrowAssoc[Parsers] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()

5. #### final def ==(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

6. #### object ConfusedAboutBracesControl extends Throwable with ControlThrowable with Product with Serializable

   Definition Classes
     MarkupParsers

7. #### final val InBlock: Location

8. #### final val InTemplate: Location

9. #### final val Local: Location

10. #### object MissingEndTagControl extends Throwable with ControlThrowable with Product with Serializable

    Definition Classes
      MarkupParsers

11. #### lazy val ScalaValueClassNames: collection.Seq[Global.TypeName]

12. #### object TruncatedXMLControl extends Throwable with ControlThrowable with Product with Serializable

    Definition Classes
      MarkupParsers

13. #### final def asInstanceOf[T0]: T0

    Definition Classes
      Any

14. #### def clone(): AnyRef

    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

15. #### def createKeywordArray(keywords: Seq[(Global.Name, Token)], defaultToken: Token): (Token, Array[Token])

    Definition Classes
      ScannersCommon

16. #### def ensuring(cond: (Parsers) ⇒ Boolean, msg: ⇒ Any): Parsers

    Implicit information
      This member is added by an implicit conversion from Parsers to Ensuring[Parsers] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

17. #### def ensuring(cond: (Parsers) ⇒ Boolean): Parsers

    Implicit information
      This member is added by an implicit conversion from Parsers to Ensuring[Parsers] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

18. #### def ensuring(cond: Boolean, msg: ⇒ Any): Parsers

    Implicit information
      This member is added by an implicit conversion from Parsers to Ensuring[Parsers] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

19. #### def ensuring(cond: Boolean): Parsers

    Implicit information
      This member is added by an implicit conversion from Parsers to Ensuring[Parsers] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

20. #### final def eq(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

21. #### def equals(arg0: Any): Boolean

    Definition Classes
      AnyRef → Any

22. #### def finalize(): Unit

    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )

23. #### def formatted(fmtstr: String): String

    Implicit information
      This member is added by an implicit conversion from Parsers to StringFormat[Parsers] performed by method StringFormat in scala.Predef.
    Definition Classes
      StringFormat
    Annotations
      @inline()

24. #### final def getClass(): Class[_]

    Definition Classes
      AnyRef → Any

25. #### def hashCode(): Int

    Definition Classes
      AnyRef → Any

26. #### final def isInstanceOf[T0]: Boolean

    Definition Classes
      Any

27. #### def literalUnit: Global.Literal

    Definition Classes
      ParsersCommon

28. #### final def ne(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

29. #### def newLiteral(const: Any): Global.Literal

    Definition Classes
      ParsersCommon

30. #### final def notify(): Unit

    Definition Classes
      AnyRef

31. #### final def notifyAll(): Unit

    Definition Classes
      AnyRef

32. #### final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
      AnyRef

33. #### def toString(): String

    Definition Classes
      AnyRef → Any

34. #### final val token2name: Map[Int, Global.Name]

    Definition Classes
      Scanners

35. #### def token2string(token: Token): String

    Returns the string representation of given token.

    Returns the string representation of given token.

    Definition Classes
      Scanners

36. #### final def wait(): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

37. #### final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

38. #### final def wait(arg0: Long): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

39. #### def →[B](y: B): (Parsers, B)

    Implicit information
      This member is added by an implicit conversion from Parsers to ArrowAssoc[Parsers] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc

### Inherited from ParsersCommon

### Inherited from MarkupParsers

### Inherited from Scanners

### Inherited from ScannersCommon

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd from Parsers to any2stringadd[Parsers]

### Inherited by implicit conversion StringFormat from Parsers to StringFormat[Parsers]

### Inherited by implicit conversion Ensuring from Parsers to Ensuring[Parsers]

### Inherited by implicit conversion ArrowAssoc from Parsers to ArrowAssoc[Parsers]

### Ungrouped