object Parser
- Source
- Parser.scala
- Alphabetic
- By Inheritance
- Parser
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- trait FollowedBy[In, +A, M[-_, +_]] extends AnyRef
An intermediate object for creating sequence-based combination methods for a Parser or Consumer.
An intermediate object for creating sequence-based combination methods for a Parser or Consumer.
- A
Output type for the "first" parser/consumer; using the combination methods in this trait will result in an instance of T1 being used to create a "second" parser/consumer/transformer to be run sequentially after the first.
- M
Type constructor for the parser/consumer of a given output type
- 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.
- implicit final class ParserFlatten[In, A, F[_]] extends AnyVal
- implicit class ParserFollowedByOps[In, A] extends AnyRef
Adds
followedBy
andfollowedByStream
to Parser (they aren't defined in the Parser trait due to theIn
type needing to be invariant here) - trait Stateless[-In, +Out] extends Parser[In, Out] with Handler[In, Out]
Specialization for Parsers which require no mutable state.
Specialization for Parsers which require no mutable state. A "stateless" parser acts as its own handler.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[In]: ParserApplyWithBoundInput[In]
Convenience for creating parsers whose input type is bound to
In
.Convenience for creating parsers whose input type is bound to
In
.This is particularly nice when the
Out
type can be inferred by the compiler, e.g.Parser[Int].fold(1)(_ + _) // versus Parser.fold[Int, Int](1)(_ + _)
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- implicit def catsApplicativeForParser[In](implicit callerPos: CallerPos): Applicative[[A]Parser[In, A]]
Applicative for Parser with a fixed
In
type. - def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def defer[In, Out](p: => Parser[In, Out]): Parser[In, Out]
Creates a parser which delegates to the given call-by-name
p
parser.Creates a parser which delegates to the given call-by-name
p
parser. Thep
expression isn't evaluated until a handler created by this parser is created - that handler will bep
's handler. The underlying parser is not memoized, so if a new handler is constructed, thep
expression will be re-evaluated.- In
The parser's input type
- Out
The parser's output type
- p
A call-by-name expression which returns a Parser
- def deferHandler[In, Out](h: => Handler[In, Out]): Parser[In, Out]
Creates a parser from a call-by-name handler construction expression.
Creates a parser from a call-by-name handler construction expression. This is effectively doing
new Parser[In, Out] { def newHandler = h }
- def delay[Out](value: => Out): Parser[Any, Out]
Creates a parser which evaluates the call-by-name
value
expression.Creates a parser which evaluates the call-by-name
value
expression. Thevalue
expression won't be evaluated until a handler created by this parser is asked tostep
orfinish
. The value is not memoized, so if a new handler is created, that handler will re-evaluate the value.- Out
the result type
- value
A call-by-name expression which will be evaluated by the returned parser's
Handler
- def drain: Parser[Any, Unit]
Create a parser which will consume the entire input stream, ignoring each value, yielding a Unit result when the stream ends.
- 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 find[In](predicate: (In) => Boolean): Parser[In, Option[In]]
Creates a parser which returns the first input for which the
predicate
function returns true. - def first[In](implicit arg0: TypeName[In]): Parser[In, In]
Creates a parser which returns the first input it receives, or throws a
SpacException.MissingFirstException
when handling an empty stream. - def firstOpt[In]: Parser[In, Option[In]]
Creates a parser which returns the first input it receives, or None when handling an empty stream.
- def fold[In, Out](init: Out)(op: (Out, In) => Out): Parser[In, Out]
Creates a parser which folds inputs into its state according to the
op
function, returning its final state when the input stream ends.Creates a parser which folds inputs into its state according to the
op
function, returning its final state when the input stream ends.- init
The initial state
- op
state update function
- def fromBuilder[In, Out](b: => Builder[In, Out]): Parser[In, Out]
Creates a parser whose handlers which will construct a new builder via the call-by-name
b
expression.Creates a parser whose handlers which will construct a new builder via the call-by-name
b
expression. The builder's result will be used as the result of the handler. - 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 oneOf[In, Out](parsers: Parser[In, Out]*): Parser[In, Out]
Create a single parser which will attempt to run each of the given
parsers
in parallel, yielding the result from the first of theparsers
that successfully completes.Create a single parser which will attempt to run each of the given
parsers
in parallel, yielding the result from the first of theparsers
that successfully completes. If multipleparsers
return a result for the same input, priority is determined by their order when given to this method. If all of theparsers
fail by throwing exceptions, all but the latest exception will be swallowed, and the last exception will be rethrown.- parsers
A collection of Parsers which will be run in parallel.
- def pure[Out](value: Out): Parser[Any, Out]
Creates a parser which always results in
value
.Creates a parser which always results in
value
.- value
the result of the parser
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def tap[In](f: (In) => Unit): Parser[In, Unit]
Create a parser which runs the side-effecting function
f
for each input it receives, yielding a Unit result. - def toChain[In]: Parser[In, Chain[In]]
Creates a parser that builds a
cats.data.Chain
from the inputs it receives. - def toList[In]: Parser[In, List[In]]
Creates a parser that builds a List from the inputs it receives.
- def toMap[K, V]: Parser[(K, V), Map[K, V]]
Creates a parser that builds a Map from the
(key, value)
tuple inputs it receives. - 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 constant[Out](value: Out): Parser[Any, Out]
- Annotations
- @deprecated
- Deprecated
(Since version v0.9) use
.pure
instead
- def firstOption[In]: Parser[In, Option[In]]
- Annotations
- @deprecated
- Deprecated
(Since version v0.9) Use
firstOpt
instead
- def foreach[In](f: (In) => Any): Parser[In, Unit]
- Annotations
- @deprecated
- Deprecated
(Since version v0.9) Use
tap
instead