lift

parsley.lift$
object lift

This module contains lift1 through lift22, which allow for the application of a function of arity N to N parsers.

The combinators contained in this module all sequence a number of parsers together, but are capable of combining the results generated by these parsers into a single value with a given function of the correct arity. This is a clean way of putting together multiple parsers and getting a meaningful result out.

Attributes

Since:

2.2.0

Example:

scala> import parsley.character.char
scala> import parsley.lift.{lift2, lift3}
scala> case class Add(x: Int, y: Int)
scala> val p = lift2(Add, char('a') #> 4, char('b') #> 5)
scala> p.parse("ab")
val res0 = Success(Add(4, 5))
scala> val q = lift3((x: Int, y: Int, z: Int) => x * y + z, char('a') #> 3, char('b') #> 2, char('c') #> 5)
scala> q.parse("abc")
val res1 = Success(11)
scala> q.parse("ab")
val res2 = Failure(..)
scala> val q2 = lift3[Int, Int, Int, Int](_ * _ + _, char('a') #> 3, char('b') #> 2, char('c') #> 5)
Source:
lift.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
lift.type

Members list

Concise view

Value members

Concrete methods

def lift1[T1, R](f: T1 => R, p1: Parsley[T1]): Parsley[R]

This combinator allows the result of a given parser to be changed using a given function.

This combinator allows the result of a given parser to be changed using a given function.

Effectively alias for map, to be consistent with the other lift variants.

Attributes

f

the function to map across the given parser

Returns:

a parser that applies the function f to the result of the given parser.

Source:
lift.scala
def lift10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity ten.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift11[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity eleven.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift12[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity twelve.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift13[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity thirteen.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift14[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity fourteen.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift15[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity fifteen.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift16[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15], p16: => Parsley[T16]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity sixteen.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift17[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15], p16: => Parsley[T16], p17: => Parsley[T17]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity seventeen.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift18[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15], p16: => Parsley[T16], p17: => Parsley[T17], p18: => Parsley[T18]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity eighteen.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift19[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15], p16: => Parsley[T16], p17: => Parsley[T17], p18: => Parsley[T18], p19: => Parsley[T19]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity nineteen.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift2[T1, T2, R](f: (T1, T2) => R, p1: Parsley[T1], p2: => Parsley[T2]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity two.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift20[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15], p16: => Parsley[T16], p17: => Parsley[T17], p18: => Parsley[T18], p19: => Parsley[T19], p20: => Parsley[T20]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity twenty.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift21[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15], p16: => Parsley[T16], p17: => Parsley[T17], p18: => Parsley[T18], p19: => Parsley[T19], p20: => Parsley[T20], p21: => Parsley[T21]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity twenty-one.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift22[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9], p10: => Parsley[T10], p11: => Parsley[T11], p12: => Parsley[T12], p13: => Parsley[T13], p14: => Parsley[T14], p15: => Parsley[T15], p16: => Parsley[T16], p17: => Parsley[T17], p18: => Parsley[T18], p19: => Parsley[T19], p20: => Parsley[T20], p21: => Parsley[T21], p22: => Parsley[T22]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity twenty-two.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift3[T1, T2, T3, R](f: (T1, T2, T3) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity three.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift4[T1, T2, T3, T4, R](f: (T1, T2, T3, T4) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity four.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift5[T1, T2, T3, T4, T5, R](f: (T1, T2, T3, T4, T5) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity five.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift6[T1, T2, T3, T4, T5, T6, R](f: (T1, T2, T3, T4, T5, T6) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity six.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift7[T1, T2, T3, T4, T5, T6, T7, R](f: (T1, T2, T3, T4, T5, T6, T7) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity seven.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift8[T1, T2, T3, T4, T5, T6, T7, T8, R](f: (T1, T2, T3, T4, T5, T6, T7, T8) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity eight.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala
def lift9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R](f: (T1, T2, T3, T4, T5, T6, T7, T8, T9) => R, p1: Parsley[T1], p2: => Parsley[T2], p3: => Parsley[T3], p4: => Parsley[T4], p5: => Parsley[T5], p6: => Parsley[T6], p7: => Parsley[T7], p8: => Parsley[T8], p9: => Parsley[T9]): Parsley[R]

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

This combinator applies the given parsers in sequence and then applies the given function f of to all of the results.

Firstly, each parser is parsed in turn, each producing a result. So long as all of the parsers succeeded, the combinator can succeed by returning the application of the function f to all the arguments. If any of the parsers fails, the entire combinator fails.

Attributes

f

a function to apply to the results of the parsers with arity nine.

Returns:

a parser that parses all of the given parsers in order, and then combines their results with f.

Source:
lift.scala