Packages

  • package root

    A library for writing custom string interpolation implementations via parser combinators

    A library for writing custom string interpolation implementations via parser combinators

    ## Entry Points

    If the string context should create an object: Create leaf parsers using the methods in the Interpolator companion object, combine and manipulate them with the methods in Interpolator, then interpolate using the final Interpolator's interpolate method.

    If the string context should create an extractor: Create leaf parsers using the methods in the Extractor companion object, combine and manipulate them with the methods in Extractor, then interpolate using the final Extractor's extractor method.

    If the string context should do both: Create leaf parsers using the methods in the Parser companion object, combine and manipulate them with the methods in Parser, then interpolate using the final Parser's interpolate and extractor methods.

    Definition Classes
    root
  • package name
    Definition Classes
    root
  • package rayrobdod
    Definition Classes
    name
  • package stringContextParserCombinator

    A library for implementing custom string interpolation implementations using Parser Combinators

    A library for implementing custom string interpolation implementations using Parser Combinators

    Definition Classes
    rayrobdod
  • package typeclass

    Implicit values used by branch combinators that allow combinations of input types to have more ergonomic return types.

    Implicit values used by branch combinators that allow combinations of input types to have more ergonomic return types.

    Each of the typeclasses defined in this package fit into a matrix, where one dimension is which type of parser the typeclass is used with and the other dimension is the method that uses an instance of the type

    method

    Covariant (Interpolator)

    Contravariant (Extractor)

    Invariant (Parser)

    andThen

    Sequenced

    ContraSequenced

    BiSequenced

    orElse

    Eithered

    ContraEithered

    BiEithered

    repeat

    Repeated

    ContraRepeated

    BiRepeated

    optionally

    Optionally

    ContraOptionally

    BiOptionally

    mapToExpr

    ToExprMapping

    N/A

    N/A

    Thus, if you are only working with interpolators, then you'll only need to work with the unprefixed typeclasses.

    Each of these traits has a companion object that defines a generic instance of the trait, and a few instances for more specific types. For instance, each typeclass includes a instance that will avoid wrapping scala.Unit values in a collection or tuple.

    Defining custom instances of these types is supported. Making custom given instances can significantly reduce the number of explicit map calls required when writing a parser, however the usual advice with given instances applies: keep types specific, or keep the scope of a given instance to the minimum viable to prevent given instances from becoming confusing.

    Definition Classes
    stringContextParserCombinator
  • CodePoint
  • Extractor
  • Interpolator
  • LiftFunction
  • ParseException
  • Parser
  • PartialExprFunction
  • RepeatStrategy
  • Unapply

object Parser extends VersionSpecificParserModule

Linear Supertypes
VersionSpecificParserModule, AnyRef, Any
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. Parser
  2. VersionSpecificParserModule
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. trait Parsers[Expr[+_], ToExpr[_], Type[_]] extends AnyRef

    A trait that provides Parser factory methods that conform to a particular input Expr type parameter.

    A trait that provides Parser factory methods that conform to a particular input Expr type parameter.

    In scala 3, the Parser companion object contains methods similar to these for quoted.Expr, and as such this would generally by calling methods directly on Parser. However, since in scala 2 the Expr depends on a particular instance of blackbox.Context, instead an Parsers must be constructed from the Parser companion object's macroParsers method that takes a Context.

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  6. def contextParsers(c: Context): Parsers[scala.reflect.macros.blackbox.Context.Expr, scala.reflect.macros.Universe.Liftable, scala.reflect.macros.blackbox.Context.TypeTag]

    Create a Parsers that can parse Exprs belonging to the specified Context

    Create a Parsers that can parse Exprs belonging to the specified Context

    Definition Classes
    VersionSpecificParserModule
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  11. val idParsers: Parsers[Id, IdToExpr, ClassTag]

    Returns an Parsers that can parse raw values

  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. def lazy[Expr[_], Type[_], A](fn: () => Parser[Expr, Type, A]): Parser[Expr, Type, A]

    Indirectly refers to a parser, to allow for mutual-recursion

  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  17. def paired[Expr[_], Type[_], A](interpolator: Interpolator[Expr[Any], A], extractor: Extractor[Expr, Type, A]): Parser[Expr, Type, A]

    A parser that acts like the Interpolator when interpolating, and like the Extractor when extracting

  18. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from VersionSpecificParserModule

Inherited from AnyRef

Inherited from Any

Miscellaneous

Ungrouped

ParserGroup