Packages

  • package root
    Definition Classes
    root
  • package scala
    Definition Classes
    root
  • package util
    Definition Classes
    scala
  • package parsing
    Definition Classes
    util
  • package combinator
    Definition Classes
    parsing
  • trait Parsers extends AnyRef

    Parsers is a component that provides generic parser combinators.

    Parsers is a component that provides generic parser combinators.

    There are two abstract members that must be defined in order to produce parsers: the type Elem and scala.util.parsing.combinator.Parsers.Parser. There are helper methods that produce concrete Parser implementations -- see primitive parser below.

    A Parsers may define multiple Parser instances, which are combined to produced the desired parser.

    The type of the elements these parsers should parse must be defined by declaring Elem (each parser is polymorphic in the type of result it produces).

    There are two aspects to the result of a parser:

    1. success or failure
    2. the result.

    A scala.util.parsing.combinator.Parsers.Parser produces both kinds of information, by returning a scala.util.parsing.combinator.Parsers.ParseResult when its apply method is called on an input.

    The term parser combinator refers to the fact that these parsers are constructed from primitive parsers and composition operators, such as sequencing, alternation, optionality, repetition, lifting, and so on. For example, given p1 and p2 of type scala.util.parsing.combinator.Parsers.Parser:

    p1 ~ p2 // sequencing: must match p1 followed by p2
    p1 | p2 // alternation: must match either p1 or p2, with preference given to p1
    p1.?    // optionality: may match p1 or not
    p1.*    // repetition: matches any number of repetitions of p1

    These combinators are provided as methods on scala.util.parsing.combinator.Parsers.Parser, or as methods taking one or more Parsers and returning a Parser provided in this class.

    A primitive parser is a parser that accepts or rejects a single piece of input, based on a certain criterion, such as whether the input...

    • is equal to some given object (see method accept),
    • satisfies a certain predicate (see method acceptIf),
    • is in the domain of a given partial function (see method acceptMatch)
    • or other conditions, by using one of the other methods available, or subclassing Parser

    Even more primitive parsers always produce the same result, irrespective of the input. See methods success, err and failure as examples.

    Definition Classes
    combinator
    See also

    scala.util.parsing.combinator.RegexParsers and other known subclasses for practical examples.

  • Elem
  • Error
  • Failure
  • NoSuccess
  • OnceParser
  • ParseResult
  • Parser
  • Success
  • ~

case class Success[+T](result: T, next: Input) extends ParseResult[T] with Product with Serializable

The success case of ParseResult: contains the result and the remaining input.

result

The parser's output

next

The parser's remaining input

Source
Parsers.scala
Linear Supertypes
Serializable, java.io.Serializable, Product, Equals, ParseResult[T], AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Success
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. ParseResult
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Success(result: T, next: Input)

    result

    The parser's output

    next

    The parser's remaining input

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def append[U >: T](a: ⇒ ParseResult[U]): ParseResult[U]
    Definition Classes
    SuccessParseResult
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def filterWithError(p: (T) ⇒ Boolean, error: (T) ⇒ String, position: Input): ParseResult[T]
    Definition Classes
    SuccessParseResult
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def flatMapWithNext[U](f: (T) ⇒ (Input) ⇒ ParseResult[U]): ParseResult[U]
    Definition Classes
    SuccessParseResult
  11. def get: T

    Returns the embedded result.

    Returns the embedded result.

    Definition Classes
    SuccessParseResult
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  13. def getOrElse[B >: T](default: ⇒ B): B
    Definition Classes
    ParseResult
  14. def isEmpty: Boolean
    Definition Classes
    ParseResult
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. def map[U](f: (T) ⇒ U): Success[U]

    Functional composition of ParseResults.

    Functional composition of ParseResults.

    f

    the function to be lifted over this result

    returns

    f applied to the result of this ParseResult, packaged up as a new ParseResult

    Definition Classes
    SuccessParseResult
  17. def mapPartial[U](f: PartialFunction[T, U], error: (T) ⇒ String): ParseResult[U]

    Partial functional composition of ParseResults.

    Partial functional composition of ParseResults.

    f

    the partial function to be lifted over this result

    error

    a function that takes the same argument as f and produces an error message to explain why f wasn't applicable (it is called when this is the case)

    returns

    if f f is defined at the result in this ParseResult, f applied to the result of this ParseResult, packaged up as a new ParseResult. If f is not defined, Failure.

    Definition Classes
    SuccessParseResult
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. val next: Input
    Definition Classes
    SuccessParseResult
  20. final def notify(): Unit
    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  22. val result: T
  23. val successful: Boolean
    Definition Classes
    SuccessParseResult
  24. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String

    The toString method of a Success.

    The toString method of a Success.

    Definition Classes
    Success → AnyRef → Any
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from java.io.Serializable

Inherited from Product

Inherited from Equals

Inherited from ParseResult[T]

Inherited from AnyRef

Inherited from Any

Ungrouped