use consume_char_if_exists
to simplify parsing
This commit is contained in:
parent
1f14bc92e3
commit
36a55e582c
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user