implicit class ParserFollowedByOps[In, A] extends AnyRef
Adds followedBy and followedByStream to Parser (they aren't defined in the Parser trait due to the In type needing to be invariant here)
- Source
- Parser.scala
- Grouped
- Alphabetic
- By Inheritance
- ParserFollowedByOps
- 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
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toany2stringadd[ParserFollowedByOps[In, A]] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (ParserFollowedByOps[In, A], B)
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toArrowAssoc[ParserFollowedByOps[In, A]] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (ParserFollowedByOps[In, A]) => Boolean, msg: => Any): ParserFollowedByOps[In, A]
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toEnsuring[ParserFollowedByOps[In, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (ParserFollowedByOps[In, A]) => Boolean): ParserFollowedByOps[In, A]
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toEnsuring[ParserFollowedByOps[In, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): ParserFollowedByOps[In, A]
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toEnsuring[ParserFollowedByOps[In, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): ParserFollowedByOps[In, A]
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toEnsuring[ParserFollowedByOps[In, A]] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def followedBy: FollowedBy[In, A, Parser]
Intermediate object for creating a sequenced parser in which the result of this parser will be used to initialize a second parser as soon as it is available.
Intermediate object for creating a sequenced parser in which the result of this parser will be used to initialize a second parser as soon as it is available.
In other words, the source (series of
Invalues) will be fed into this Parser until this parser's handler returns a result of typeOut. At that point, the second parser (as specified by using theapplyorflatMapmethods on theFollowedByreturned by this method) will be instantiated. Any relevant "stack events" (seeStackable) will be replayed so the second parser has the right context, and from that point on, allInvalues will be sent to the second parser. When that second parser returns a result, that result becomes the output of the combined parser created bythis.followedBy(out => makeSecondParser(out))Examples:
val p1: Parser[A] = /* ... */ def getP2(p1Result: A): Parser[B] = /* ... */ val combined: Parser[B] = p1.followedBy(getP2) // alternative `flatMap` syntax val combined: Parser[B] = for { p1Result <- p1.followedBy p2Result <- getP2(p1Result) } yield p2Result
See Parser's
interruptedBy, which is useful when atransformer.parseFirstOptionmust befollowedBysome other parser. - def followedByParser: FollowedBy[In, A, Parser]
Alias for
followedBy, for use when Cat'sApplyOpsgets in the way with its own uselessfollowedBymethod. - def followedByStream: FollowedBy[In, A, Transformer]
Intermediate object creating a transformer that depends on this parser.
Intermediate object creating a transformer that depends on this parser. Particularly useful in cases where one or more specific "info" elements precede a stream of other elements which require that "info" to be parsed.
Examples:
val p1: Parser[In, A] = /* ... */ def getP2Stream(p1Result: A): Transformer[In, B] = /* ... */ val combined: Transformer[In, B] = p1.andThenStream(getP2Stream) // alternative `flatMap` syntax val combined: Transformer[In, B] = for { p1Result <- p1.andThenStream p2Result <- getP2Stream(p1Result) } yield p2Result
See
followedByfor a general explanation of how the combination works.See also,
interruptedBy, which is useful when atransformer.parseFirstOptionmust befollowedBysome other transformer. - def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toStringFormat[ParserFollowedByOps[In, A]] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @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
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()
Deprecated Value Members
- def →[B](y: B): (ParserFollowedByOps[In, A], B)
- Implicit
- This member is added by an implicit conversion from ParserFollowedByOps[In, A] toArrowAssoc[ParserFollowedByOps[In, A]] 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.