trait Parsers[Expr[+_], ToExpr[_], Type[_]] extends AnyRef
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.
- Grouped
- Alphabetic
- By Inheritance
- Parsers
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Type Members
- type Extractor[A] = stringContextParserCombinator.Extractor[Expr, Type, A]
- type Interpolator[A] = stringContextParserCombinator.Interpolator[Expr[Any], A]
- type Parser[A] = stringContextParserCombinator.Parser[Expr, Type, A]
Abstract Value Members
- abstract def charIn(str: String): Parser[Char]
Succeeds if the next character is a member of the given String; captures that character
- abstract def charIn(str: Seq[Char]): Parser[Char]
Succeeds if the next character is a member of the given Seq; captures that character
- abstract def charIn(str: Set[Char]): Parser[Char]
Succeeds if the next character is a member of the given Set; captures that character
- abstract def charWhere(fn: (Char) => Boolean): Parser[Char]
Succeeds if the next character matches the given predicate; captures that character
- abstract def codePointIn(str: String): Parser[CodePoint]
Succeeds if the next codepoint is a member of the given string; captures that code point
- abstract def codePointIn(str: Seq[CodePoint]): Parser[CodePoint]
Succeeds if the next codepoint is a member of the given Seq; captures that code point
- abstract def codePointIn(str: Set[CodePoint]): Parser[CodePoint]
Succeeds if the next codepoint is a member of the given Set; captures that code point
- abstract def codePointWhere(fn: (CodePoint) => Boolean): Parser[CodePoint]
Succeeds if the next codepoint matches the given predicate; captures that code point
- abstract def end: Parser[Unit]
A parser that succeeds iff the input is empty
- abstract def fail(message: String): Parser[Nothing]
A parser that always reports a failure
- abstract def isString(str: String): Parser[Unit]
Succeeds if the next set of characters in the input is equal to the given string
- abstract def lazy[A](fn: () => Parser[A]): Parser[A]
Indirectly refers to a parser, to allow for mutual-recursion
- abstract def ofType[A](implicit tpe: Type[A]): Parser[Expr[A]]
A parser that succeeds iff the next part of the input is an
arg
with the given type, and captures the arg's tree - abstract def paired[A](interpolator: Interpolator[A], extractor: Extractor[A]): Parser[A]
A parser that acts like the Interpolator when interpolating, and like the Extractor when extracting
- abstract def pass: Parser[Unit]
A parser that consumes no input and always succeeds
Concrete 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): (Parsers[Expr, ToExpr, Type], B)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def ensuring(cond: (Parsers[Expr, ToExpr, Type]) => Boolean, msg: => Any): Parsers[Expr, ToExpr, Type]
- def ensuring(cond: (Parsers[Expr, ToExpr, Type]) => Boolean): Parsers[Expr, ToExpr, Type]
- def ensuring(cond: Boolean, msg: => Any): Parsers[Expr, ToExpr, Type]
- def ensuring(cond: Boolean): Parsers[Expr, ToExpr, Type]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- 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
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Parsers[Expr, ToExpr, Type] toStringFormat[Parsers[Expr, ToExpr, Type]] 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.
- def →[B](y: B): (Parsers[Expr, ToExpr, Type], B)
- Implicit
- This member is added by an implicit conversion from Parsers[Expr, ToExpr, Type] toArrowAssoc[Parsers[Expr, ToExpr, Type]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
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.