summaryrefslogtreecommitdiff
path: root/src/syntax/lexer.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-03-27 11:58:17 +0200
committerLaurenz <laurmaedje@gmail.com>2023-03-27 12:12:57 +0200
commita5c88c19b300c64fafd6a19e3f5f2fe6422a7b67 (patch)
tree42192332e277624a35c6e3db568c0ff8196b582a /src/syntax/lexer.rs
parent10d8fd966130f1e60d328b08a7fcce61961d6974 (diff)
Fix enum parsing and allow zero in numberings
Fixes #353.
Diffstat (limited to 'src/syntax/lexer.rs')
-rw-r--r--src/syntax/lexer.rs10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/syntax/lexer.rs b/src/syntax/lexer.rs
index 90a10f52..c46fa37b 100644
--- a/src/syntax/lexer.rs
+++ b/src/syntax/lexer.rs
@@ -170,7 +170,6 @@ impl Lexer<'_> {
'`' => self.raw(),
'h' if self.s.eat_if("ttp://") => self.link(),
'h' if self.s.eat_if("ttps://") => self.link(),
- '0'..='9' => self.numbering(start),
'<' if self.s.at(is_id_continue) => self.label(),
'@' => self.ref_marker(),
@@ -200,6 +199,7 @@ impl Lexer<'_> {
'-' if self.space_or_end() => SyntaxKind::ListMarker,
'+' if self.space_or_end() => SyntaxKind::EnumMarker,
'/' if self.space_or_end() => SyntaxKind::TermMarker,
+ '0'..='9' => self.numbering(start),
_ => self.text(),
}
@@ -284,12 +284,8 @@ impl Lexer<'_> {
self.s.eat_while(char::is_ascii_digit);
let read = self.s.from(start);
- if self.s.eat_if('.') {
- if let Ok(number) = read.parse::<usize>() {
- if number == 0 {
- return self.error("must be positive");
- }
-
+ if self.s.eat_if('.') && self.space_or_end() {
+ if read.parse::<usize>().is_ok() {
return SyntaxKind::EnumMarker;
}
}