Fixing up old stuff, cleaning up and standardizing AST.

This commit is contained in:
Ad5001 2022-10-22 14:06:03 +02:00
parent d969661b33
commit 666d611e95
Signed by: Ad5001
GPG key ID: 7251B1AF90B960F9
4 changed files with 645 additions and 399 deletions

View file

@ -103,27 +103,28 @@ function functionToLatex(f, args) {
* @param {string} vari - variable to convert * @param {string} vari - variable to convert
* @returns {string} * @returns {string}
*/ */
function variable(vari) {
let unicodechars = ["α","β","γ","δ","ε","ζ","η", let unicodechars = ["α","β","γ","δ","ε","ζ","η",
"π","θ","κ","λ","μ","ξ","ρ", "π","θ","κ","λ","μ","ξ","ρ",
"ς","σ","τ","φ","χ","ψ","ω", "ς","σ","τ","φ","χ","ψ","ω",
"Γ","Δ","Θ","Λ","Ξ","Π","Σ", "Γ","Δ","Θ","Λ","Ξ","Π","Σ",
"Φ","Ψ","Ω","ₐ","ₑ","ₒ","ₓ", "Φ","Ψ","Ω","ₐ","ₑ","ₒ","ₓ",
"ₕ","ₖ","ₗ","ₘ","ₙ","ₚ","ₛ", "ₕ","ₖ","ₗ","ₘ","ₙ","ₚ","ₛ",
"ₜ","¹","²","³","⁴","⁵","⁶", "ₜ","¹","²","³","⁴","⁵","⁶",
"⁷","⁸","⁹","⁰","₁","₂","₃", "⁷","⁸","⁹","⁰","₁","₂","₃",
"₄","₅","₆","₇","₈","₉","₀", "₄","₅","₆","₇","₈","₉","₀",
"pi"] "pi"]
let equivalchars = ["\\alpha","\\beta","\\gamma","\\delta","\\epsilon","\\zeta","\\eta", let equivalchars = ["\\alpha","\\beta","\\gamma","\\delta","\\epsilon","\\zeta","\\eta",
"\\pi","\\theta","\\kappa","\\lambda","\\mu","\\xi","\\rho", "\\pi","\\theta","\\kappa","\\lambda","\\mu","\\xi","\\rho",
"\\sigma","\\sigma","\\tau","\\phi","\\chi","\\psi","\\omega", "\\sigma","\\sigma","\\tau","\\phi","\\chi","\\psi","\\omega",
"\\Gamma","\\Delta","\\Theta","\\Lambda","\\Xi","\\Pi","\\Sigma", "\\Gamma","\\Delta","\\Theta","\\Lambda","\\Xi","\\Pi","\\Sigma",
"\\Phy","\\Psi","\\Omega","{}_{a}","{}_{e}","{}_{o}","{}_{x}", "\\Phy","\\Psi","\\Omega","{}_{a}","{}_{e}","{}_{o}","{}_{x}",
"{}_{h}","{}_{k}","{}_{l}","{}_{m}","{}_{n}","{}_{p}","{}_{s}", "{}_{h}","{}_{k}","{}_{l}","{}_{m}","{}_{n}","{}_{p}","{}_{s}",
"{}_{t}","{}^{1}","{}^{2}","{}^{3}","{}^{4}","{}^{5}","{}^{6}", "{}_{t}","{}^{1}","{}^{2}","{}^{3}","{}^{4}","{}^{5}","{}^{6}",
"{}^{7}","{}^{8}","{}^{9}","{}^{0}","{}_{1}","{}_{2}","{}_{3}", "{}^{7}","{}^{8}","{}^{9}","{}^{0}","{}_{1}","{}_{2}","{}_{3}",
"{}_{4}","{}_{5}","{}_{6}","{}_{7}","{}_{8}","{}_{9}","{}_{0}", "{}_{4}","{}_{5}","{}_{6}","{}_{7}","{}_{8}","{}_{9}","{}_{0}",
"\\pi"] "\\pi"]
function variable(vari) {
for(let i = 0; i < unicodechars.length; i++) { for(let i = 0; i < unicodechars.length; i++) {
//console.log(vari, unicodechars[i], equivalchars[i]); //console.log(vari, unicodechars[i], equivalchars[i]);
if(vari.includes(unicodechars[i])) if(vari.includes(unicodechars[i]))

View file

@ -25,6 +25,7 @@
class ExpressionBuilder { class ExpressionBuilder {
constructor(tokenizer) { constructor(tokenizer) {
this.tokenizer = tokenizer; this.tokenizer = tokenizer;
this.stack = []
} }
parseExpression(delimitors = '') { parseExpression(delimitors = '') {

View file

@ -71,15 +71,15 @@ const FUNCTIONS_LIST = Object.keys(FUNCTIONS);
// TODO: Complete // TODO: Complete
const DERIVATIVES = { const DERIVATIVES = {
"abs": "abs(<1>)/<1>", "abs": "abs(<1>)/<1>",
"acos": "-derivate(<1>)/sqrt(1-(<1>)^2)", "acos": "-derivative(<1>)/sqrt(1-(<1>)^2)",
"acosh": "derivate(<1>)/sqrt((<1>)^2-1)", "acosh": "derivative(<1>)/sqrt((<1>)^2-1)",
"asin": "derivate(<1>)/sqrt(1-(<1>)^2)", "asin": "derivative(<1>)/sqrt(1-(<1>)^2)",
"asinh": "derivate(<1>)/sqrt((<1>)^2+1)", "asinh": "derivative(<1>)/sqrt((<1>)^2+1)",
"atan": "derivate(<1>)/(1+(<1>)^2)", "atan": "derivative(<1>)/(1+(<1>)^2)",
"atan2": "", "atan2": "",
} }
const INTEGRALS = { const INTEGRALS = {
"abs": "integrate(<1>)*sign(<1>)", "abs": "integral(<1>)*sign(<1>)",
"acos": "", "acos": "",
"acosh": "", "acosh": "",
"asin": "", "asin": "",