@@ -274,50 +274,16 @@ macro_rules! take_until_newline_or_eof {
274
274
} } ;
275
275
}
276
276
277
- macro_rules! tuple {
278
- ( $i: expr, $( $rest: tt) * ) => {
279
- tuple_parser!( $i, ( ) , $( $rest) * )
280
- } ;
281
- }
282
-
283
- /// Do not use directly. Use `tuple!`.
284
- macro_rules! tuple_parser {
285
- ( $i: expr, ( $( $parsed: tt) ,* ) , $e: ident, $( $rest: tt) * ) => {
286
- tuple_parser!( $i, ( $( $parsed) ,* ) , call!( $e) , $( $rest) * )
287
- } ;
288
-
289
- ( $i: expr, ( ) , $submac: ident!( $( $args: tt) * ) , $( $rest: tt) * ) => {
290
- match $submac!( $i, $( $args) * ) {
277
+ macro_rules! pair {
278
+ ( $i: expr, $first: ident!( $( $arg1: tt) * ) , $second: ident!( $( $arg2: tt) * ) ) => {
279
+ match $first!( $i, $( $arg1) * ) {
291
280
Err ( LexError ) => Err ( LexError ) ,
292
- Ok ( ( i, o) ) => tuple_parser!( i, ( o) , $( $rest) * ) ,
293
- }
294
- } ;
295
-
296
- ( $i: expr, ( $( $parsed: tt) * ) , $submac: ident!( $( $args: tt) * ) , $( $rest: tt) * ) => {
297
- match $submac!( $i, $( $args) * ) {
298
- Err ( LexError ) => Err ( LexError ) ,
299
- Ok ( ( i, o) ) => tuple_parser!( i, ( $( $parsed) * , o) , $( $rest) * ) ,
300
- }
301
- } ;
302
-
303
- ( $i: expr, ( $( $parsed: tt) ,* ) , $e: ident) => {
304
- tuple_parser!( $i, ( $( $parsed) ,* ) , call!( $e) )
305
- } ;
306
-
307
- ( $i: expr, ( ) , $submac: ident!( $( $args: tt) * ) ) => {
308
- $submac!( $i, $( $args) * )
309
- } ;
310
-
311
- ( $i: expr, ( $( $parsed: expr) ,* ) , $submac: ident!( $( $args: tt) * ) ) => {
312
- match $submac!( $i, $( $args) * ) {
313
- Err ( LexError ) => Err ( LexError ) ,
314
- Ok ( ( i, o) ) => Ok ( ( i, ( $( $parsed) ,* , o) ) )
281
+ Ok ( ( i, o1) ) => match $second!( i, $( $arg2) * ) {
282
+ Err ( LexError ) => Err ( LexError ) ,
283
+ Ok ( ( i, o2) ) => Ok ( ( i, ( o1, o2) ) ) ,
284
+ } ,
315
285
}
316
286
} ;
317
-
318
- ( $i: expr, ( $( $parsed: expr) ,* ) ) => {
319
- Ok ( ( $i, ( $( $parsed) ,* ) ) )
320
- } ;
321
287
}
322
288
323
289
macro_rules! not {
0 commit comments