aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parse/mod.rs12
1 files changed, 10 insertions, 2 deletions
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) {