final class Extractor[Expr[_], Type[_], -A] extends VersionSpecificExtractor[Expr, Type, A]
Parses an interpolated string expression into some extractor
- Expr
the macro-level expression type
- Type
the macro-level type type
- A
the type of the parsed result
- Source
- Extractor.scala
- Grouped
- Alphabetic
- By Inheritance
- Extractor
- VersionSpecificExtractor
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (Extractor[Expr, Type, A], B)
-
def
<|>[B, Z](rhs: Extractor[Expr, Type, B])(implicit ev: ContraEithered[Expr, A, B, Z]): Extractor[Expr, Type, Z]
An alias for #orElse
An alias for #orElse
- Since
0.1.1
-
def
<~(rhs: Extractor[Expr, Type, Unit]): Extractor[Expr, Type, A]
Returns a parser which invokes this parser, and upon success invokes the other parser, discarding the Unit result from the other parser
Returns a parser which invokes this parser, and upon success invokes the other parser, discarding the Unit result from the other parser
- Since
0.1.1
-
def
<~>[B, Z](rhs: Extractor[Expr, Type, B])(implicit ev: ContraSequenced[A, B, Z]): Extractor[Expr, Type, Z]
An alias for #andThen
An alias for #andThen
- Since
0.1.1
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
andThen[B, Z](rhs: Extractor[Expr, Type, B])(implicit ev: ContraSequenced[A, B, Z]): Extractor[Expr, Type, Z]
Returns a parser which invokes this parser, and upon success invokes the other parser.
Returns a parser which invokes this parser, and upon success invokes the other parser.
- Z
the result parser's parsed value type
- rhs
the parser to call after this one
- ev
A descriptor of how to combine two values into one value
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
attempt: Extractor[Expr, Type, A]
Returns a parser which invokes this parser, but treats the result of a failed parse as if it does not consume input
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
contramap[Z](contrafn: (Z) ⇒ A): Extractor[Expr, Type, Z]
Returns an extractor which invokes this extractor after mapping the input value using
contrafn
- def ensuring(cond: (Extractor[Expr, Type, A]) ⇒ Boolean, msg: ⇒ Any): Extractor[Expr, Type, A]
- def ensuring(cond: (Extractor[Expr, Type, A]) ⇒ Boolean): Extractor[Expr, Type, A]
- def ensuring(cond: Boolean, msg: ⇒ Any): Extractor[Expr, Type, A]
- def ensuring(cond: Boolean): Extractor[Expr, Type, A]
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
extract(sc: StringContext, scrutinee: A)(implicit ev: =:=[Id[Any], Expr[Any]], ev2: =:=[ClassTag[Any], Type[Any]]): Option[Seq[Any]]
Extract subexpressions from the given value according to the given StringContext
-
final
def
extractor[UnexprA](c: Context)(extensionClassName: String)(value: scala.reflect.macros.blackbox.Context.Expr[UnexprA])(implicit ev: <:<[scala.reflect.macros.blackbox.Context.Expr[UnexprA], A], ev2: =:=[scala.reflect.macros.blackbox.Context.Expr[_], Expr[_]], ev3: =:=[scala.reflect.macros.blackbox.Context.TypeTag[_], Type[_]], ttUnexprA: scala.reflect.macros.blackbox.Context.TypeTag[UnexprA]): scala.reflect.macros.blackbox.Context.Expr[Any]
Build an extractor that will extract values from a value of type A based on the provided StringContext
Build an extractor that will extract values from a value of type A based on the provided StringContext
- Definition Classes
- VersionSpecificExtractor
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hide: Extractor[Expr, Type, A]
Returns a parser which invokes this parser, but does not show the expected value in failure messages
-
val
impl: internal.Extractor[Expr, Type, A]
- Attributes
- protected[stringContextParserCombinator]
- Definition Classes
- Extractor → VersionSpecificExtractor
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
opaque(description: String): Extractor[Expr, Type, A]
Returns a extractor which invokes this parser, but has the given description upon failure
-
def
optionally[Z](strategy: RepeatStrategy = RepeatStrategy.Possessive)(implicit ev: ContraOptionally[Expr, A, Z]): Extractor[Expr, Type, Z]
Returns a parser which invokes this parser and provides a value whether this parser succeeded or failed
Returns a parser which invokes this parser and provides a value whether this parser succeeded or failed
- Z
the result parser's parsed value type
- strategy
whether the optionally will attempt to match as much or as little as possible, and whether it will backtrack. Default is RepeatStrategy.Possessive
- ev
A descriptor of how to mark present or absent values
-
def
orElse[B, Z](rhs: Extractor[Expr, Type, B])(implicit ev: ContraEithered[Expr, A, B, Z]): Extractor[Expr, Type, Z]
Returns a parser which invokes this parser, and then: * If this parser run succeeded, return this internal's success * If this parser failed and consumed input, return this parser's failure * If this parser failed but did not consume input, run the other parser and return the other parser's result
Returns a parser which invokes this parser, and then: * If this parser run succeeded, return this internal's success * If this parser failed and consumed input, return this parser's failure * If this parser failed but did not consume input, run the other parser and return the other parser's result
- Z
the result parser's parsed value type
- rhs
the parser to call after this one
- ev
A descriptor of how to treat either value as one value
-
def
repeat[Z](min: Int = 0, max: Int = Integer.MAX_VALUE, delimiter: Extractor[Expr, Type, Unit] = ..., strategy: RepeatStrategy = RepeatStrategy.Possessive)(implicit ev: ContraRepeated[Expr, A, Z]): Extractor[Expr, Type, Z]
Returns a parser which invokes this parser repeatedly and returns the aggregated result
Returns a parser which invokes this parser repeatedly and returns the aggregated result
- Z
the result parser's parsed value type
- min
the minimum number of repeats to be considered successful
- max
the maximum number of repeats to consume
- delimiter
a parser describing separators between each repeat. Defaults to a parser that always succeeds and consumes no input.
- strategy
whether the repeat will attempt to match as much or as little as possible, and whether it will backtrack. Default is RepeatStrategy.Possessive
- ev
A descriptor of how to combine the repeated values into one value
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
void: Extractor[Expr, Type, Unit]
Returns an extractor which runs this parser but ignores the input
Returns an extractor which runs this parser but ignores the input
Approximately equivalent to
this.contramap({_ => a})
, wherea
is some value this extractor will accept, except this discards all match groups -
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
widenWith[Z](contrafn: PartialExprFunction[Expr, Z, A]): Extractor[Expr, Type, Z]
Returns an extractor which invokes the contrafn, then * If the Expr is true, passes the value to this extractor * If the Expr is false, fails the match
-
def
~>[B](rhs: Extractor[Expr, Type, B])(implicit ev: <:<[Unit, A]): Extractor[Expr, Type, B]
Returns a parser which invokes this parser, and upon success invokes the other parser, discarding the Unit result from this parser
Returns a parser which invokes this parser, and upon success invokes the other parser, discarding the Unit result from this parser
- Since
0.1.1
- def →[B](y: B): (Extractor[Expr, Type, A], B)
Deprecated Value Members
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Extractor[Expr, Type, A] to StringFormat[Extractor[Expr, Type, A]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
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
'sinterpolate
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
'sextractor
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
'sinterpolate
andextractor
methods.