From 4f9c061a348547a77635cde495ed21969efb3cc7 Mon Sep 17 00:00:00 2001 From: Jonas Maier <> Date: Sat, 7 Mar 2026 13:14:31 +0100 Subject: can parse $0 $1 etc --- src/parse/mod.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/parse/mod.rs') diff --git a/src/parse/mod.rs b/src/parse/mod.rs index cec9551..853580d 100644 --- a/src/parse/mod.rs +++ b/src/parse/mod.rs @@ -359,7 +359,7 @@ fn is_symbol(x: u8) -> bool { } fn is_var_begin(x: u8) -> bool { - x.is_ascii_alphabetic() + x.is_ascii_alphanumeric() } fn is_var_name(x: u8) -> bool { x.is_ascii_alphanumeric() || x == b'_' @@ -376,11 +376,19 @@ impl Parse for VarName { return Err(ParseError::Eof); } + let mut name = BString::new(); + + if b.peek().is_ascii_digit() { + while b.has() && b.peek().is_ascii_digit() { + name.push(b.adv()); + } + return Ok(Self { name }); + } + if !is_var_begin(b.peek()) { return Err(ParseError::ExpectedAlphabetic); } - let mut name = BString::new(); while b.has() { let x = b.peek(); if is_var_name(x) { -- cgit v1.2.3