1
0
Fork 0
forked from AbleOS/holey-bytes

_ seperator lexing

This commit is contained in:
peony 2024-12-30 17:26:11 +01:00
parent ed5630a6df
commit 15c55c89f3

View file

@ -437,30 +437,54 @@ impl<'a> Lexer<'a> {
let kind = match c {
..=b' ' => continue,
b'0' if self.advance_if(b'x') => {
while let Some(b'0'..=b'9' | b'A'..=b'F' | b'a'..=b'f') = self.peek() {
self.advance();
}
T::Number
}
b'0' if self.advance_if(b'b') => {
while let Some(b'0' | b'1') = self.peek() {
self.advance();
}
T::Number
}
b'0' if self.advance_if(b'o') => {
while let Some(b'0'..=b'7') = self.peek() {
self.advance();
}
T::Number
}
b'0'..=b'9' => {
while let Some(b'0'..=b'9') = self.peek() {
while let Some(b'0'..=b'9' | b'A'..=b'F' | b'a'..=b'f' | b'_') = self.peek() {
self.advance();
}
if self.advance_if(b'.') {
while let Some(b'0'..=b'9') = self.peek() {
while let Some(b'0'..=b'9' | b'A'..=b'F' | b'a'..=b'f' | b'_') = self.peek() {
self.advance();
}
T::Float
} else {
T::Number
}
}
b'0' if self.advance_if(b'b') => {
while let Some(b'0' | b'1' | b'_') = self.peek() {
self.advance();
}
if self.advance_if(b'.') {
while let Some(b'0' | b'1' | b'_') = self.peek() {
self.advance();
}
T::Float
} else {
T::Number
}
}
b'0' if self.advance_if(b'o') => {
while let Some(b'0'..=b'7' | b'_') = self.peek() {
self.advance();
}
if self.advance_if(b'.') {
while let Some(b'0'..=b'7' | b'_') = self.peek() {
self.advance();
}
T::Float
} else {
T::Number
}
}
b'0'..=b'9' => {
while let Some(b'0'..=b'9' | b'_') = self.peek() {
self.advance();
}
if self.advance_if(b'.') {
while let Some(b'0'..=b'9' | b'_') = self.peek() {
self.advance();
}
T::Float