cl-lexer: Add base-36 literals, lmao

This commit is contained in:
John 2025-07-18 05:29:31 -04:00
parent 8b0a122dfc
commit 74220d3bff

View File

@ -15,8 +15,8 @@ mod tests;
pub mod lexer_iter { pub mod lexer_iter {
//! Iterator over a [`Lexer`], returning [`LResult<Token>`]s //! Iterator over a [`Lexer`], returning [`LResult<Token>`]s
use super::{ use super::{
error::{LResult, Reason},
Lexer, Token, Lexer, Token,
error::{LResult, Reason},
}; };
/// Iterator over a [`Lexer`], returning [`LResult<Token>`]s /// Iterator over a [`Lexer`], returning [`LResult<Token>`]s
@ -374,6 +374,7 @@ impl Lexer<'_> {
impl Lexer<'_> { impl Lexer<'_> {
fn int_with_base(&mut self) -> LResult<Token> { fn int_with_base(&mut self) -> LResult<Token> {
match self.peek() { match self.peek() {
Ok('~') => self.consume()?.digits::<36>(),
Ok('x') => self.consume()?.digits::<16>(), Ok('x') => self.consume()?.digits::<16>(),
Ok('d') => self.consume()?.digits::<10>(), Ok('d') => self.consume()?.digits::<10>(),
Ok('o') => self.consume()?.digits::<8>(), Ok('o') => self.consume()?.digits::<8>(),