diff --git a/src/libsyntax/ext/cfg.rs b/src/libsyntax/ext/cfg.rs index aa654e30530a..5074189a0485 100644 --- a/src/libsyntax/ext/cfg.rs +++ b/src/libsyntax/ext/cfg.rs @@ -19,7 +19,6 @@ use ext::base; use ext::build::AstBuilder; use attr; use attr::*; -use parse::attr::ParserAttr; use parse::token; pub fn expand_cfg<'cx>(cx: &mut ExtCtxt, diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 5cb5b95e2cb0..40a8f1cc6b56 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -85,7 +85,6 @@ use codemap::{BytePos, mk_sp, Span}; use codemap; use parse::lexer::*; //resolve bug? use parse::ParseSess; -use parse::attr::ParserAttr; use parse::parser::{LifetimeAndTypesWithoutColons, Parser}; use parse::token::{Eof, DocComment, MatchNt, SubstNt}; use parse::token::{Token, Nonterminal}; diff --git a/src/libsyntax/parse/attr.rs b/src/libsyntax/parse/attr.rs index 219360093d14..570c232ff4e9 100644 --- a/src/libsyntax/parse/attr.rs +++ b/src/libsyntax/parse/attr.rs @@ -16,19 +16,9 @@ use parse::token; use parse::parser::{Parser, TokenType}; use ptr::P; -/// A parser that can parse attributes. -pub trait ParserAttr { - fn parse_outer_attributes(&mut self) -> Vec; - fn parse_inner_attributes(&mut self) -> Vec; - fn parse_attribute(&mut self, permit_inner: bool) -> ast::Attribute; - fn parse_meta_item(&mut self) -> P; - fn parse_meta_seq(&mut self) -> Vec>; - fn parse_optional_meta(&mut self) -> Vec>; -} - -impl<'a> ParserAttr for Parser<'a> { +impl<'a> Parser<'a> { /// Parse attributes that appear before an item - fn parse_outer_attributes(&mut self) -> Vec { + pub fn parse_outer_attributes(&mut self) -> Vec { let mut attrs: Vec = Vec::new(); loop { debug!("parse_outer_attributes: self.token={:?}", @@ -120,7 +110,7 @@ impl<'a> ParserAttr for Parser<'a> { /// terminated by a semicolon. /// matches inner_attrs* - fn parse_inner_attributes(&mut self) -> Vec { + pub fn parse_inner_attributes(&mut self) -> Vec { let mut attrs: Vec = vec![]; loop { match self.token { @@ -155,7 +145,7 @@ impl<'a> ParserAttr for Parser<'a> { /// matches meta_item = IDENT /// | IDENT = lit /// | IDENT meta_seq - fn parse_meta_item(&mut self) -> P { + pub fn parse_meta_item(&mut self) -> P { let nt_meta = match self.token { token::Interpolated(token::NtMeta(ref e)) => { Some(e.clone()) @@ -210,11 +200,4 @@ impl<'a> ParserAttr for Parser<'a> { seq_sep_trailing_allowed(token::Comma), |p| Ok(p.parse_meta_item()))).node } - - fn parse_optional_meta(&mut self) -> Vec> { - match self.token { - token::OpenDelim(token::Paren) => self.parse_meta_seq(), - _ => Vec::new() - } - } } diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 2275d95c7c2d..017a910b08a9 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -13,7 +13,6 @@ use ast; use codemap::{self, Span, CodeMap, FileMap}; use diagnostic::{SpanHandler, Handler, Auto, FatalError}; -use parse::attr::ParserAttr; use parse::parser::Parser; use parse::token::InternedString; use ptr::P; diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 6afcd61aa3d8..0b2369c00ac2 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -64,7 +64,6 @@ use codemap::{self, Span, BytePos, Spanned, spanned, mk_sp, CodeMap}; use diagnostic; use ext::tt::macro_parser; use parse; -use parse::attr::ParserAttr; use parse::classify; use parse::common::{SeqSep, seq_sep_none, seq_sep_trailing_allowed}; use parse::lexer::{Reader, TokenAndSpan};