1
0
Fork 0
forked from AbleOS/holey-bytes

All my commit messages are throwaways.

This commit is contained in:
peony 2024-12-30 21:02:16 +01:00
parent f8b40598fc
commit 6414adf373
2 changed files with 37 additions and 31 deletions

View file

@ -497,42 +497,45 @@ impl<'a> Lexer<'a> {
self.advance();
}
if self.advance_if(b'.') {
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
}
//if self.advance_if(b'.') {
// 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
//}
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
}
//if self.advance_if(b'.') {
// while let Some(b'0' | b'1' | b'_') = self.peek() {
// self.advance();
// }
// T::Float
//} else {
// T::Number
//}
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
}
//if self.advance_if(b'.') {
// while let Some(b'0'..=b'7' | b'_') = self.peek() {
// self.advance();
// }
// T::Float
//} else {
// T::Number
//}
T::Number
}
b'0'..=b'9' => {
while let Some(b'0'..=b'9' | b'_') = self.peek() {

View file

@ -543,13 +543,16 @@ impl<'a, 'b> Parser<'a, 'b> {
radix,
}
}
T::Float => E::Float {
pos,
value: match <f64 as core::str::FromStr>::from_str(self.lexer.slice(token.range()))
{
Ok(f) => f.to_bits(),
Err(e) => self.report(token.start, format_args!("invalid float: {e}"))?,
},
T::Float => {
E::Float {
pos,
value: match <f64 as core::str::FromStr>::from_str(self.lexer.slice(token.range()))
{
Ok(f) => f.to_bits(),
Err(e) => self.report(token.start, format_args!("invalid float: {e}"))?,
},
}
},
T::LParen => {
let expr = self.expr()?;