- Add symbolic operators to Parser, Extractor and Interpolator
<~>
and<|>
as aliases forandThen
andorElse
, respectively~>
and<~
as specializations ofandThen
when one side or the other is Unit<+>
on Interpolator only as a specialization oforElse
when the desired result is a discriminated union</>
on Interpolator only as a specialization oforElse
when the second argument is a pure parser<::>
on Interpolator only as a specialization ofandThen
which prepends the left side to a list on the right side
- Add built-in but explicit Repeated instances for concatenating strings
idConcatenateString
for id contextforContext(c).concatenateString
for scala-2 macro contextquotedConcatenateString
for scala-3 quoted context
- Add
Repeat.SplicePiece
; representing either zero, one, or many items; and typeclass instances usingSplicePiece
- for scala-2 macro context:
Either.forContext(c).splicePiece
to combine aInterpolator[c.Expr[A]]
and aInterpolator[c.Expr[List[A]]]
into aInterpolator[SplicePiece[c.Expr, A]]
Repeated.forContext(c).fromSplicesToExprList
to splice the SplicePieces together into ac.Expr[List[A]]
Repeated.forContext(c).fromSplicesUsingBuilder
to splice the SplicePieces together using a arbitrary Builder
- for scala-3 quoted context:
Either.quotedSplicePiece
to combine aInterpolator[Expr[A]]
and aInterpolator[Expr[List[A]]]
into aInterpolator[SplicePiece[Expr, A]]
Repeated.quotedFromSplicesToExprList
to splice the SplicePieces together into aExpr[List[A]]
Repeated.quotedFromSplicesUsingBuilder
to splice the SplicePieces together using a arbitrary Builder
- for scala-2 macro context:
- Fix scalajs sourcemaps to point at github-hosted files instead of a local file that almost certainly does not exist
Initial tagged version