diff options
author | Khaled Hosny <khaled@libreoffice.org> | 2023-09-28 11:46:32 +0300 |
---|---|---|
committer | خالد حسني <khaled@libreoffice.org> | 2023-09-28 14:34:35 +0200 |
commit | 0eebe81f9def5f65e797281927e74ae20a4a6564 (patch) | |
tree | 3d4bd5d2402925d6416aec5b87227c63407c5e8a | |
parent | ff28544c5310870cd98402d89ba53cfa7b7f598d (diff) |
starmath: Add Arabic functions
Change-Id: Ie7597cbde29c8b9cd53d591dc9a722e7df76048b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157361
Tested-by: Jenkins
Reviewed-by: خالد حسني <khaled@libreoffice.org>
-rw-r--r-- | starmath/inc/token.hxx | 3 | ||||
-rw-r--r-- | starmath/source/parse5.cxx | 33 |
2 files changed, 34 insertions, 2 deletions
diff --git a/starmath/inc/token.hxx b/starmath/inc/token.hxx index 8409af89dd8a..eb0de6d23875 100644 --- a/starmath/inc/token.hxx +++ b/starmath/inc/token.hxx @@ -84,7 +84,7 @@ enum SmTokenType TIM, TRE, THBAR, TLAMBDABAR, // Complex and constants TPLUSMINUS, TMINUSPLUS, TSIM, TSIMEQ, // +- -+ ~ ~= TLIM, TLIMSUP, TLIMINF, TTOWARD, // Limits - THADD, + THADD, TNAHA, TOVER, TTIMES, TCDOT, TDIV, // Product type TSLASH, TBACKSLASH, TWIDESLASH, TWIDEBACKSLASH, //Slash TFRAC, TIT, // mathml related @@ -139,6 +139,7 @@ enum SmTokenType // Function TFUNC, TLN, TLOG, TEXP, // Exp - Log TSIN, TCOS, TTAN, TCOT, // Trigo + TSEC, TCSC, TSECH, TCSCH, TSINH, TCOSH, TTANH, TCOTH, // Trigo hyperbolic TASIN, TACOS, TATAN, TACOT, // Arctrigo TASINH, TACOSH, TATANH, TACOTH, // Arctrigo hyperbolic diff --git a/starmath/source/parse5.cxx b/starmath/source/parse5.cxx index 935d2ba30c68..d2742b27afa6 100644 --- a/starmath/source/parse5.cxx +++ b/starmath/source/parse5.cxx @@ -259,7 +259,35 @@ const SmTokenTableEntry aTokenTable[] { u"wideslash", TWIDESLASH, MS_SLASH, TG::Product, 0 }, { u"widetilde", TWIDETILDE, MS_TILDE, TG::Attribute, 5 }, { u"widevec", TWIDEVEC, MS_VEC, TG::Attribute, 5 }, - { u"wp", TWP, MS_WP, TG::Standalone, 5 } }; + { u"wp", TWP, MS_WP, TG::Standalone, 5 }, + { u"جا", TSIN, '\0', TG::Function, 5 }, + { u"جاز", TSINH, '\0', TG::Function, 5 }, + { u"جتا", TCOS, '\0', TG::Function, 5 }, + { u"جتاز", TCOSH, '\0', TG::Function, 5 }, + { u"حا", TSIN, '\0', TG::Function, 5 }, + { u"حاز", TSINH, '\0', TG::Function, 5 }, + { u"حتا", TCOS, '\0', TG::Function, 5 }, + { u"حتاز", TCOSH, '\0', TG::Function, 5 }, + { u"حد", THADD, MS_HADD, TG::Oper, 5 }, + { u"طا", TTAN, '\0', TG::Function, 5 }, + { u"طاز", TTANH, '\0', TG::Function, 5 }, + { u"طتا", TCOT, '\0', TG::Function, 5 }, + { u"طتاز", TCOTH, '\0', TG::Function, 5 }, + { u"ظا", TTAN, '\0', TG::Function, 5 }, + { u"ظاز", TTANH, '\0', TG::Function, 5 }, + { u"ظتا", TCOT, '\0', TG::Function, 5 }, + { u"ظتاز", TCOTH, '\0', TG::Function, 5 }, + { u"قا", TSEC, '\0', TG::Function, 5 }, + { u"قاز", TSECH, '\0', TG::Function, 5 }, + { u"قتا", TCSC, '\0', TG::Function, 5 }, + { u"قتاز", TCSCH, '\0', TG::Function, 5 }, + { u"لو", TLOG, '\0', TG::Function, 5 }, + { u"مجـ", TSUM, MS_MAJ, TG::Oper, 5 }, + { u"نها", TNAHA, '\0', TG::Oper, 5 }, + { u"ٯا", TSEC, '\0', TG::Function, 5 }, + { u"ٯاز", TSECH, '\0', TG::Function, 5 }, + { u"ٯتا", TCSC, '\0', TG::Function, 5 }, + { u"ٯتاز", TCSCH, '\0', TG::Function, 5 } }; // First character may be any alphabetic const sal_Int32 coStartFlags = KParseTokens::ANY_LETTER | KParseTokens::IGNORE_LEADING_WS; @@ -1900,10 +1928,13 @@ std::unique_ptr<SmNode> SmParser5::DoOper() case TLIMSUP: case TLIMINF: case THADD: + case TNAHA: if (eType == TLIMSUP) m_aCurToken.aText = u"lim sup"; else if (eType == TLIMINF) m_aCurToken.aText = u"lim inf"; + else if (eType == TNAHA) + m_aCurToken.aText = u"نها"; else if (eType == THADD) m_aCurToken.aText = OUString(&MS_HADD, 1); else |