diff options
Diffstat (limited to 'src/syntax/parsing.rs')
| -rw-r--r-- | src/syntax/parsing.rs | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/src/syntax/parsing.rs b/src/syntax/parsing.rs index e0405407..900e0e67 100644 --- a/src/syntax/parsing.rs +++ b/src/syntax/parsing.rs @@ -586,11 +586,23 @@ fn expr_prec(p: &mut Parser, atomic: bool, min_prec: usize) -> ParseResult { } fn primary(p: &mut Parser, atomic: bool) -> ParseResult { - if literal(p) { - return Ok(()); - } - match p.peek() { + // Literals and few other things. + Some( + SyntaxKind::None + | SyntaxKind::Auto + | SyntaxKind::Int(_) + | SyntaxKind::Float(_) + | SyntaxKind::Bool(_) + | SyntaxKind::Numeric(_, _) + | SyntaxKind::Str(_) + | SyntaxKind::Label(_) + | SyntaxKind::Raw(_), + ) => { + p.eat(); + Ok(()) + } + // Things that start with an identifier. Some(SyntaxKind::Ident(_)) => { let marker = p.marker(); @@ -638,25 +650,6 @@ fn primary(p: &mut Parser, atomic: bool) -> ParseResult { } } -fn literal(p: &mut Parser) -> bool { - match p.peek() { - Some( - SyntaxKind::None - | SyntaxKind::Auto - | SyntaxKind::Int(_) - | SyntaxKind::Float(_) - | SyntaxKind::Bool(_) - | SyntaxKind::Numeric(_, _) - | SyntaxKind::Str(_) - | SyntaxKind::Label(_), - ) => { - p.eat(); - true - } - _ => false, - } -} - fn ident(p: &mut Parser) -> ParseResult { match p.peek() { Some(SyntaxKind::Ident(_)) => { |
