io.dylemma.xml

ParserCombiner

trait ParserCombiner[C1, C2, C] extends AnyRef

A Parser Combiner is able to combine two parsers into a single parser, finding the most-specific common type between the two parsers' contexts, and combining their results as a chain.

In order to be combined, the context types for both parsers must exist in the same hierarchy. For example, contexts of Any and String may be combined because String is a subtype of Any. But contexts of String and Boolean may not be combined because neither String nor Boolean are subtypes of each other.

Most parsers will have a context type of Any, meaning they can be trivially combined with other parsers. Combining with a parser with a more specific context will narrow the applicable context of the combined parser.

Import ParserCombinerOps._ or mixin the ParserCombinerOps trait to add the combine method to parsers, which uses this type class.

C1

The context type of the first parser

C2

The context type of the second parser

C

The common context type, used by the combined parser

Annotations
@implicitNotFound( ... )
Source
ParserCombiner.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ParserCombiner
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def combine[T1, T2](parser1: ParserForContext[C1, T1], parser2: ParserForContext[C2, T2]): ParserForContext[C, Chain[T1, T2]]

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  18. def toString(): String

    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped