Rollup merge of #34385 - cgswords:tstream, r=nrc
syntax-[breaking-change] cc #31645 (Only breaking because ast::TokenTree is now tokenstream::TokenTree.) This pull request refactors TokenTrees into their own file as src/libsyntax/tokenstream.rs, moving them out of src/libsyntax/ast.rs, in order to prepare for an accompanying TokenStream implementation (per RFC 1566).
This commit is contained in:
commit
82a15a6a0a
34 changed files with 342 additions and 287 deletions
|
@ -79,7 +79,7 @@ pub use self::ParseResult::*;
|
|||
use self::TokenTreeOrTokenTreeVec::*;
|
||||
|
||||
use ast;
|
||||
use ast::{TokenTree, Name, Ident};
|
||||
use ast::{Name, Ident};
|
||||
use syntax_pos::{self, BytePos, mk_sp, Span};
|
||||
use codemap::Spanned;
|
||||
use errors::FatalError;
|
||||
|
@ -91,6 +91,7 @@ use parse::token::{Token, Nonterminal};
|
|||
use parse::token;
|
||||
use print::pprust;
|
||||
use ptr::P;
|
||||
use tokenstream::{self, TokenTree};
|
||||
|
||||
use std::mem;
|
||||
use std::rc::Rc;
|
||||
|
@ -102,8 +103,8 @@ use std::collections::hash_map::Entry::{Vacant, Occupied};
|
|||
|
||||
#[derive(Clone)]
|
||||
enum TokenTreeOrTokenTreeVec {
|
||||
Tt(ast::TokenTree),
|
||||
TtSeq(Rc<Vec<ast::TokenTree>>),
|
||||
Tt(tokenstream::TokenTree),
|
||||
TtSeq(Rc<Vec<tokenstream::TokenTree>>),
|
||||
}
|
||||
|
||||
impl TokenTreeOrTokenTreeVec {
|
||||
|
@ -374,7 +375,7 @@ pub fn parse(sess: &ParseSess,
|
|||
match ei.top_elts.get_tt(idx) {
|
||||
/* need to descend into sequence */
|
||||
TokenTree::Sequence(sp, seq) => {
|
||||
if seq.op == ast::KleeneOp::ZeroOrMore {
|
||||
if seq.op == tokenstream::KleeneOp::ZeroOrMore {
|
||||
let mut new_ei = ei.clone();
|
||||
new_ei.match_cur += seq.num_captures;
|
||||
new_ei.idx += 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue