trait Handler[-In, +Out] extends AnyRef
An internally-mutable representation of a Parser, which reacts to inputs from a data stream and eventually produces a result.
- Source
- Parser.scala
- Alphabetic
- By Inheritance
- Handler
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def finish(): Out
Signal the end of the data stream to this handler, forcing it to generate a result.
Signal the end of the data stream to this handler, forcing it to generate a result. Handlers may throw exceptions in response to this, such as a handler which wants the first event from an empty stream.
Further calls to
steporfinishafter the first call tofinishwill result in undefined behavior. The general assumption is that a handler should be discarded after itsfinishmethod is called.- returns
the final result of this parser
- abstract def step(in: In): Either[Out, Handler[In, Out]]
Advance the state of this handler by accepting a single input of type
In.Advance the state of this handler by accepting a single input of type
In. If doing so would cause this parser to complete, return aLeftcontaining the output. Otherwise, return aRightcontaining the next parser state.Handlers are assumed to be internally-mutable, so it is acceptable to simply update some internal state and then return
Right(this), although in some cases it will be desirable to return a separate handler entirely.- in
A single input event from a data stream
- returns
If the input would finish the parser, return a
Leftcontaining the result. Otherwise, return aRightcontaining a Handler which represents the next parsing state. The handler in aRightmay be this handler, or a completely separate one.
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): (Handler[In, Out], B)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def asTopLevelHandler(caller: SpacTraceElement): Handler[In, Out]
Wraps this handler as a "top level" handler, which will inject a SpacTraceElement (representing the current input or the "EOF" signal) to any exception is thrown by this handler when calling its
steporfinishmethods.Wraps this handler as a "top level" handler, which will inject a SpacTraceElement (representing the current input or the "EOF" signal) to any exception is thrown by this handler when calling its
steporfinishmethods.Used internally by
Parser'sparsemethods. - def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (Handler[In, Out]) => Boolean, msg: => Any): Handler[In, Out]
- def ensuring(cond: (Handler[In, Out]) => Boolean): Handler[In, Out]
- def ensuring(cond: Boolean, msg: => Any): Handler[In, Out]
- def ensuring(cond: Boolean): Handler[In, Out]
- 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 formatted(fmtstr: String): String
- 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()
- def stepMany[C[_], In2 <: In](inputs: C[In2])(implicit C: Unconsable[C]): Either[(Out, C[In2]), Handler[In, Out]]
Convenience function to call
stepon a sequence of inputs all at once.Convenience function to call
stepon a sequence of inputs all at once. If thestepreturns a result, this method will return aLeftcontaining that result and the remainder of theinputsthat were not consumed. If theinputsrun out before the handler returns a result from astep, this method will return aRightcontaining the latest state of the handler. This method will not call the handler'sfinish().In general, you won't call this method directly. Instead, use one of the Parser trait's
parsemethods.- C
An
Unconsablecollection, i.e.Listorcats.data.Chain- In2
Subtype of
In, orIn(to satisfy contravariance)- inputs
A sequence of inputs
- C
Evidence that the
inputshas ahead/tailsplit operation- returns
Either the handler's result paired with the remaining inputs, or the new handler state
- 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): (Handler[In, Out], B)
- Implicit
- This member is added by an implicit conversion from Handler[In, Out] toArrowAssoc[Handler[In, Out]] 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.