use consume_char_if_exists to simplify parsing

This commit is contained in:
Connor Skees 2020-08-07 13:07:28 -04:00
parent 1f14bc92e3
commit 36a55e582c
4 changed files with 9 additions and 14 deletions

View File

@ -134,8 +134,7 @@ impl<'a> Parser<'a> {
loop {
self.whitespace_or_comment();
if matches!(self.toks.peek(), Some(Token { kind: ')', .. })) {
self.toks.next();
if self.consume_char_if_exists(')') {
return Ok(CallArgs(args, span));
}

View File

@ -119,9 +119,8 @@ impl<'a> Parser<'a> {
let content = if content_args.is_some()
|| matches!(self.toks.peek(), Some(Token { kind: '{', .. }))
{
if matches!(self.toks.peek(), Some(Token { kind: '{', .. })) {
self.toks.next();
}
self.consume_char_if_exists('{');
let mut toks = read_until_closing_curly_brace(self.toks)?;
if let Some(tok) = self.toks.peek() {
toks.push(*tok);

View File

@ -709,8 +709,7 @@ impl<'a> Parser<'a> {
fn parse_at_root(&mut self) -> SassResult<Vec<Stmt>> {
self.whitespace();
let mut at_root_has_selector = false;
let at_rule_selector = if matches!(self.toks.peek(), Some(Token { kind: '{', .. })) {
self.toks.next();
let at_rule_selector = if self.consume_char_if_exists('{') {
self.super_selectors.last().clone()
} else {
at_root_has_selector = true;

View File

@ -199,9 +199,8 @@ impl<'a> Parser<'a> {
module: &str,
mut module_span: Span,
) -> SassResult<Spanned<IntermediateValue>> {
Ok(IntermediateValue::Value(
if matches!(self.toks.peek(), Some(Token { kind: '$', .. })) {
self.toks.next();
Ok(
IntermediateValue::Value(if self.consume_char_if_exists('$') {
let var = self
.parse_identifier_no_interpolation(false)?
.map_node(|i| i.into());
@ -228,9 +227,9 @@ impl<'a> Parser<'a> {
let call_args = self.parse_call_args()?;
HigherIntermediateValue::Function(function, call_args)
},
})
.span(module_span),
)
.span(module_span))
}
fn parse_ident_value(
@ -243,9 +242,8 @@ impl<'a> Parser<'a> {
let lower = s.to_ascii_lowercase();
if lower == "progid" && matches!(self.toks.peek(), Some(Token { kind: ':', .. })) {
if lower == "progid" && self.consume_char_if_exists(':') {
s = lower;
self.toks.next();
s.push(':');
s.push_str(&self.parse_progid()?);
return Ok(Spanned {