pub fn parse_meta_item(&mut self) -> PResult<'a, ast::MetaItem> {
        let nt_meta = match self.token.kind {
            token::Interpolated(ref nt) => match **nt {
                token::NtMeta(ref e) => Some(e.clone()),
                _ => None,
            },
            _ => None,
        };

        if let Some(item) = nt_meta {
            return match item.meta(item.path.span) {
                Some(meta) => {
                    self.bump();
                    Ok(meta)
                }
                None => self.unexpected(),
            }
        }

        let lo = self.token.span;
        let path = self.parse_path(PathStyle::Mod)?;
        let kind = self.parse_meta_item_kind()?;
        let span = lo.to(self.prev_span);
        Ok(ast::MetaItem { path, kind, span })
    }
/// Matches the following grammar (per RFC 1559).
///
///     meta_item : PATH ( '=' UNSUFFIXED_LIT | '(' meta_item_inner? ')' )? ;
///     meta_item_inner : (meta_item | UNSUFFIXED_LIT) (',' meta_item_inner)? ;
Matches the following grammar (per RFC 1559).
Matches the following grammar ( per RFC 1559 ) .
pub fn parse_meta_item(&mut self) -> PResult<'a, ast::MetaItem> {
        let nt_meta = match self.token.kind {
            token::Interpolated(ref nt) => match **nt {
                token::NtMeta(ref e) => Some(e.clone()),
                _ => None,
            },
            _ => None,
        };
        if let Some(item) = nt_meta {
            return match item.meta(item.path.span) {
                Some(meta) => {
                    self.bump();
                    Ok(meta)
                }
                None => self.unexpected(),
            }
        }
        let lo = self.token.span;
        let path = self.parse_path(PathStyle::Mod)?;
        let kind = self.parse_meta_item_kind()?;
        let span = lo.to(self.prev_span);
        Ok(ast::MetaItem { path, kind, span })
    }
pub fn parse_meta_item ( & mut self ) -> PResult < ' a , ast :: MetaItem > { let nt_meta = match self . token . kind { token :: Interpolated ( ref nt ) => match * * nt { token :: NtMeta ( ref e ) => Some ( e . clone ( ) ) , _ => None , } , _ => None , } ; if let Some ( item ) = nt_meta { return match item . meta ( item . path . span ) { Some ( meta ) => { self . bump ( ) ; Ok ( meta ) } None => self . unexpected ( ) , } } let lo = self . token . span ; let path = self . parse_path ( PathStyle :: Mod ) ? ; let kind = self . parse_meta_item_kind ( ) ? ; let span = lo . to ( self . prev_span ) ; Ok ( ast :: MetaItem { path , kind , span } ) }
Matches the following grammar (per RFC 1559).
Matches the following grammar ( per RFC 1559 ) .
&mut self