@@ -201,14 +201,13 @@ export function sequence<T extends Array<unknown>>(
201
201
*
202
202
* Will cause infinite recursion if the parser can parse nothing.
203
203
*/
204
- export function many_ < T > ( parser : Parser < T > ) : Parser < Array < T > > {
205
- return choice (
204
+ export const many = memoize ( < T > ( parser : Parser < T > ) : Parser < Array < T > > =>
205
+ choice (
206
206
sequence ( parser , lazy ( ( ) => many ( parser ) ) )
207
207
. map ( ( [ first , rest ] ) => [ first , ...rest ] ) ,
208
208
emptyArray ,
209
- ) ;
210
- }
211
- export const many = memoize ( many_ ) ;
209
+ )
210
+ ) ;
212
211
/**
213
212
* Like `many` but parses at least once.
214
213
*
@@ -228,14 +227,13 @@ export function manyAtLeastOnce<T>(parser: Parser<T>): Parser<Array<T>> {
228
227
*
229
228
* Will cause infinite recursion if the parser can parse nothing.
230
229
*/
231
- export function all_ < T > ( parser : Parser < T > ) : Parser < Array < T > > {
232
- return choiceOnlyOne (
230
+ export const all = memoize ( < T > ( parser : Parser < T > ) : Parser < Array < T > > =>
231
+ choiceOnlyOne (
233
232
sequence ( parser , lazy ( ( ) => all ( parser ) ) )
234
233
. map ( ( [ first , rest ] ) => [ first , ...rest ] ) ,
235
234
emptyArray ,
236
- ) ;
237
- }
238
- export const all = memoize ( all_ ) ;
235
+ )
236
+ ) ;
239
237
/**
240
238
* Like `all` but parses at least once.
241
239
*
@@ -247,8 +245,8 @@ export function allAtLeastOnce<T>(parser: Parser<T>): Parser<Array<T>> {
247
245
return sequence ( parser , all ( parser ) )
248
246
. map ( ( [ first , rest ] ) => [ first , ...rest ] ) ;
249
247
}
250
- export function count < T > ( parser : Parser < Array < T > > ) : Parser < number > {
251
- return parser . map ( ( array ) => array . length ) ;
248
+ export function count ( parser : Parser < { length : number } > ) : Parser < number > {
249
+ return parser . map ( ( { length } ) => length ) ;
252
250
}
253
251
function describeSource ( src : string ) : string {
254
252
if ( src === "" ) {
0 commit comments