Cleanup.
This commit is contained in:
parent
d9cf601ae8
commit
460bf55f8a
2 changed files with 11 additions and 12 deletions
|
@ -488,7 +488,7 @@ pub fn parse(sess: &ParseSess, tts: TokenStream, ms: &[TokenTree], directory: Op
|
||||||
fn parse_nt<'a>(p: &mut Parser<'a>, sp: Span, name: &str) -> Nonterminal {
|
fn parse_nt<'a>(p: &mut Parser<'a>, sp: Span, name: &str) -> Nonterminal {
|
||||||
match name {
|
match name {
|
||||||
"tt" => {
|
"tt" => {
|
||||||
return token::NtTT(panictry!(p.parse_token_tree()));
|
return token::NtTT(p.parse_token_tree());
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|
|
@ -891,7 +891,7 @@ impl<'a> Parser<'a> {
|
||||||
|
|
||||||
self.parse_seq_to_before_tokens(kets,
|
self.parse_seq_to_before_tokens(kets,
|
||||||
SeqSep::none(),
|
SeqSep::none(),
|
||||||
|p| p.parse_token_tree(),
|
|p| Ok(p.parse_token_tree()),
|
||||||
|mut e| handler.cancel(&mut e));
|
|mut e| handler.cancel(&mut e));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1267,7 +1267,7 @@ impl<'a> Parser<'a> {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
token::OpenDelim(token::Brace) => {
|
token::OpenDelim(token::Brace) => {
|
||||||
self.parse_token_tree()?;
|
self.parse_token_tree();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
_ => self.bump(),
|
_ => self.bump(),
|
||||||
|
@ -2101,10 +2101,10 @@ impl<'a> Parser<'a> {
|
||||||
|
|
||||||
fn expect_delimited_token_tree(&mut self) -> PResult<'a, (token::DelimToken, ThinTokenStream)> {
|
fn expect_delimited_token_tree(&mut self) -> PResult<'a, (token::DelimToken, ThinTokenStream)> {
|
||||||
match self.token {
|
match self.token {
|
||||||
token::OpenDelim(delim) => self.parse_token_tree().map(|tree| match tree {
|
token::OpenDelim(delim) => match self.parse_token_tree() {
|
||||||
TokenTree::Delimited(_, delimited) => (delim, delimited.stream().into()),
|
TokenTree::Delimited(_, delimited) => Ok((delim, delimited.stream().into())),
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}),
|
},
|
||||||
_ => Err(self.fatal("expected open delimiter")),
|
_ => Err(self.fatal("expected open delimiter")),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2643,24 +2643,23 @@ impl<'a> Parser<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// parse a single token tree from the input.
|
/// parse a single token tree from the input.
|
||||||
pub fn parse_token_tree(&mut self) -> PResult<'a, TokenTree> {
|
pub fn parse_token_tree(&mut self) -> TokenTree {
|
||||||
match self.token {
|
match self.token {
|
||||||
token::OpenDelim(..) => {
|
token::OpenDelim(..) => {
|
||||||
let frame = mem::replace(&mut self.token_cursor.frame,
|
let frame = mem::replace(&mut self.token_cursor.frame,
|
||||||
self.token_cursor.stack.pop().unwrap());
|
self.token_cursor.stack.pop().unwrap());
|
||||||
self.span = frame.span;
|
self.span = frame.span;
|
||||||
self.bump();
|
self.bump();
|
||||||
return Ok(TokenTree::Delimited(frame.span, Delimited {
|
TokenTree::Delimited(frame.span, Delimited {
|
||||||
delim: frame.delim,
|
delim: frame.delim,
|
||||||
tts: frame.tree_cursor.original_stream().into(),
|
tts: frame.tree_cursor.original_stream().into(),
|
||||||
}));
|
})
|
||||||
},
|
},
|
||||||
token::CloseDelim(_) | token::Eof => unreachable!(),
|
token::CloseDelim(_) | token::Eof => unreachable!(),
|
||||||
_ => {
|
_ => {
|
||||||
let token = mem::replace(&mut self.token, token::Underscore);
|
let token = mem::replace(&mut self.token, token::Underscore);
|
||||||
let res = Ok(TokenTree::Token(self.span, token));
|
|
||||||
self.bump();
|
self.bump();
|
||||||
res
|
TokenTree::Token(self.prev_span, token)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2670,7 +2669,7 @@ impl<'a> Parser<'a> {
|
||||||
pub fn parse_all_token_trees(&mut self) -> PResult<'a, Vec<TokenTree>> {
|
pub fn parse_all_token_trees(&mut self) -> PResult<'a, Vec<TokenTree>> {
|
||||||
let mut tts = Vec::new();
|
let mut tts = Vec::new();
|
||||||
while self.token != token::Eof {
|
while self.token != token::Eof {
|
||||||
tts.push(self.parse_token_tree()?);
|
tts.push(self.parse_token_tree());
|
||||||
}
|
}
|
||||||
Ok(tts)
|
Ok(tts)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue