scala.tools.nsc.ast

# parser

#### package parser

Content Hierarchy
Visibility

1. Public
2. All

### Type Members

1. #### case class BracePair(loff: Int, lindent: Int, roff: Int, rindent: Int, nested: List[BracePair]) extends Product with Serializable

   A descriptor for a matching pair of braces.

   A descriptor for a matching pair of braces.

   loff

     The offset of the opening brace (-1 means missing)

   lindent

     The indentation depth of the line of the opening brace (-1 means missing)

   roff

     The offset of the closing brace (-1 means missing)

   rindent

     The indentation depth of the line of the closing brace (-1 means missing)

   nested

     The brace pairs nested in this one

2. #### case class BracePatch(off: Int, inserted: Boolean) extends Patch with Product with Serializable

   A patch that postulates that a brace needs to be inserted or deleted at a given position.

   A patch that postulates that a brace needs to be inserted or deleted at a given position.

   off

     The offset where the brace needs to be inserted or deleted

   inserted

     If true, brace needs to be inserted, otherwise brace needs to be deleted.

3. #### abstract class Change extends AnyRef

4. #### abstract class CommonTokens extends AnyRef

   Common code between Scala's Tokens and JavaTokens.

5. #### case class Deletion(nchars: Int) extends Change with Product with Serializable

6. #### case class Insertion(text: String) extends Change with Product with Serializable

7. #### trait MarkupParsers extends AnyRef

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

   Performs the following context-free rewritings:

   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

9. #### trait ParsersCommon extends ScannersCommon

   Historical note: JavaParsers started life as a direct copy of Parsers but at a time when that Parsers had been replaced by a different one.

   Historical note: JavaParsers started life as a direct copy of Parsers but at a time when that Parsers had been replaced by a different one. Later it was dropped and the original Parsers reinstated, leaving us with massive duplication between Parsers and JavaParsers.

   This trait and the similar one for Scanners/JavaScanners represents the beginnings of a campaign against this latest incursion by Cutty McPastington and his army of very similar soldiers.

10. #### class Patch extends AnyRef

11. #### trait Scanners extends ScannersCommon

12. #### trait ScannersCommon extends AnyRef

    See Parsers.scala / ParsersCommon for some explanation of ScannersCommon.

13. #### abstract class SymbolicXMLBuilder extends AnyRef

    This class builds instance of `Tree` that represent XML.

    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!

    Version

      1.0

14. #### abstract class SyntaxAnalyzer extends SubComponent with Parsers with MarkupParsers with Scanners with JavaParsers with JavaScanners

    An nsc sub-component.

15. #### abstract class TreeBuilder extends AnyRef

    Methods for building trees, used in the parser.

    Methods for building trees, used in the parser. All the trees returned by this class must be untyped.

### Value Members

1. #### object Tokens extends CommonTokens

2. #### package xml

### Ungrouped