mathhook_core/parser/lexer/
wolfram_tokens.rs1use super::token_maps::TokenType;
7use std::collections::HashMap;
8use std::sync::LazyLock;
9
10pub static WOLFRAM_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("\\[EulerGamma]", TokenType::Constant);
20
21 map.insert("\\[Alpha]", TokenType::GreekSymbol);
23 map.insert("\\[Beta]", TokenType::GreekSymbol);
24 map.insert("\\[Delta]", TokenType::GreekSymbol);
25 map.insert("\\[Epsilon]", TokenType::GreekSymbol);
26 map.insert("\\[Zeta]", TokenType::GreekSymbol);
27 map.insert("\\[Eta]", TokenType::GreekSymbol);
28 map.insert("\\[Theta]", TokenType::GreekSymbol);
29 map.insert("\\[Iota]", TokenType::GreekSymbol);
30 map.insert("\\[Kappa]", TokenType::GreekSymbol);
31 map.insert("\\[Lambda]", TokenType::GreekSymbol);
32 map.insert("\\[Mu]", TokenType::GreekSymbol);
33 map.insert("\\[Nu]", TokenType::GreekSymbol);
34 map.insert("\\[Xi]", TokenType::GreekSymbol);
35 map.insert("\\[Omicron]", TokenType::GreekSymbol);
36 map.insert("\\[Rho]", TokenType::GreekSymbol);
37 map.insert("\\[Sigma]", TokenType::GreekSymbol);
38 map.insert("\\[Tau]", TokenType::GreekSymbol);
39 map.insert("\\[Upsilon]", TokenType::GreekSymbol);
40 map.insert("\\[Chi]", TokenType::GreekSymbol);
41 map.insert("\\[Psi]", TokenType::GreekSymbol);
42 map.insert("\\[Omega]", TokenType::GreekSymbol);
43
44 map.insert("Sin", TokenType::Function);
47 map.insert("Cos", TokenType::Function);
48 map.insert("Tan", TokenType::Function);
49 map.insert("Sec", TokenType::Function);
50 map.insert("Csc", TokenType::Function);
51 map.insert("Cot", TokenType::Function);
52
53 map.insert("Sinh", TokenType::Function);
55 map.insert("Cosh", TokenType::Function);
56 map.insert("Tanh", TokenType::Function);
57 map.insert("Sech", TokenType::Function);
58 map.insert("Csch", TokenType::Function);
59 map.insert("Coth", TokenType::Function);
60
61 map.insert("ArcSin", TokenType::Function);
63 map.insert("ArcCos", TokenType::Function);
64 map.insert("ArcTan", TokenType::Function);
65 map.insert("ArcSec", TokenType::Function);
66 map.insert("ArcCsc", TokenType::Function);
67 map.insert("ArcCot", TokenType::Function);
68
69 map.insert("Log", TokenType::Function);
71 map.insert("Ln", TokenType::Function);
72 map.insert("Log10", TokenType::Function);
73 map.insert("Log2", TokenType::Function);
74 map.insert("Exp", TokenType::Function);
75 map.insert("Sqrt", TokenType::Function);
76
77 map.insert("Abs", TokenType::Function);
79 map.insert("Sign", TokenType::Function);
80 map.insert("Max", TokenType::Function);
81 map.insert("Min", TokenType::Function);
82 map.insert("Floor", TokenType::Function);
83 map.insert("Ceiling", TokenType::Function);
84 map.insert("Round", TokenType::Function);
85
86 map.insert("Re", TokenType::Function);
88 map.insert("Im", TokenType::Function);
89 map.insert("Conjugate", TokenType::Function);
90 map.insert("Arg", TokenType::Function);
91
92 map.insert("Gamma", TokenType::Function);
94 map.insert("BesselJ", TokenType::Function);
95 map.insert("BesselY", TokenType::Function);
96 map.insert("BesselI", TokenType::Function);
97 map.insert("BesselK", TokenType::Function);
98 map.insert("LegendreP", TokenType::Function);
99 map.insert("LegendreQ", TokenType::Function);
100 map.insert("HermiteH", TokenType::Function);
101 map.insert("LaguerreL", TokenType::Function);
102 map.insert("ChebyshevT", TokenType::Function);
103 map.insert("ChebyshevU", TokenType::Function);
104
105 map.insert("GCD", TokenType::Function);
114 map.insert("LCM", TokenType::Function);
115 map.insert("Factorial", TokenType::Function);
116 map.insert("Binomial", TokenType::Function);
117 map.insert("EulerPhi", TokenType::Function);
118 map.insert("PrimePi", TokenType::Function);
119 map.insert("MoebiusMu", TokenType::Function);
120
121 map.insert("PolynomialGCD", TokenType::Function);
123 map.insert("Resultant", TokenType::Function);
124 map.insert("Discriminant", TokenType::Function);
125 map.insert("CyclotomicPolynomial", TokenType::Function);
126 map.insert("MinimalPolynomial", TokenType::Function);
127 map.insert("GroebnerBasis", TokenType::Function);
128
129 map.insert("Mean", TokenType::Function);
131 map.insert("Median", TokenType::Function);
132 map.insert("Variance", TokenType::Function);
133 map.insert("StandardDeviation", TokenType::Function);
134
135 map
136});