@@ -258,12 +258,12 @@ macro_rules! __parse_ensure {
258
258
$crate:: __parse_ensure!( generic ( epath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
259
259
} ;
260
260
261
- ( epath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $( $dup: tt) * ) :: << $( $rest: tt) * ) => {
262
- $crate:: __parse_ensure!( generic ( epath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons < ) $( $parse) * } ( < $( $rest) * ) < $( $rest) * ) // FIXME
261
+ ( epath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $langle : tt $ ( $dup: tt) * ) :: << $( $rest: tt) * ) => {
262
+ $crate:: __parse_ensure!( type ( qpath ( tpath ( arglist ( epath $stack) ) ) ) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $langle ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
263
263
} ;
264
264
265
- ( epath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $( $dup: tt) * ) :: <- $( $rest: tt) * ) => {
266
- $crate:: __parse_ensure!( generic ( epath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons < ) $( $parse) * } ( - $( $rest) * ) - $( $rest) * ) // FIXME
265
+ ( epath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $larrow : tt $lit : literal $ ( $dup: tt) * ) :: <- $( $rest: tt) * ) => {
266
+ $crate:: __parse_ensure!( generic ( epath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $larrow ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
267
267
} ;
268
268
269
269
( epath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $ident: tt $( $dup: tt) * ) :: $i: ident $( $rest: tt) * ) => {
@@ -282,6 +282,10 @@ macro_rules! __parse_ensure {
282
282
$crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $bang $args) $( $parse) * } ( $( $rest) * ) $( $rest) * )
283
283
} ;
284
284
285
+ ( epath ( split ( $pop: ident $stack: tt) ) $bail: tt ( ~$( $fuel: tt) * ) $parse: tt $dup: tt $( $rest: tt) * ) => {
286
+ $crate:: __parse_ensure!( $pop ( split $stack) $bail ( $( $fuel) * ) $parse $dup $( $rest) * )
287
+ } ;
288
+
285
289
( epath ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) $parse: tt $dup: tt $( $rest: tt) * ) => {
286
290
$crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) $parse $dup $( $rest) * )
287
291
} ;
@@ -308,12 +312,12 @@ macro_rules! __parse_ensure {
308
312
$crate:: __parse_ensure!( generic ( atom $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $dot $ident $colons $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
309
313
} ;
310
314
311
- ( atom $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $dot: tt $ident: tt $colons: tt $( $dup: tt) * ) . $i: ident :: << $( $rest: tt) * ) => {
312
- $crate:: __parse_ensure!( generic ( atom $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $dot $ident $colons < ) $( $parse) * } ( < $( $rest) * ) < $( $rest) * ) // FIXME
315
+ ( atom $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $dot: tt $ident: tt $colons: tt $langle : tt $ ( $dup: tt) * ) . $i: ident :: << $( $rest: tt) * ) => {
316
+ $crate:: __parse_ensure!( type ( qpath ( tpath ( arglist ( atom $stack) ) ) ) $bail ( $( $fuel) * ) { ( $( $buf) * $dot $ident $colons $langle ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
313
317
} ;
314
318
315
- ( atom $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $dot: tt $ident: tt $colons: tt $( $dup: tt) * ) . $i: ident :: <- $( $rest: tt) * ) => {
316
- $crate:: __parse_ensure!( generic ( atom $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $dot $ident $colons < ) $( $parse) * } ( - $( $rest) * ) - $( $rest) * ) // FIXME
319
+ ( atom $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $dot: tt $ident: tt $colons: tt $larrow : tt $lit : literal $ ( $dup: tt) * ) . $i: ident :: <- $( $rest: tt) * ) => {
320
+ $crate:: __parse_ensure!( generic ( atom $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $dot $ident $colons $larrow ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
317
321
} ;
318
322
319
323
( atom $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $dot: tt $field: tt $( $dup: tt) * ) . $i: ident $( $rest: tt) * ) => {
@@ -444,24 +448,24 @@ macro_rules! __parse_ensure {
444
448
$crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
445
449
} ;
446
450
447
- ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } $ dup: tt << $( $rest: tt) * ) => {
448
- $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * < ) $( $parse) * } ( < $( $rest) * ) < $( $rest) * ) // FIXME
451
+ ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $langle : tt $ ( $ dup: tt) * ) << $( $rest: tt) * ) => {
452
+ $crate:: __parse_ensure!( type ( qpath ( tpath ( arglist ( tpath $stack) ) ) ) $bail ( $( $fuel) * ) { ( $( $buf) * $langle ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
449
453
} ;
450
454
451
- ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } $ dup: tt <- $( $rest: tt) * ) => {
452
- $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * < ) $( $parse) * } ( - $( $rest) * ) - $( $rest) * ) // FIXME
455
+ ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $larrow : tt $lit : literal $ ( $ dup: tt) * ) <- $( $rest: tt) * ) => {
456
+ $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $larrow ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
453
457
} ;
454
458
455
459
( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $langle: tt $( $dup: tt) * ) :: < $( $rest: tt) * ) => {
456
460
$crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
457
461
} ;
458
462
459
- ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $( $dup: tt) * ) :: << $( $rest: tt) * ) => {
460
- $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons < ) $( $parse) * } ( < $( $rest) * ) < $( $rest) * ) // FIXME
463
+ ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $langle : tt $ ( $dup: tt) * ) :: << $( $rest: tt) * ) => {
464
+ $crate:: __parse_ensure!( type ( qpath ( tpath ( arglist ( tpath $stack) ) ) ) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $langle ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
461
465
} ;
462
466
463
- ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $( $dup: tt) * ) :: <- $( $rest: tt) * ) => {
464
- $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons < ) $( $parse) * } ( - $( $rest) * ) - $( $rest) * ) // FIXME
467
+ ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $larrow : tt $lit : literal $ ( $dup: tt) * ) :: <- $( $rest: tt) * ) => {
468
+ $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $larrow ) $( $parse) * } ( $( $rest) * ) $( $rest) * )
465
469
} ;
466
470
467
471
( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $ident: tt $( $dup: tt) * ) :: $i: ident $( $rest: tt) * ) => {
@@ -502,6 +506,10 @@ macro_rules! __parse_ensure {
502
506
503
507
// qualified paths
504
508
509
+ ( qpath ( split ( $pop: ident $stack: tt) ) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $colons: tt $ident: tt $( $dup: tt) * ) >> :: $i: ident $( $rest: tt) * ) => {
510
+ $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle $colons $ident) $( $parse) * } ( $( $rest) * ) $( $rest) * )
511
+ } ;
512
+
505
513
( qpath ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $colons: tt $ident: tt $( $dup: tt) * ) > :: $i: ident $( $rest: tt) * ) => {
506
514
$crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle $colons $ident) $( $parse) * } ( $( $rest) * ) $( $rest) * )
507
515
} ;
@@ -520,18 +528,26 @@ macro_rules! __parse_ensure {
520
528
$crate:: __parse_ensure!( tpath ( arglist $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $plus $ident) $( $parse) * } ( $( $rest) * ) $( $rest) * )
521
529
} ;
522
530
531
+ ( object ( split ( $pop: ident $stack: tt) ) $bail: tt ( ~$( $fuel: tt) * ) $parse: tt $dup: tt $( $rest: tt) * ) => {
532
+ $crate:: __parse_ensure!( $pop ( split $stack) $bail ( $( $fuel) * ) $parse $dup $( $rest) * )
533
+ } ;
534
+
523
535
( object ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) $parse: tt $dup: tt $( $rest: tt) * ) => {
524
536
$crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) $parse $dup $( $rest) * )
525
537
} ;
526
538
527
539
// angle bracketed generic arguments
528
540
541
+ ( generic ( split ( $pop: ident $stack: tt) ) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $( $dup: tt) * ) >> $( $rest: tt) * ) => {
542
+ $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
543
+ } ;
544
+
529
545
( generic ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
530
546
$crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
531
547
} ;
532
548
533
- ( generic ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } $ dup: tt >> $( $rest: tt) * ) => {
534
- $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * > ) $( $parse) * } ( > $( $rest) * ) > $( $rest) * ) // FIXME
549
+ ( generic ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle : tt $ ( $ dup: tt) * ) >> $( $rest: tt) * ) => {
550
+ $crate:: __parse_ensure!( $pop ( split $stack) $bail ( $( $fuel) * ) { ( $( $buf) * ) $( $parse) * } ( $rangle $( $rest) * ) $rangle $( $rest) * )
535
551
} ;
536
552
537
553
( generic $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $neg: tt $lit: literal $( $dup: tt) * ) - $( $rest: tt) * ) => {
@@ -562,12 +578,16 @@ macro_rules! __parse_ensure {
562
578
$crate:: __parse_ensure!( generic $stack $bail ( $( $fuel) * ) { ( $( $buf) * $comma) $( $parse) * } ( $( $rest) * ) $( $rest) * )
563
579
} ;
564
580
581
+ ( arglist ( split ( $pop: ident $stack: tt) ) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $( $dup: tt) * ) >> $( $rest: tt) * ) => {
582
+ $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * ) $rangle $( $parse) * } ( $( $rest) * ) $( $rest) * )
583
+ } ;
584
+
565
585
( arglist ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
566
586
$crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
567
587
} ;
568
588
569
- ( arglist ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } $ dup: tt >> $( $rest: tt) * ) => {
570
- $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * > ) $( $parse) * } ( > $( $rest) * ) > $( $rest) * ) // FIXME
589
+ ( arglist ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle : tt $ ( $ dup: tt) * ) >> $( $rest: tt) * ) => {
590
+ $crate:: __parse_ensure!( $pop ( split $stack) $bail ( $( $fuel) * ) { ( $( $buf) * ) $( $parse) * } ( $rangle $( $rest) * ) $rangle $( $rest) * )
571
591
} ;
572
592
573
593
// patterns
@@ -690,10 +710,18 @@ macro_rules! __parse_ensure {
690
710
$crate:: __parse_ensure!( 0 $stack $bail ( $( $fuel) * ) { ( $( $buf) * $ge) $( $parse) * } ( $( $rest) * ) $( $rest) * )
691
711
} ;
692
712
713
+ ( atom ( split ( ) ) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } $dup: tt >> $( $rest: tt) * ) => {
714
+ $crate:: __parse_ensure!( 0 ( ) $bail ( $( $fuel) * ) { ( ) $( $parse) * ( $( $buf) * > ) > } ( $( $rest) * ) $( $rest) * )
715
+ } ;
716
+
693
717
( atom ( ) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $gt: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
694
718
$crate:: __parse_ensure!( 0 ( ) $bail ( $( $fuel) * ) { ( ) $( $parse) * ( $( $buf) * ) $gt} ( $( $rest) * ) $( $rest) * )
695
719
} ;
696
720
721
+ ( atom ( split $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) +) $( $parse: tt) * } ( $rangle: tt $( $dup: tt) * ) >> $( $rest: tt) * ) => {
722
+ $crate:: __parse_ensure!( 0 $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
723
+ } ;
724
+
697
725
( atom $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) +) $( $parse: tt) * } ( $gt: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
698
726
$crate:: __parse_ensure!( 0 $stack $bail ( $( $fuel) * ) { ( $( $buf) * $gt) $( $parse) * } ( $( $rest) * ) $( $rest) * )
699
727
} ;
0 commit comments