package parser
- Alphabetic
- Public
- All
Type Members
-
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
-
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.
- abstract class Change extends AnyRef
-
abstract
class
CommonTokens
extends AnyRef
Common code between Scala's Tokens and JavaTokens.
- case class Deletion (nchars: Int) extends Change with Product with Serializable
- case class Insertion (text: String) extends Change with Product with Serializable
- trait MarkupParsers extends AnyRef
-
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
- Removes pattern definitions (PatDef's) as follows:
If pattern is a simple (typed) identifier:
-
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.
- class Patch extends AnyRef
- trait Scanners extends ScannersCommon
-
trait
ScannersCommon
extends AnyRef
See Parsers.scala / ParsersCommon for some explanation of ScannersCommon.
-
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
-
abstract
class
SyntaxAnalyzer
extends SubComponent with Parsers with MarkupParsers with Scanners with JavaParsers with JavaScanners
An nsc sub-component.
-
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
- object Tokens extends CommonTokens
The Scala compiler API.
The following resources are useful for Scala plugin/compiler development: