move SeqSep to parser.rs

This commit is contained in:
Mazdak Farrokhzad
2019-10-08 12:59:59 +02:00
parent d420d719c4
commit bf02d49e84
4 changed files with 31 additions and 30 deletions

View File

@@ -2,7 +2,7 @@
use crate::ast; use crate::ast;
use crate::parse::parser::{Parser, emit_unclosed_delims}; use crate::parse::parser::{Parser, emit_unclosed_delims};
use crate::parse::token::{Nonterminal, TokenKind}; use crate::parse::token::Nonterminal;
use crate::tokenstream::{self, TokenStream, TokenTree}; use crate::tokenstream::{self, TokenStream, TokenTree};
use crate::print::pprust; use crate::print::pprust;
use crate::sess::ParseSess; use crate::sess::ParseSess;
@@ -271,30 +271,6 @@ pub fn stream_to_parser_with_base_dir<'a>(
Parser::new(sess, stream, Some(base_dir), true, false, None) Parser::new(sess, stream, Some(base_dir), true, false, None)
} }
/// A sequence separator.
pub struct SeqSep {
/// The separator token.
pub sep: Option<TokenKind>,
/// `true` if a trailing separator is allowed.
pub trailing_sep_allowed: bool,
}
impl SeqSep {
pub fn trailing_allowed(t: TokenKind) -> SeqSep {
SeqSep {
sep: Some(t),
trailing_sep_allowed: true,
}
}
pub fn none() -> SeqSep {
SeqSep {
sep: None,
trailing_sep_allowed: false,
}
}
}
// NOTE(Centril): The following probably shouldn't be here but it acknowledges the // NOTE(Centril): The following probably shouldn't be here but it acknowledges the
// fact that architecturally, we are using parsing (read on below to understand why). // fact that architecturally, we are using parsing (read on below to understand why).

View File

@@ -15,7 +15,7 @@ use crate::ast::{
self, DUMMY_NODE_ID, AttrStyle, Attribute, CrateSugar, Ident, self, DUMMY_NODE_ID, AttrStyle, Attribute, CrateSugar, Ident,
IsAsync, MacDelimiter, Mutability, StrStyle, Visibility, VisibilityKind, Unsafety, IsAsync, MacDelimiter, Mutability, StrStyle, Visibility, VisibilityKind, Unsafety,
}; };
use crate::parse::{PResult, Directory, DirectoryOwnership, SeqSep}; use crate::parse::{PResult, Directory, DirectoryOwnership};
use crate::parse::lexer::UnmatchedBrace; use crate::parse::lexer::UnmatchedBrace;
use crate::parse::lexer::comments::{doc_comment_style, strip_doc_comment_decoration}; use crate::parse::lexer::comments::{doc_comment_style, strip_doc_comment_decoration};
use crate::parse::token::{self, Token, TokenKind, DelimToken}; use crate::parse::token::{self, Token, TokenKind, DelimToken};
@@ -329,6 +329,30 @@ enum TokenExpectType {
NoExpect, NoExpect,
} }
/// A sequence separator.
struct SeqSep {
/// The separator token.
sep: Option<TokenKind>,
/// `true` if a trailing separator is allowed.
trailing_sep_allowed: bool,
}
impl SeqSep {
fn trailing_allowed(t: TokenKind) -> SeqSep {
SeqSep {
sep: Some(t),
trailing_sep_allowed: true,
}
}
fn none() -> SeqSep {
SeqSep {
sep: None,
trailing_sep_allowed: false,
}
}
}
impl<'a> Parser<'a> { impl<'a> Parser<'a> {
pub fn new( pub fn new(
sess: &'a ParseSess, sess: &'a ParseSess,

View File

@@ -1,8 +1,7 @@
use super::{SeqSep, PResult, Parser, TokenType, PathStyle};
use crate::attr; use crate::attr;
use crate::ast; use crate::ast;
use crate::parse::{SeqSep, PResult};
use crate::parse::token::{self, Nonterminal, DelimToken}; use crate::parse::token::{self, Nonterminal, DelimToken};
use crate::parse::parser::{Parser, TokenType, PathStyle};
use crate::tokenstream::{TokenStream, TokenTree}; use crate::tokenstream::{TokenStream, TokenTree};
use crate::source_map::Span; use crate::source_map::Span;

View File

@@ -1,9 +1,11 @@
use super::{
BlockMode, PathStyle, SemiColonMode, TokenType, TokenExpectType,
SeqSep, PResult, Parser
};
use crate::ast::{ use crate::ast::{
self, Param, BinOpKind, BindingMode, BlockCheckMode, Expr, ExprKind, Ident, Item, ItemKind, self, Param, BinOpKind, BindingMode, BlockCheckMode, Expr, ExprKind, Ident, Item, ItemKind,
Mutability, Pat, PatKind, PathSegment, QSelf, Ty, TyKind, Mutability, Pat, PatKind, PathSegment, QSelf, Ty, TyKind,
}; };
use crate::parse::{SeqSep, PResult, Parser};
use crate::parse::parser::{BlockMode, PathStyle, SemiColonMode, TokenType, TokenExpectType};
use crate::parse::token::{self, TokenKind}; use crate::parse::token::{self, TokenKind};
use crate::print::pprust; use crate::print::pprust;
use crate::ptr::P; use crate::ptr::P;