From b1619f6e4e7be3ebbe9be55c6a7a2ddd38f48937 Mon Sep 17 00:00:00 2001 From: John Date: Sun, 21 Sep 2025 02:24:15 -0400 Subject: [PATCH] parser: allow any token to be a metaidentifier --- src/parser.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parser.rs b/src/parser.rs index 4ef071e..e89cabe 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -232,7 +232,7 @@ impl<'t> Parse<'t> for Pat { "_" => p.consume().then(Pat::Ignore), _ => Pat::Name(p.take_lexeme().expect("should have Token")), }, - TKind::Grave => Pat::MetId(p.consume().next_if(TKind::Identifier)?.lexeme), + TKind::Grave => Pat::MetId(p.consume().next()?.lexeme), TKind::DotDot => Pat::Rest(match p.consume().peek_if(TKind::Identifier) { Some(_) => Some(p.parse(level)?), None => None, @@ -518,7 +518,7 @@ impl<'t> Parse<'t> for Expr { Ps::End => Err(ParseError::NotPrefix(tok.kind, span))?, Ps::Id => Expr::Id(p.take_lexeme().expect("should have ident")), - Ps::Mid => Expr::MetId(p.consume().next_if(TKind::Identifier)?.lexeme), + Ps::Mid => Expr::MetId(p.consume().next()?.lexeme), Ps::Lit => Expr::Lit(p.parse(())?), Ps::Let => Expr::Let( p.consume().parse(PPrec::Alt)?,