Diffstat (limited to 'src/lexer.rs')
| -rw-r--r-- | src/lexer.rs | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/lexer.rs b/src/lexer.rs index 559a9d7..d4d1476 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -22,9 +22,8 @@ macro_rules! tokens { #[regex(r"'.'", |lex| lex.slice().as_bytes()[1] as char)] Char(char), // todo ignore alot - #[regex(r"[^\s\(\)\[\]\{\}0-9λ'\-←→=🐢🐘🍴🐈↖⤵️+×*√≠<≤>≥⏪⏩\-¯∧∨⊻÷%🔎🚧⬅➡⏭️➡️↘️🐋🐳][^\(\)\[\]\{\}λ←→='🐢🐘🍴🐈↖⤵️+×*√≠<≤>≥⏪⏩¯∧∨⊻÷%🔎🚧⬅➡⏭️➡️↘️🐋🐳\s]*", priority = 7)] + #[regex(r"[^\s\(\)\[\]\{\}0-9λ'\-←→=≢≡🐢🦆✊🪣🔓🐘🍴🐈↖⤵️☎️🔭+×*√≠<≤>≥⏪⏩\-¯∧∨⊻÷%🔎🚧⬅➡⏭️➡️↘️🐋🐳][^\(\)\[\]\{\}λ←→=≢≡'🐢🐘🍴✊🐈↖⤵️+🪣×🔓*√🦆≠<≤>≥☎️🔭⏪⏩¯∧∨⊻÷%🔎🚧⬅➡⏭️➡️↘️🐋🐳\s]*", priority = 7)] Ident(&'strings str), - #[token("[", chr::<'['>)] #[token("(", chr::<'('>)] #[token("{", chr::<'{'>)] @@ -58,18 +57,22 @@ tokens! { "λ" => Lambda, "←" => Place, "→" => Ret, - "=" => Eq, + "≡" => Eq, "🐢" => Dup, "🐘" => Both, "🍴" => Fork, + "🪣" => Gap, + "✊" => Hold, "🐈" => Flip, + "🦆" => Duck, "↖" => Reverse, - "⤵️" => Pop, + "⤵️" => Zap, "+" => Add, + "-" => Sub, "×" => Mul, "*" => Pow, "√" => Sqrt, - "≠" => Ne, + "≢" => Ne, "<" => Lt, "≤" => Le, ">" => Gt, @@ -79,19 +82,20 @@ tokens! { "¯" => Neg, "∧" => And, "∨" => Or, - "-" => Sub, "⊻" => Xor, "÷" => Div, "%" => Mod, - "🔎" => Keep, + "🔓" => Keep, "🚧" => Split, "⬅" => First, "➡" => Last, "⏭️" => Each, "➡️" => Reduce, "↘️" => ReduceStack, + "⬆️" => Range, "🐋" => If, "🐳" => Else, + "☎️" => Call, } |