@@ -258,12 +258,12 @@ macro_rules! __parse_ensure {
258258 $crate:: __parse_ensure!( generic ( epath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
259259 } ;
260260
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) * )
263263 } ;
264264
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) * )
267267 } ;
268268
269269 ( 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 {
282282 $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $bang $args) $( $parse) * } ( $( $rest) * ) $( $rest) * )
283283 } ;
284284
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+
285289 ( epath ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) $parse: tt $dup: tt $( $rest: tt) * ) => {
286290 $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) $parse $dup $( $rest) * )
287291 } ;
@@ -308,12 +312,12 @@ macro_rules! __parse_ensure {
308312 $crate:: __parse_ensure!( generic ( atom $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $dot $ident $colons $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
309313 } ;
310314
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) * )
313317 } ;
314318
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) * )
317321 } ;
318322
319323 ( 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 {
444448 $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
445449 } ;
446450
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) * )
449453 } ;
450454
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) * )
453457 } ;
454458
455459 ( tpath $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $colons: tt $langle: tt $( $dup: tt) * ) :: < $( $rest: tt) * ) => {
456460 $crate:: __parse_ensure!( generic ( tpath $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $colons $langle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
457461 } ;
458462
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) * )
461465 } ;
462466
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) * )
465469 } ;
466470
467471 ( 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 {
502506
503507 // qualified paths
504508
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+
505513 ( 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) * ) => {
506514 $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle $colons $ident) $( $parse) * } ( $( $rest) * ) $( $rest) * )
507515 } ;
@@ -520,18 +528,26 @@ macro_rules! __parse_ensure {
520528 $crate:: __parse_ensure!( tpath ( arglist $stack) $bail ( $( $fuel) * ) { ( $( $buf) * $plus $ident) $( $parse) * } ( $( $rest) * ) $( $rest) * )
521529 } ;
522530
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+
523535 ( object ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) $parse: tt $dup: tt $( $rest: tt) * ) => {
524536 $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) $parse $dup $( $rest) * )
525537 } ;
526538
527539 // angle bracketed generic arguments
528540
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+
529545 ( generic ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
530546 $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
531547 } ;
532548
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) * )
535551 } ;
536552
537553 ( 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 {
562578 $crate:: __parse_ensure!( generic $stack $bail ( $( $fuel) * ) { ( $( $buf) * $comma) $( $parse) * } ( $( $rest) * ) $( $rest) * )
563579 } ;
564580
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+
565585 ( arglist ( $pop: ident $stack: tt) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $rangle: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
566586 $crate:: __parse_ensure!( $pop $stack $bail ( $( $fuel) * ) { ( $( $buf) * $rangle) $( $parse) * } ( $( $rest) * ) $( $rest) * )
567587 } ;
568588
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) * )
571591 } ;
572592
573593 // patterns
@@ -690,10 +710,18 @@ macro_rules! __parse_ensure {
690710 $crate:: __parse_ensure!( 0 $stack $bail ( $( $fuel) * ) { ( $( $buf) * $ge) $( $parse) * } ( $( $rest) * ) $( $rest) * )
691711 } ;
692712
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+
693717 ( atom ( ) $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) * ) $( $parse: tt) * } ( $gt: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
694718 $crate:: __parse_ensure!( 0 ( ) $bail ( $( $fuel) * ) { ( ) $( $parse) * ( $( $buf) * ) $gt} ( $( $rest) * ) $( $rest) * )
695719 } ;
696720
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+
697725 ( atom $stack: tt $bail: tt ( ~$( $fuel: tt) * ) { ( $( $buf: tt) +) $( $parse: tt) * } ( $gt: tt $( $dup: tt) * ) > $( $rest: tt) * ) => {
698726 $crate:: __parse_ensure!( 0 $stack $bail ( $( $fuel) * ) { ( $( $buf) * $gt) $( $parse) * } ( $( $rest) * ) $( $rest) * )
699727 } ;
0 commit comments