@@ -38,7 +38,7 @@ object chain {
38
38
* scala> sealed trait Expr
39
39
* scala> case class Add(x: Expr, y: Expr) extends Expr
40
40
* scala> case class Num(x: Int) extends Expr
41
- * scala> val expr = chain.right1(digit.map(d => Num(d.asDigit)), char('+').as(Add))
41
+ * scala> val expr = chain.right1(digit.map(d => Num(d.asDigit)))( char('+').as(Add))
42
42
* scala> expr.parse("1+2+3+4")
43
43
* val res0 = Success(Add(Num(1), Add(Num(2), Add(Num(3), Num(4)))))
44
44
* scala> expr.parse("")
@@ -52,7 +52,7 @@ object chain {
52
52
* @since 4.0.0
53
53
* @group binary
54
54
*/
55
- def right1 [A ](p : Parsley [A ], op : => Parsley [(A , A ) => A ]): Parsley [A ] = infix.right1(p, op)
55
+ def right1 [A ](p : Parsley [A ])( op : => Parsley [(A , A ) => A ]): Parsley [A ] = infix.right1(p)( op)
56
56
57
57
/** This combinator handles left-associative parsing, and application of, '''zero''' or more binary operators between '''one''' or more values.
58
58
*
@@ -66,7 +66,7 @@ object chain {
66
66
* scala> sealed trait Expr
67
67
* scala> case class Add(x: Expr, y: Expr) extends Expr
68
68
* scala> case class Num(x: Int) extends Expr
69
- * scala> val expr = chain.left1(digit.map(d => Num(d.asDigit)), char('+').as(Add))
69
+ * scala> val expr = chain.left1(digit.map(d => Num(d.asDigit)))( char('+').as(Add))
70
70
* scala> expr.parse("1+2+3+4")
71
71
* val res0 = Success(Add(Add(Add(Num(1), Num(2)), Num(3)), Num(4)))
72
72
* scala> expr.parse("")
@@ -80,7 +80,7 @@ object chain {
80
80
* @since 4.0.0
81
81
* @group binary
82
82
*/
83
- def left1 [A ](p : Parsley [A ], op : => Parsley [(A , A ) => A ]): Parsley [A ] = infix.left1(p, op)
83
+ def left1 [A ](p : Parsley [A ])( op : => Parsley [(A , A ) => A ]): Parsley [A ] = infix.left1(p)( op)
84
84
85
85
/** This combinator handles right-associative parsing, and application of, '''zero''' or more binary operators between '''zero''' or more values.
86
86
*
@@ -95,7 +95,7 @@ object chain {
95
95
* scala> sealed trait Expr
96
96
* scala> case class Add(x: Expr, y: Expr) extends Expr
97
97
* scala> case class Num(x: Int) extends Expr
98
- * scala> val expr = chain.right(digit.map(d => Num(d.asDigit)), char('+').as(Add), Num(0))
98
+ * scala> val expr = chain.right(digit.map(d => Num(d.asDigit)))( char('+').as(Add), Num(0))
99
99
* scala> expr.parse("1+2+3+4")
100
100
* val res0 = Success(Add(Num(1), Add(Num(2), Add(Num(3), Num(4)))))
101
101
* scala> expr.parse("")
@@ -111,7 +111,7 @@ object chain {
111
111
* @since 4.0.0
112
112
* @group binary
113
113
*/
114
- def right [A ](p : Parsley [A ], op : => Parsley [(A , A ) => A ], x : A ): Parsley [A ] = infix.right(p, op, x) // TODO: right(x)(p, op)?
114
+ def right [A ](p : Parsley [A ])( op : => Parsley [(A , A ) => A ], x : A ): Parsley [A ] = infix.right(p)( op, x)
115
115
116
116
/** This combinator handles left-associative parsing, and application of, '''zero''' or more binary operators between '''zero''' or more values.
117
117
*
@@ -126,7 +126,7 @@ object chain {
126
126
* scala> sealed trait Expr
127
127
* scala> case class Add(x: Expr, y: Expr) extends Expr
128
128
* scala> case class Num(x: Int) extends Expr
129
- * scala> val expr = chain.left(digit.map(d => Num(d.asDigit)), char('+').as(Add), Num(0))
129
+ * scala> val expr = chain.left(digit.map(d => Num(d.asDigit)))( char('+').as(Add), Num(0))
130
130
* scala> expr.parse("1+2+3+4")
131
131
* val res0 = Success(Add(Add(Add(Num(1), Num(2)), Num(3)), Num(4)))
132
132
* scala> expr.parse("")
@@ -142,7 +142,7 @@ object chain {
142
142
* @since 4.0.0
143
143
* @group binary
144
144
*/
145
- def left [A ](p : Parsley [A ], op : => Parsley [(A , A ) => A ], x : A ): Parsley [A ] = infix.left(p, op, x) // TODO: left(x)(p, op)?
145
+ def left [A ](p : Parsley [A ])( op : => Parsley [(A , A ) => A ], x : A ): Parsley [A ] = infix.left(p)( op, x)
146
146
147
147
/** This combinator handles right-assocative parsing, and application of, '''zero''' or more prefix unary operators to a single value.
148
148
*
@@ -158,7 +158,7 @@ object chain {
158
158
* scala> case class Negate(x: Expr) extends Expr
159
159
* scala> case class Id(x: Expr) extends Expr
160
160
* scala> case class Num(x: Int) extends Expr
161
- * scala> val expr = chain.prefix(char('-').as(Negate) <|> char('+').as(Id), digit.map(d => Num(d.asDigit) ))
161
+ * scala> val expr = chain.prefix(digit.map(d => Num(d.asDigit))( char('-').as(Negate) <|> char('+').as(Id))
162
162
* scala> expr.parse("--+1")
163
163
* val res0 = Success(Negate(Negate(Id(Num(1)))))
164
164
* scala> expr.parse("1")
@@ -173,7 +173,7 @@ object chain {
173
173
* @since 2.2.0
174
174
* @group unary
175
175
*/
176
- def prefix [A ](op : Parsley [A => A ], p : Parsley [A ]): Parsley [A ] = new Parsley (new frontend.ChainPre (p.internal, op.internal))
176
+ def prefix [A ](p : Parsley [A ])( op : Parsley [A => A ]): Parsley [A ] = new Parsley (new frontend.ChainPre (p.internal, op.internal))
177
177
178
178
/** This combinator handles left-assocative parsing, and application of, '''zero''' or more postfix unary operators to a single value.
179
179
*
@@ -189,7 +189,7 @@ object chain {
189
189
* scala> case class Inc(x: Expr) extends Expr
190
190
* scala> case class Dec(x: Expr) extends Expr
191
191
* scala> case class Num(x: Int) extends Expr
192
- * scala> val expr = chain.postfix(digit.map(d => Num(d.asDigit)), string("++").as(Inc) <|> string("--").as(Dec))
192
+ * scala> val expr = chain.postfix(digit.map(d => Num(d.asDigit)))( string("++").as(Inc) <|> string("--").as(Dec))
193
193
* scala> expr.parse("1++----")
194
194
* val res0 = Success(Dec(Dec(Inc(Num(1)))))
195
195
* scala> expr.parse("1")
@@ -204,7 +204,7 @@ object chain {
204
204
* @since 2.2.0
205
205
* @group unary
206
206
*/
207
- def postfix [A ](p : Parsley [A ], op : => Parsley [A => A ]): Parsley [A ] = new Parsley (new frontend.ChainPost (p.internal, op.internal))
207
+ def postfix [A ](p : Parsley [A ])( op : => Parsley [A => A ]): Parsley [A ] = new Parsley (new frontend.ChainPost (p.internal, op.internal))
208
208
209
209
/** This combinator handles right-assocative parsing, and application of, '''one''' or more prefix unary operators to a single value.
210
210
*
@@ -220,7 +220,7 @@ object chain {
220
220
* scala> case class Negate(x: Expr) extends Expr
221
221
* scala> case class Id(x: Expr) extends Expr
222
222
* scala> case class Num(x: Int) extends Expr
223
- * scala> val expr = chain.prefix1(char('-').as(Negate) <|> char('+').as(Id), digit.map(d => Num(d.asDigit) ))
223
+ * scala> val expr = chain.prefix1(digit.map(d => Num(d.asDigit)))( char('-').as(Negate) <|> char('+').as(Id))
224
224
* scala> expr.parse("--+1")
225
225
* val res0 = Success(Negate(Negate(Id(Num(1)))))
226
226
* scala> expr.parse("1")
@@ -235,7 +235,7 @@ object chain {
235
235
* @since 3.0.0
236
236
* @group unary
237
237
*/
238
- def prefix1 [A , B <: A ](op : Parsley [A => B ], p : => Parsley [ A ] ): Parsley [B ] = op <*> prefix(op, p )
238
+ def prefix1 [A , B <: A ](p : => Parsley [ A ])( op : Parsley [A => B ]): Parsley [B ] = op <*> prefix(p)(op )
239
239
240
240
/** This combinator handles left-assocative parsing, and application of, '''one''' or more postfix unary operators to a single value.
241
241
*
@@ -266,8 +266,8 @@ object chain {
266
266
* @since 3.0.0
267
267
* @group unary
268
268
*/
269
- def postfix1 [A , B <: A ](p : Parsley [A ], op : => Parsley [A => B ]): Parsley [B ] = {
269
+ def postfix1 [A , B <: A ](p : Parsley [A ])( op : => Parsley [A => B ]): Parsley [B ] = {
270
270
lazy val op_ = op
271
- postfix(p <**> op_, op_)
271
+ postfix(p <**> op_)( op_)
272
272
}
273
273
}
0 commit comments