Diffstat (limited to 'src/lexer.rs')
| -rw-r--r-- | src/lexer.rs | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/lexer.rs b/src/lexer.rs index 7ed17ff..ca025fb 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -1,9 +1,11 @@ +use std::sync::LazyLock; + use beef::lean::Cow; use chumsky::span::{SimpleSpan, Span}; use logos::{Lexer as RealLexer, Logos, SpannedIter}; use regex::Regex; -use std::sync::LazyLock; -static EMOJI: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"[\p{Emoji}&&[^0-9]]").unwrap()); +static EMOJI: LazyLock<Regex> = + LazyLock::new(|| Regex::new(r"[\p{Emoji}&&[^0-9]]").unwrap()); macro_rules! tokens { ($($z:literal $( | $y:literal)? => $v:ident,)+) => { #[derive(Logos, Debug, PartialEq, Clone)] @@ -94,7 +96,7 @@ tokens! { "๐" => Flip, "โคต๏ธ" => Zap, - "โฌ" => With, + "โฌ๏ธ" => With, "โฌ" => Merge, "โซ" => Range, "๐ชช" => Type, @@ -103,19 +105,25 @@ tokens! { "๐" => Open, "โช" => Shl, "โฉ" => Shr, + "โ" => Del, "๐ถ" => Sort, "๐" => Mask, "๐" => Index, + "#๏ธโฃ๐บ" => HashMap, + "โฃ#๏ธโฃ" => Get, + "โ
" => Set, + "๐ฝ" => Append, "๐ง" => Split, - "โฌ
" => First, + "โฌ
๏ธ" => First, "โก" => Last, "โ๏ธ" => Reduce, + "โญ๏ธ" => Fold, "๐บ" => Map, "๐" => If, "๐ฌ" => EagerIf, "๐ณ๐ฟ" => Zip, "๐ง" => Debug, - "." => Call, + "." => Identity, } @@ -125,7 +133,9 @@ pub fn lex(s: &str) -> Lexer { } } -fn chr<'src, const CHR: char>(_: &mut RealLexer<'src, Token<'src>>) -> Result<char, ()> { +fn chr<'src, const CHR: char>( + _: &mut RealLexer<'src, Token<'src>>, +) -> Result<char, ()> { Ok(CHR) } pub struct Lexer<'s> { |