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 Interpolator extends VersionSpecificInterpolatorModule with ExprIndependentInterpolators[Any]

Linear Supertypes
ExprIndependentInterpolators[Any], VersionSpecificInterpolatorModule, AnyRef, Any
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. Interpolator
  2. ExprIndependentInterpolators
  3. VersionSpecificInterpolatorModule
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

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

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

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

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

  2. trait LiftedInterpolator[C <: Context with Singleton] extends AnyRef

    Definition Classes
    VersionSpecificInterpolatorModule

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 charIn(str: String): Interpolator[Any, Char]

    Succeeds if the next character is a member of the given String; captures that character

    Succeeds if the next character is a member of the given String; captures that character

    Definition Classes
    ExprIndependentInterpolators
  6. def charIn(str: Seq[Char]): Interpolator[Any, Char]

    Succeeds if the next character is a member of the given Seq; captures that character

    Succeeds if the next character is a member of the given Seq; captures that character

    Definition Classes
    ExprIndependentInterpolators
  7. def charIn(str: Set[Char]): Interpolator[Any, Char]

    Succeeds if the next character is a member of the given Set; captures that character

    Succeeds if the next character is a member of the given Set; captures that character

    Definition Classes
    ExprIndependentInterpolators
  8. def charWhere(fn: (Char) => Boolean): Interpolator[Any, Char]

    Succeeds if the next character matches the given predicate; captures that character

    Succeeds if the next character matches the given predicate; captures that character

    Definition Classes
    ExprIndependentInterpolators
  9. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  10. def codePointIn(str: String): Interpolator[Any, CodePoint]

    Succeeds if the next codepoint is a member of the given string; captures that code point

    Succeeds if the next codepoint is a member of the given string; captures that code point

    Definition Classes
    ExprIndependentInterpolators
  11. def codePointIn(str: Seq[CodePoint]): Interpolator[Any, CodePoint]

    Succeeds if the next codepoint is a member of the given Seq; captures that code point

    Succeeds if the next codepoint is a member of the given Seq; captures that code point

    Definition Classes
    ExprIndependentInterpolators
  12. def codePointIn(str: Set[CodePoint]): Interpolator[Any, CodePoint]

    Succeeds if the next codepoint is a member of the given Set; captures that code point

    Succeeds if the next codepoint is a member of the given Set; captures that code point

    Definition Classes
    ExprIndependentInterpolators
  13. def codePointWhere(fn: (CodePoint) => Boolean): Interpolator[Any, CodePoint]

    Succeeds if the next codepoint matches the given predicate; captures that code point

    Succeeds if the next codepoint matches the given predicate; captures that code point

    Definition Classes
    ExprIndependentInterpolators
  14. def contextInterpolators(c: Context): Interpolators[scala.reflect.macros.blackbox.Context.Expr, scala.reflect.macros.Universe.Liftable, scala.reflect.macros.blackbox.Context.TypeTag] with LiftedInterpolator[c.type]

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

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

    Definition Classes
    VersionSpecificInterpolatorModule
  15. def end: Interpolator[Any, Unit]

    A parser that succeeds iff the input is empty

    A parser that succeeds iff the input is empty

    Definition Classes
    ExprIndependentInterpolators
  16. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  18. def fail(message: String): Interpolator[Any, Nothing]

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

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

    Definition Classes
    ExprIndependentInterpolators
  19. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  20. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  21. val idInterpolators: Interpolators[Id, IdToExpr, ClassTag]

    Returns an Interpolators that can parse raw values

  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. def isString(str: String): Interpolator[Any, Unit]

    Succeeds if the next set of characters in the input is equal to the given string

    Succeeds if the next set of characters in the input is equal to the given string

    Definition Classes
    ExprIndependentInterpolators
  24. def lazy[Expr, A](fn: () => Interpolator[Expr, A]): Interpolator[Expr, A]

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

  25. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  26. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  27. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  28. def pass: Interpolator[Any, Unit]

    A parser that consumes no input and always succeeds

    A parser that consumes no input and always succeeds

    Definition Classes
    ExprIndependentInterpolators
  29. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  30. def toString(): String
    Definition Classes
    AnyRef → Any
  31. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  33. 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 ExprIndependentInterpolators[Any]

Inherited from VersionSpecificInterpolatorModule

Inherited from AnyRef

Inherited from Any

String-Part

String-Part as Char

String-Part as Codepoint

Constant

Position

Miscellaneous

Ungrouped

InterpolatorGroup