mathhook_core/parser/lexer/
standard_tokens.rs1use super::token_maps::TokenType;
7use std::collections::HashMap;
8use std::sync::LazyLock;
9
10pub static STANDARD_TOKEN_MAP: LazyLock<HashMap<&'static str, TokenType>> = LazyLock::new(|| {
12 let mut map = HashMap::new();
13
14 map.insert("pi", TokenType::Constant);
16 map.insert("e", TokenType::Constant);
17 map.insert("i", TokenType::Constant);
18 map.insert("infinity", TokenType::Constant);
19 map.insert("phi", TokenType::Constant);
20 map.insert("gamma", TokenType::Constant);
21
22 map.insert("sin", TokenType::Function);
24 map.insert("cos", TokenType::Function);
25 map.insert("tan", TokenType::Function);
26 map.insert("ln", TokenType::Function);
27 map.insert("log", TokenType::Function);
28 map.insert("sqrt", TokenType::Function);
29 map.insert("exp", TokenType::Function);
30 map.insert("abs", TokenType::Function);
31 map.insert("floor", TokenType::Function);
32 map.insert("ceil", TokenType::Function);
33 map.insert("round", TokenType::Function);
34 map.insert("max", TokenType::Function);
35 map.insert("min", TokenType::Function);
36 map.insert("gcd", TokenType::Function);
37 map.insert("lcm", TokenType::Function);
38
39 map.insert("sec", TokenType::Function);
41 map.insert("csc", TokenType::Function);
42 map.insert("cot", TokenType::Function);
43
44 map.insert("sinh", TokenType::Function);
46 map.insert("cosh", TokenType::Function);
47 map.insert("tanh", TokenType::Function);
48 map.insert("sech", TokenType::Function);
49 map.insert("csch", TokenType::Function);
50 map.insert("coth", TokenType::Function);
51
52 map.insert("arcsin", TokenType::Function);
54 map.insert("arccos", TokenType::Function);
55 map.insert("arctan", TokenType::Function);
56 map.insert("arcsec", TokenType::Function);
57 map.insert("arccsc", TokenType::Function);
58 map.insert("arccot", TokenType::Function);
59 map.insert("asin", TokenType::Function); map.insert("acos", TokenType::Function);
61 map.insert("atan", TokenType::Function);
62
63 map.insert("log10", TokenType::Function);
65 map.insert("log2", TokenType::Function);
66
67 map.insert("sign", TokenType::Function);
69 map.insert("factorial", TokenType::Function);
70
71 map.insert("real", TokenType::Function);
73 map.insert("imag", TokenType::Function);
74 map.insert("conj", TokenType::Function);
75 map.insert("arg", TokenType::Function);
76
77 map.insert("mean", TokenType::Function);
81 map.insert("median", TokenType::Function);
82 map.insert("var", TokenType::Function);
83 map.insert("std", TokenType::Function);
84
85 map.insert("alpha", TokenType::GreekSymbol);
90 map.insert("beta", TokenType::GreekSymbol);
91 map.insert("gamma", TokenType::GreekSymbol);
92 map.insert("delta", TokenType::GreekSymbol);
93 map.insert("epsilon", TokenType::GreekSymbol);
94 map.insert("theta", TokenType::GreekSymbol);
95 map.insert("lambda", TokenType::GreekSymbol);
96 map.insert("mu", TokenType::GreekSymbol);
97 map.insert("sigma", TokenType::GreekSymbol);
98 map.insert("omega", TokenType::GreekSymbol);
99
100 map
101});