summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-05-13 15:50:42 +0200
committerTakeshi Abe <tabe@fixedpoint.jp>2016-05-17 02:28:25 +0000
commitcc1a0ba927ad6f85103059aa8e6108017f436304 (patch)
treea4d8198602047e13979d62f4aa4a28407096ad03 /starmath
parent4e41e784b97a5b6f5e0cc1f5b24b816ef887b310 (diff)
convert TG constants to scoped enum
Change-Id: Ide719e8bb0d5aacc8d5da18f385b6373c7e48184 Reviewed-on: https://gerrit.libreoffice.org/24973 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
Diffstat (limited to 'starmath')
-rw-r--r--starmath/inc/parse.hxx8
-rw-r--r--starmath/inc/token.hxx50
-rw-r--r--starmath/source/cursor.cxx80
-rw-r--r--starmath/source/mathmlexport.cxx2
-rw-r--r--starmath/source/node.cxx4
-rw-r--r--starmath/source/parse.cxx608
6 files changed, 379 insertions, 373 deletions
diff --git a/starmath/inc/parse.hxx b/starmath/inc/parse.hxx
index 34194de3b55e..3ebeb2c1e2ee 100644
--- a/starmath/inc/parse.hxx
+++ b/starmath/inc/parse.hxx
@@ -56,7 +56,7 @@ class SmParser
sal_Int32 GetTokenIndex() const { return m_nTokenIndex; }
void Replace( sal_Int32 nPos, sal_Int32 nLen, const OUString &rText );
- inline bool TokenInGroup( sal_uLong nGroup );
+ inline bool TokenInGroup( TG nGroup );
// grammar
void DoTable();
@@ -65,7 +65,7 @@ class SmParser
void DoRelation();
void DoSum();
void DoProduct();
- void DoSubSup(sal_uLong nActiveGroup);
+ void DoSubSup(TG nActiveGroup);
void DoOpSubSup();
void DoPower();
void DoBlank();
@@ -119,9 +119,9 @@ public:
};
-inline bool SmParser::TokenInGroup( sal_uLong nGroup)
+inline bool SmParser::TokenInGroup( TG nGroup)
{
- return (m_aCurToken.nGroup & nGroup) != 0;
+ return bool(m_aCurToken.nGroup & nGroup);
}
diff --git a/starmath/inc/token.hxx b/starmath/inc/token.hxx
index dbc24d5c35e0..acb944a98afd 100644
--- a/starmath/inc/token.hxx
+++ b/starmath/inc/token.hxx
@@ -22,27 +22,33 @@
#include <sal/types.h>
#include <rtl/ustring.hxx>
#include <tools/solar.h>
+#include <o3tl/typed_flags_set.hxx>
// TokenGroups
-#define TGOPER 0x00000001
-#define TGRELATION 0x00000002
-#define TGSUM 0x00000004
-#define TGPRODUCT 0x00000008
-#define TGUNOPER 0x00000010
-#define TGPOWER 0x00000020
-#define TGATTRIBUT 0x00000040
-#define TGALIGN 0x00000080
-#define TGFUNCTION 0x00000100
-#define TGBLANK 0x00000200
-#define TGLBRACES 0x00000400
-#define TGRBRACES 0x00000800
-#define TGCOLOR 0x00001000
-#define TGFONT 0x00002000
-#define TGSTANDALONE 0x00004000
-#define TGDISCARDED 0x00008000
-#define TGLIMIT 0x00010000
-#define TGFONTATTR 0x00020000
-
+enum class TG {
+ NONE = 0x000000,
+ Oper = 0x000001,
+ Relation = 0x000002,
+ Sum = 0x000004,
+ Product = 0x000008,
+ UnOper = 0x000010,
+ Power = 0x000020,
+ Attribute = 0x000040,
+ Align = 0x000080,
+ Function = 0x000100,
+ Blank = 0x000200,
+ LBrace = 0x000400,
+ RBrace = 0x000800,
+ Color = 0x001000,
+ Font = 0x002000,
+ Standalone = 0x004000,
+ Discarded = 0x008000,
+ Limit = 0x010000,
+ FontAttr = 0x020000
+};
+namespace o3tl {
+ template<> struct typed_flags<TG> : is_typed_flags<TG, 0x03ffff> {};
+}
enum SmTokenType
{
@@ -105,7 +111,7 @@ struct SmToken
sal_Unicode cMathChar;
// parse-help info
- sal_uLong nGroup;
+ TG nGroup;
sal_uInt16 nLevel;
// token position
@@ -116,7 +122,7 @@ struct SmToken
SmToken(SmTokenType eTokenType,
sal_Unicode cMath,
const sal_Char* pText,
- sal_uLong nTokenGroup = 0,
+ TG nTokenGroup = TG::NONE,
sal_uInt16 nTokenLevel = 0);
};
@@ -125,7 +131,7 @@ struct SmTokenTableEntry
const sal_Char* pIdent;
SmTokenType eType;
sal_Unicode cMathChar;
- sal_uLong nGroup;
+ TG nGroup;
sal_uInt16 nLevel;
};
diff --git a/starmath/source/cursor.cxx b/starmath/source/cursor.cxx
index 5146600fbbcd..58a2a63fc66e 100644
--- a/starmath/source/cursor.cxx
+++ b/starmath/source/cursor.cxx
@@ -537,7 +537,7 @@ void SmCursor::InsertSubSup(SmSubSup eSubSup) {
SmSubSupNode* pSubSup;
if(pSubject->GetType() != NSUBSUP){
SmToken token;
- token.nGroup = TGPOWER;
+ token.nGroup = TG::Power;
pSubSup = new SmSubSupNode(token);
pSubSup->SetBody(pSubject);
*(--it) = pSubSup;
@@ -612,7 +612,7 @@ bool SmCursor::InsertLimit(SmSubSup eSubSup) {
pSubSup = static_cast<SmSubSupNode*>(pSubject->GetSubNode(0));
else { //if not create a new SmSubSupNode
SmToken token;
- token.nGroup = TGLIMIT;
+ token.nGroup = TG::Limit;
pSubSup = new SmSubSupNode(token);
//Set it's body
pSubSup->SetBody(pSubject->GetSubNode(0));
@@ -693,7 +693,7 @@ void SmCursor::InsertBrackets(SmBracketType eBracketType) {
delete pSelectedNodesList;
//Create SmBraceNode
- SmToken aTok(TLEFT, '\0', "left", 0, 5);
+ SmToken aTok(TLEFT, '\0', "left", TG::NONE, 5);
SmBraceNode *pBrace = new SmBraceNode(aTok);
pBrace->SetScaleMode(SCALE_HEIGHT);
SmNode *pLeft = CreateBracket(eBracketType, true),
@@ -719,67 +719,67 @@ SmNode *SmCursor::CreateBracket(SmBracketType eBracketType, bool bIsLeft) {
if(bIsLeft){
switch(eBracketType){
case NoneBrackets:
- aTok = SmToken(TNONE, '\0', "none", TGLBRACES | TGRBRACES, 0);
+ aTok = SmToken(TNONE, '\0', "none", TG::LBrace | TG::RBrace, 0);
break;
case RoundBrackets:
- aTok = SmToken(TLPARENT, MS_LPARENT, "(", TGLBRACES, 5);
+ aTok = SmToken(TLPARENT, MS_LPARENT, "(", TG::LBrace, 5);
break;
case SquareBrackets:
- aTok = SmToken(TLBRACKET, MS_LBRACKET, "[", TGLBRACES, 5);
+ aTok = SmToken(TLBRACKET, MS_LBRACKET, "[", TG::LBrace, 5);
break;
case DoubleSquareBrackets:
- aTok = SmToken(TLDBRACKET, MS_LDBRACKET, "ldbracket", TGLBRACES, 5);
+ aTok = SmToken(TLDBRACKET, MS_LDBRACKET, "ldbracket", TG::LBrace, 5);
break;
case LineBrackets:
- aTok = SmToken(TLLINE, MS_VERTLINE, "lline", TGLBRACES, 5);
+ aTok = SmToken(TLLINE, MS_VERTLINE, "lline", TG::LBrace, 5);
break;
case DoubleLineBrackets:
- aTok = SmToken(TLDLINE, MS_DVERTLINE, "ldline", TGLBRACES, 5);
+ aTok = SmToken(TLDLINE, MS_DVERTLINE, "ldline", TG::LBrace, 5);
break;
case CurlyBrackets:
- aTok = SmToken(TLBRACE, MS_LBRACE, "lbrace", TGLBRACES, 5);
+ aTok = SmToken(TLBRACE, MS_LBRACE, "lbrace", TG::LBrace, 5);
break;
case AngleBrackets:
- aTok = SmToken(TLANGLE, MS_LMATHANGLE, "langle", TGLBRACES, 5);
+ aTok = SmToken(TLANGLE, MS_LMATHANGLE, "langle", TG::LBrace, 5);
break;
case CeilBrackets:
- aTok = SmToken(TLCEIL, MS_LCEIL, "lceil", TGLBRACES, 5);
+ aTok = SmToken(TLCEIL, MS_LCEIL, "lceil", TG::LBrace, 5);
break;
case FloorBrackets:
- aTok = SmToken(TLFLOOR, MS_LFLOOR, "lfloor", TGLBRACES, 5);
+ aTok = SmToken(TLFLOOR, MS_LFLOOR, "lfloor", TG::LBrace, 5);
break;
}
} else {
switch(eBracketType) {
case NoneBrackets:
- aTok = SmToken(TNONE, '\0', "none", TGLBRACES | TGRBRACES, 0);
+ aTok = SmToken(TNONE, '\0', "none", TG::LBrace | TG::RBrace, 0);
break;
case RoundBrackets:
- aTok = SmToken(TRPARENT, MS_RPARENT, ")", TGRBRACES, 5);
+ aTok = SmToken(TRPARENT, MS_RPARENT, ")", TG::RBrace, 5);
break;
case SquareBrackets:
- aTok = SmToken(TRBRACKET, MS_RBRACKET, "]", TGRBRACES, 5);
+ aTok = SmToken(TRBRACKET, MS_RBRACKET, "]", TG::RBrace, 5);
break;
case DoubleSquareBrackets:
- aTok = SmToken(TRDBRACKET, MS_RDBRACKET, "rdbracket", TGRBRACES, 5);
+ aTok = SmToken(TRDBRACKET, MS_RDBRACKET, "rdbracket", TG::RBrace, 5);
break;
case LineBrackets:
- aTok = SmToken(TRLINE, MS_VERTLINE, "rline", TGRBRACES, 5);
+ aTok = SmToken(TRLINE, MS_VERTLINE, "rline", TG::RBrace, 5);
break;
case DoubleLineBrackets:
- aTok = SmToken(TRDLINE, MS_DVERTLINE, "rdline", TGRBRACES, 5);
+ aTok = SmToken(TRDLINE, MS_DVERTLINE, "rdline", TG::RBrace, 5);
break;
case CurlyBrackets:
- aTok = SmToken(TRBRACE, MS_RBRACE, "rbrace", TGRBRACES, 5);
+ aTok = SmToken(TRBRACE, MS_RBRACE, "rbrace", TG::RBrace, 5);
break;
case AngleBrackets:
- aTok = SmToken(TRANGLE, MS_RMATHANGLE, "rangle", TGRBRACES, 5);
+ aTok = SmToken(TRANGLE, MS_RMATHANGLE, "rangle", TG::RBrace, 5);
break;
case CeilBrackets:
- aTok = SmToken(TRCEIL, MS_RCEIL, "rceil", TGRBRACES, 5);
+ aTok = SmToken(TRCEIL, MS_RCEIL, "rceil", TG::RBrace, 5);
break;
case FloorBrackets:
- aTok = SmToken(TRFLOOR, MS_RFLOOR, "rfloor", TGRBRACES, 5);
+ aTok = SmToken(TRFLOOR, MS_RFLOOR, "rfloor", TG::RBrace, 5);
break;
}
}
@@ -948,7 +948,7 @@ void SmCursor::InsertFraction() {
pSelectedNodesList = nullptr;
//Create new fraction
- SmBinVerNode *pFrac = new SmBinVerNode(SmToken(TOVER, '\0', "over", TGPRODUCT, 0));
+ SmBinVerNode *pFrac = new SmBinVerNode(SmToken(TOVER, '\0', "over", TG::Product, 0));
SmNode *pRect = new SmRectangleNode(SmToken());
pFrac->SetSubNodes(pNum, pRect, pDenom);
@@ -971,7 +971,7 @@ void SmCursor::InsertText(const OUString& aString)
SmToken token;
token.eType = TIDENT;
token.cMathChar = '\0';
- token.nGroup = 0;
+ token.nGroup = TG::NONE;
token.nLevel = 5;
token.aText = aString;
@@ -999,13 +999,13 @@ void SmCursor::InsertElement(SmFormulaElement element){
case BlankElement:
{
SmToken token;
- token.nGroup = TGBLANK;
+ token.nGroup = TG::Blank;
token.aText = "~";
pNewNode = new SmBlankNode(token);
}break;
case FactorialElement:
{
- SmToken token(TFACT, MS_FACT, "fact", TGUNOPER, 5);
+ SmToken token(TFACT, MS_FACT, "fact", TG::UnOper, 5);
pNewNode = new SmMathSymbolNode(token);
}break;
case PlusElement:
@@ -1013,7 +1013,7 @@ void SmCursor::InsertElement(SmFormulaElement element){
SmToken token;
token.eType = TPLUS;
token.cMathChar = MS_PLUS;
- token.nGroup = TGUNOPER | TGSUM;
+ token.nGroup = TG::UnOper | TG::Sum;
token.nLevel = 5;
token.aText = "+";
pNewNode = new SmMathSymbolNode(token);
@@ -1023,7 +1023,7 @@ void SmCursor::InsertElement(SmFormulaElement element){
SmToken token;
token.eType = TMINUS;
token.cMathChar = MS_MINUS;
- token.nGroup = TGUNOPER | TGSUM;
+ token.nGroup = TG::UnOper | TG::Sum;
token.nLevel = 5;
token.aText = "-";
pNewNode = new SmMathSymbolNode(token);
@@ -1033,7 +1033,7 @@ void SmCursor::InsertElement(SmFormulaElement element){
SmToken token;
token.eType = TCDOT;
token.cMathChar = MS_CDOT;
- token.nGroup = TGPRODUCT;
+ token.nGroup = TG::Product;
token.aText = "cdot";
pNewNode = new SmMathSymbolNode(token);
}break;
@@ -1042,7 +1042,7 @@ void SmCursor::InsertElement(SmFormulaElement element){
SmToken token;
token.eType = TASSIGN;
token.cMathChar = MS_ASSIGN;
- token.nGroup = TGRELATION;
+ token.nGroup = TG::Relation;
token.aText = "=";
pNewNode = new SmMathSymbolNode(token);
}break;
@@ -1051,7 +1051,7 @@ void SmCursor::InsertElement(SmFormulaElement element){
SmToken token;
token.eType = TLT;
token.cMathChar = MS_LT;
- token.nGroup = TGRELATION;
+ token.nGroup = TG::Relation;
token.aText = "<";
pNewNode = new SmMathSymbolNode(token);
}break;
@@ -1060,7 +1060,7 @@ void SmCursor::InsertElement(SmFormulaElement element){
SmToken token;
token.eType = TGT;
token.cMathChar = MS_GT;
- token.nGroup = TGRELATION;
+ token.nGroup = TG::Relation;
token.aText = ">";
pNewNode = new SmMathSymbolNode(token);
}break;
@@ -1069,7 +1069,7 @@ void SmCursor::InsertElement(SmFormulaElement element){
SmToken token;
token.eType = TTEXT;
token.cMathChar = MS_PERCENT;
- token.nGroup = 0;
+ token.nGroup = TG::NONE;
token.aText = "\"%\"";
pNewNode = new SmMathSymbolNode(token);
}break;
@@ -1102,7 +1102,7 @@ void SmCursor::InsertSpecial(const OUString& _aString)
SmToken token;
token.eType = TSPECIAL;
token.cMathChar = '\0';
- token.nGroup = 0;
+ token.nGroup = TG::NONE;
token.nLevel = 5;
token.aText = aString;
SmSpecialNode* pSpecial = new SmSpecialNode(token);
@@ -1364,7 +1364,7 @@ void SmCursor::FinishEdit(SmNodeList* pLineList,
nParentIndex == 0 &&
entries > 1) {
//Wrap pLine in scalable round brackets
- SmToken aTok(TLEFT, '\0', "left", 0, 5);
+ SmToken aTok(TLEFT, '\0', "left", TG::NONE, 5);
SmBraceNode *pBrace = new SmBraceNode(aTok);
pBrace->SetScaleMode(SCALE_HEIGHT);
SmNode *pLeft = CreateBracket(RoundBrackets, true),
@@ -1684,15 +1684,15 @@ bool SmNodeListParser::IsOperator(const SmToken &token) {
}
bool SmNodeListParser::IsRelationOperator(const SmToken &token) {
- return token.nGroup & TGRELATION;
+ return bool(token.nGroup & TG::Relation);
}
bool SmNodeListParser::IsSumOperator(const SmToken &token) {
- return token.nGroup & TGSUM;
+ return bool(token.nGroup & TG::Sum);
}
bool SmNodeListParser::IsProductOperator(const SmToken &token) {
- return token.nGroup & TGPRODUCT &&
+ return token.nGroup & TG::Product &&
token.eType != TWIDESLASH &&
token.eType != TWIDEBACKSLASH &&
token.eType != TUNDERBRACE &&
@@ -1701,7 +1701,7 @@ bool SmNodeListParser::IsProductOperator(const SmToken &token) {
}
bool SmNodeListParser::IsUnaryOperator(const SmToken &token) {
- return token.nGroup & TGUNOPER &&
+ return token.nGroup & TG::UnOper &&
(token.eType == TPLUS ||
token.eType == TMINUS ||
token.eType == TPLUSMINUS ||
diff --git a/starmath/source/mathmlexport.cxx b/starmath/source/mathmlexport.cxx
index b14dd1fa6939..b17523675ec1 100644
--- a/starmath/source/mathmlexport.cxx
+++ b/starmath/source/mathmlexport.cxx
@@ -604,7 +604,7 @@ void SmXMLExport::ExportLine(const SmNode *pNode, int nLevel)
void SmXMLExport::ExportBinaryHorizontal(const SmNode *pNode, int nLevel)
{
- sal_uLong nGroup = pNode->GetToken().nGroup;
+ TG nGroup = pNode->GetToken().nGroup;
SvXMLElementExport* pRow = new SvXMLElementExport(*this,
XML_NAMESPACE_MATH, XML_MROW, true, true);
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index c5ae4135357f..58f4df3769ee 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -1260,7 +1260,7 @@ void SmSubSupNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
continue;
// switch position of limits if we are in textmode
- if (rFormat.IsTextmode() && (GetToken().nGroup & TGLIMIT))
+ if (rFormat.IsTextmode() && (GetToken().nGroup & TG::Limit))
switch (eSubSup)
{ case CSUB: eSubSup = RSUB; break;
case CSUP: eSubSup = RSUP; break;
@@ -2250,7 +2250,7 @@ void SmTextNode::AdjustFontDesc()
else {
SmTokenType nTok;
const SmTokenTableEntry *pEntry = SmParser::GetTokenTableEntry( aText );
- if (pEntry && pEntry->nGroup == TGFUNCTION) {
+ if (pEntry && pEntry->nGroup == TG::Function) {
nTok = pEntry->eType;
nFontDesc = FNT_FUNCTION;
} else {
diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx
index 7ccf4424167d..b3bef505099f 100644
--- a/starmath/source/parse.cxx
+++ b/starmath/source/parse.cxx
@@ -38,7 +38,7 @@ using namespace ::com::sun::star::i18n;
SmToken::SmToken()
: eType(TUNKNOWN)
, cMathChar('\0')
- , nGroup(0)
+ , nGroup(TG::NONE)
, nLevel(0)
, nRow(0)
, nCol(0)
@@ -48,7 +48,7 @@ SmToken::SmToken()
SmToken::SmToken(SmTokenType eTokenType,
sal_Unicode cMath,
const sal_Char* pText,
- sal_uLong nTokenGroup,
+ TG nTokenGroup,
sal_uInt16 nTokenLevel)
: aText(OUString::createFromAscii(pText))
, eType(eTokenType)
@@ -63,232 +63,232 @@ SmToken::SmToken(SmTokenType eTokenType,
static const SmTokenTableEntry aTokenTable[] =
{
- { "Im" , TIM, MS_IM, TGSTANDALONE, 5 },
- { "Re" , TRE, MS_RE, TGSTANDALONE, 5 },
- { "abs", TABS, '\0', TGUNOPER, 13 },
- { "arcosh", TACOSH, '\0', TGFUNCTION, 5 },
- { "arcoth", TACOTH, '\0', TGFUNCTION, 5 },
- { "acute", TACUTE, MS_ACUTE, TGATTRIBUT, 5 },
- { "aleph" , TALEPH, MS_ALEPH, TGSTANDALONE, 5 },
- { "alignb", TALIGNC, '\0', TGALIGN | TGDISCARDED, 0},
- { "alignc", TALIGNC, '\0', TGALIGN, 0},
- { "alignl", TALIGNL, '\0', TGALIGN, 0},
- { "alignm", TALIGNC, '\0', TGALIGN | TGDISCARDED, 0},
- { "alignr", TALIGNR, '\0', TGALIGN, 0},
- { "alignt", TALIGNC, '\0', TGALIGN | TGDISCARDED, 0},
- { "and", TAND, MS_AND, TGPRODUCT, 0},
- { "approx", TAPPROX, MS_APPROX, TGRELATION, 0},
- { "aqua", TAQUA, '\0', TGCOLOR, 0},
- { "arccos", TACOS, '\0', TGFUNCTION, 5},
- { "arccot", TACOT, '\0', TGFUNCTION, 5},
- { "arcsin", TASIN, '\0', TGFUNCTION, 5},
- { "arctan", TATAN, '\0', TGFUNCTION, 5},
- { "arsinh", TASINH, '\0', TGFUNCTION, 5},
- { "artanh", TATANH, '\0', TGFUNCTION, 5},
- { "backepsilon" , TBACKEPSILON, MS_BACKEPSILON, TGSTANDALONE, 5},
- { "bar", TBAR, MS_BAR, TGATTRIBUT, 5},
- { "binom", TBINOM, '\0', 0, 5 },
- { "black", TBLACK, '\0', TGCOLOR, 0},
- { "blue", TBLUE, '\0', TGCOLOR, 0},
- { "bold", TBOLD, '\0', TGFONTATTR, 5},
- { "boper", TBOPER, '\0', TGPRODUCT, 0},
- { "breve", TBREVE, MS_BREVE, TGATTRIBUT, 5},
- { "bslash", TBACKSLASH, MS_BACKSLASH, TGPRODUCT, 0 },
- { "cdot", TCDOT, MS_CDOT, TGPRODUCT, 0},
- { "check", TCHECK, MS_CHECK, TGATTRIBUT, 5},
- { "circ" , TCIRC, MS_CIRC, TGSTANDALONE, 5},
- { "circle", TCIRCLE, MS_CIRCLE, TGATTRIBUT, 5},
- { "color", TCOLOR, '\0', TGFONTATTR, 5},
- { "coprod", TCOPROD, MS_COPROD, TGOPER, 5},
- { "cos", TCOS, '\0', TGFUNCTION, 5},
- { "cosh", TCOSH, '\0', TGFUNCTION, 5},
- { "cot", TCOT, '\0', TGFUNCTION, 5},
- { "coth", TCOTH, '\0', TGFUNCTION, 5},
- { "csub", TCSUB, '\0', TGPOWER, 0},
- { "csup", TCSUP, '\0', TGPOWER, 0},
- { "cyan", TCYAN, '\0', TGCOLOR, 0},
- { "dddot", TDDDOT, MS_DDDOT, TGATTRIBUT, 5},
- { "ddot", TDDOT, MS_DDOT, TGATTRIBUT, 5},
- { "def", TDEF, MS_DEF, TGRELATION, 0},
- { "div", TDIV, MS_DIV, TGPRODUCT, 0},
- { "divides", TDIVIDES, MS_LINE, TGRELATION, 0},
- { "dlarrow" , TDLARROW, MS_DLARROW, TGSTANDALONE, 5},
- { "dlrarrow" , TDLRARROW, MS_DLRARROW, TGSTANDALONE, 5},
- { "dot", TDOT, MS_DOT, TGATTRIBUT, 5},
- { "dotsaxis", TDOTSAXIS, MS_DOTSAXIS, TGSTANDALONE, 5}, // 5 to continue expression
- { "dotsdiag", TDOTSDIAG, MS_DOTSUP, TGSTANDALONE, 5},
- { "dotsdown", TDOTSDOWN, MS_DOTSDOWN, TGSTANDALONE, 5},
- { "dotslow", TDOTSLOW, MS_DOTSLOW, TGSTANDALONE, 5},
- { "dotsup", TDOTSUP, MS_DOTSUP, TGSTANDALONE, 5},
- { "dotsvert", TDOTSVERT, MS_DOTSVERT, TGSTANDALONE, 5},
- { "downarrow" , TDOWNARROW, MS_DOWNARROW, TGSTANDALONE, 5},
- { "drarrow" , TDRARROW, MS_DRARROW, TGSTANDALONE, 5},
- { "emptyset" , TEMPTYSET, MS_EMPTYSET, TGSTANDALONE, 5},
- { "equiv", TEQUIV, MS_EQUIV, TGRELATION, 0},
- { "exists", TEXISTS, MS_EXISTS, TGSTANDALONE, 5},
- { "notexists", TNOTEXISTS, MS_NOTEXISTS, TGSTANDALONE, 5},
- { "exp", TEXP, '\0', TGFUNCTION, 5},
- { "fact", TFACT, MS_FACT, TGUNOPER, 5},
- { "fixed", TFIXED, '\0', TGFONT, 0},
- { "font", TFONT, '\0', TGFONTATTR, 5},
- { "forall", TFORALL, MS_FORALL, TGSTANDALONE, 5},
- { "from", TFROM, '\0', TGLIMIT, 0},
- { "fuchsia", TFUCHSIA, '\0', TGCOLOR, 0},
- { "func", TFUNC, '\0', TGFUNCTION, 5},
- { "ge", TGE, MS_GE, TGRELATION, 0},
- { "geslant", TGESLANT, MS_GESLANT, TGRELATION, 0 },
- { "gg", TGG, MS_GG, TGRELATION, 0},
- { "grave", TGRAVE, MS_GRAVE, TGATTRIBUT, 5},
- { "gray", TGRAY, '\0', TGCOLOR, 0},
- { "green", TGREEN, '\0', TGCOLOR, 0},
- { "gt", TGT, MS_GT, TGRELATION, 0},
- { "hat", THAT, MS_HAT, TGATTRIBUT, 5},
- { "hbar" , THBAR, MS_HBAR, TGSTANDALONE, 5},
- { "iiint", TIIINT, MS_IIINT, TGOPER, 5},
- { "iint", TIINT, MS_IINT, TGOPER, 5},
- { "in", TIN, MS_IN, TGRELATION, 0},
- { "infinity" , TINFINITY, MS_INFINITY, TGSTANDALONE, 5},
- { "infty" , TINFINITY, MS_INFINITY, TGSTANDALONE, 5},
- { "int", TINT, MS_INT, TGOPER, 5},
- { "intd", TINTD, MS_INT, TGUNOPER, 5},
- { "intersection", TINTERSECT, MS_INTERSECT, TGPRODUCT, 0},
- { "ital", TITALIC, '\0', TGFONTATTR, 5},
- { "italic", TITALIC, '\0', TGFONTATTR, 5},
- { "lambdabar" , TLAMBDABAR, MS_LAMBDABAR, TGSTANDALONE, 5},
- { "langle", TLANGLE, MS_LMATHANGLE, TGLBRACES, 5},
- { "lbrace", TLBRACE, MS_LBRACE, TGLBRACES, 5},
- { "lceil", TLCEIL, MS_LCEIL, TGLBRACES, 5},
- { "ldbracket", TLDBRACKET, MS_LDBRACKET, TGLBRACES, 5},
- { "ldline", TLDLINE, MS_DVERTLINE, TGLBRACES, 5},
- { "le", TLE, MS_LE, TGRELATION, 0},
- { "left", TLEFT, '\0', 0, 5},
- { "leftarrow" , TLEFTARROW, MS_LEFTARROW, TGSTANDALONE, 5},
- { "leslant", TLESLANT, MS_LESLANT, TGRELATION, 0 },
- { "lfloor", TLFLOOR, MS_LFLOOR, TGLBRACES, 5},
- { "lim", TLIM, '\0', TGOPER, 5},
- { "lime", TLIME, '\0', TGCOLOR, 0},
- { "liminf", TLIMINF, '\0', TGOPER, 5},
- { "limsup", TLIMSUP, '\0', TGOPER, 5},
- { "lint", TLINT, MS_LINT, TGOPER, 5},
- { "ll", TLL, MS_LL, TGRELATION, 0},
- { "lline", TLLINE, MS_VERTLINE, TGLBRACES, 5},
- { "llint", TLLINT, MS_LLINT, TGOPER, 5},
- { "lllint", TLLLINT, MS_LLLINT, TGOPER, 5},
- { "ln", TLN, '\0', TGFUNCTION, 5},
- { "log", TLOG, '\0', TGFUNCTION, 5},
- { "lsub", TLSUB, '\0', TGPOWER, 0},
- { "lsup", TLSUP, '\0', TGPOWER, 0},
- { "lt", TLT, MS_LT, TGRELATION, 0},
- { "magenta", TMAGENTA, '\0', TGCOLOR, 0},
- { "maroon", TMAROON, '\0', TGCOLOR, 0},
- { "matrix", TMATRIX, '\0', 0, 5},
- { "minusplus", TMINUSPLUS, MS_MINUSPLUS, TGUNOPER | TGSUM, 5},
- { "mline", TMLINE, MS_VERTLINE, 0, 0}, //! not in TGRBRACES, Level 0
- { "nabla", TNABLA, MS_NABLA, TGSTANDALONE, 5},
- { "navy", TNAVY, '\0', TGCOLOR, 0},
- { "nbold", TNBOLD, '\0', TGFONTATTR, 5},
- { "ndivides", TNDIVIDES, MS_NDIVIDES, TGRELATION, 0},
- { "neg", TNEG, MS_NEG, TGUNOPER, 5 },
- { "neq", TNEQ, MS_NEQ, TGRELATION, 0},
- { "newline", TNEWLINE, '\0', 0, 0},
- { "ni", TNI, MS_NI, TGRELATION, 0},
- { "nitalic", TNITALIC, '\0', TGFONTATTR, 5},
- { "none", TNONE, '\0', TGLBRACES | TGRBRACES, 0},
- { "nospace", TNOSPACE, '\0', TGSTANDALONE, 5},
- { "notin", TNOTIN, MS_NOTIN, TGRELATION, 0},
- { "nroot", TNROOT, MS_SQRT, TGUNOPER, 5},
- { "nsubset", TNSUBSET, MS_NSUBSET, TGRELATION, 0 },
- { "nsupset", TNSUPSET, MS_NSUPSET, TGRELATION, 0 },
- { "nsubseteq", TNSUBSETEQ, MS_NSUBSETEQ, TGRELATION, 0 },
- { "nsupseteq", TNSUPSETEQ, MS_NSUPSETEQ, TGRELATION, 0 },
- { "odivide", TODIVIDE, MS_ODIVIDE, TGPRODUCT, 0},
- { "odot", TODOT, MS_ODOT, TGPRODUCT, 0},
- { "olive", TOLIVE, '\0', TGCOLOR, 0},
- { "ominus", TOMINUS, MS_OMINUS, TGSUM, 0},
- { "oper", TOPER, '\0', TGOPER, 5},
- { "oplus", TOPLUS, MS_OPLUS, TGSUM, 0},
- { "or", TOR, MS_OR, TGSUM, 0},
- { "ortho", TORTHO, MS_ORTHO, TGRELATION, 0},
- { "otimes", TOTIMES, MS_OTIMES, TGPRODUCT, 0},
- { "over", TOVER, '\0', TGPRODUCT, 0},
- { "overbrace", TOVERBRACE, MS_OVERBRACE, TGPRODUCT, 5},
- { "overline", TOVERLINE, '\0', TGATTRIBUT, 5},
- { "overstrike", TOVERSTRIKE, '\0', TGATTRIBUT, 5},
- { "owns", TNI, MS_NI, TGRELATION, 0},
- { "parallel", TPARALLEL, MS_DLINE, TGRELATION, 0},
- { "partial", TPARTIAL, MS_PARTIAL, TGSTANDALONE, 5 },
- { "phantom", TPHANTOM, '\0', TGFONTATTR, 5},
- { "plusminus", TPLUSMINUS, MS_PLUSMINUS, TGUNOPER | TGSUM, 5},
- { "prec", TPRECEDES, MS_PRECEDES, TGRELATION, 0 },
- { "preccurlyeq", TPRECEDESEQUAL, MS_PRECEDESEQUAL, TGRELATION, 0 },
- { "precsim", TPRECEDESEQUIV, MS_PRECEDESEQUIV, TGRELATION, 0 },
- { "nprec", TNOTPRECEDES, MS_NOTPRECEDES, TGRELATION, 0 },
- { "prod", TPROD, MS_PROD, TGOPER, 5},
- { "prop", TPROP, MS_PROP, TGRELATION, 0},
- { "purple", TPURPLE, '\0', TGCOLOR, 0},
- { "rangle", TRANGLE, MS_RMATHANGLE, TGRBRACES, 0}, //! 0 to terminate expression
- { "rbrace", TRBRACE, MS_RBRACE, TGRBRACES, 0},
- { "rceil", TRCEIL, MS_RCEIL, TGRBRACES, 0},
- { "rdbracket", TRDBRACKET, MS_RDBRACKET, TGRBRACES, 0},
- { "rdline", TRDLINE, MS_DVERTLINE, TGRBRACES, 0},
- { "red", TRED, '\0', TGCOLOR, 0},
- { "rfloor", TRFLOOR, MS_RFLOOR, TGRBRACES, 0}, //! 0 to terminate expression
- { "right", TRIGHT, '\0', 0, 0},
- { "rightarrow" , TRIGHTARROW, MS_RIGHTARROW, TGSTANDALONE, 5},
- { "rline", TRLINE, MS_VERTLINE, TGRBRACES, 0}, //! 0 to terminate expression
- { "rsub", TRSUB, '\0', TGPOWER, 0},
- { "rsup", TRSUP, '\0', TGPOWER, 0},
- { "sans", TSANS, '\0', TGFONT, 0},
- { "serif", TSERIF, '\0', TGFONT, 0},
- { "setC" , TSETC, MS_SETC, TGSTANDALONE, 5},
- { "setN" , TSETN, MS_SETN, TGSTANDALONE, 5},
- { "setQ" , TSETQ, MS_SETQ, TGSTANDALONE, 5},
- { "setR" , TSETR, MS_SETR, TGSTANDALONE, 5},
- { "setZ" , TSETZ, MS_SETZ, TGSTANDALONE, 5},
- { "setminus", TBACKSLASH, MS_BACKSLASH, TGPRODUCT, 0 },
- { "silver", TSILVER, '\0', TGCOLOR, 0},
- { "sim", TSIM, MS_SIM, TGRELATION, 0},
- { "simeq", TSIMEQ, MS_SIMEQ, TGRELATION, 0},
- { "sin", TSIN, '\0', TGFUNCTION, 5},
- { "sinh", TSINH, '\0', TGFUNCTION, 5},
- { "size", TSIZE, '\0', TGFONTATTR, 5},
- { "slash", TSLASH, MS_SLASH, TGPRODUCT, 0 },
- { "sqrt", TSQRT, MS_SQRT, TGUNOPER, 5},
- { "stack", TSTACK, '\0', 0, 5},
- { "sub", TRSUB, '\0', TGPOWER, 0},
- { "subset", TSUBSET, MS_SUBSET, TGRELATION, 0},
- { "succ", TSUCCEEDS, MS_SUCCEEDS, TGRELATION, 0 },
- { "succcurlyeq", TSUCCEEDSEQUAL, MS_SUCCEEDSEQUAL, TGRELATION, 0 },
- { "succsim", TSUCCEEDSEQUIV, MS_SUCCEEDSEQUIV, TGRELATION, 0 },
- { "nsucc", TNOTSUCCEEDS, MS_NOTSUCCEEDS, TGRELATION, 0 },
- { "subseteq", TSUBSETEQ, MS_SUBSETEQ, TGRELATION, 0},
- { "sum", TSUM, MS_SUM, TGOPER, 5},
- { "sup", TRSUP, '\0', TGPOWER, 0},
- { "supset", TSUPSET, MS_SUPSET, TGRELATION, 0},
- { "supseteq", TSUPSETEQ, MS_SUPSETEQ, TGRELATION, 0},
- { "tan", TTAN, '\0', TGFUNCTION, 5},
- { "tanh", TTANH, '\0', TGFUNCTION, 5},
- { "teal", TTEAL, '\0', TGCOLOR, 0},
- { "tilde", TTILDE, MS_TILDE, TGATTRIBUT, 5},
- { "times", TTIMES, MS_TIMES, TGPRODUCT, 0},
- { "to", TTO, '\0', TGLIMIT, 0},
- { "toward", TTOWARD, MS_RIGHTARROW, TGRELATION, 0},
- { "transl", TTRANSL, MS_TRANSL, TGRELATION, 0},
- { "transr", TTRANSR, MS_TRANSR, TGRELATION, 0},
- { "underbrace", TUNDERBRACE, MS_UNDERBRACE, TGPRODUCT, 5},
- { "underline", TUNDERLINE, '\0', TGATTRIBUT, 5},
- { "union", TUNION, MS_UNION, TGSUM, 0},
- { "uoper", TUOPER, '\0', TGUNOPER, 5},
- { "uparrow" , TUPARROW, MS_UPARROW, TGSTANDALONE, 5},
- { "vec", TVEC, MS_VEC, TGATTRIBUT, 5},
- { "white", TWHITE, '\0', TGCOLOR, 0},
- { "widebslash", TWIDEBACKSLASH, MS_BACKSLASH, TGPRODUCT, 0 },
- { "widehat", TWIDEHAT, MS_HAT, TGATTRIBUT, 5},
- { "widetilde", TWIDETILDE, MS_TILDE, TGATTRIBUT, 5},
- { "wideslash", TWIDESLASH, MS_SLASH, TGPRODUCT, 0 },
- { "widevec", TWIDEVEC, MS_VEC, TGATTRIBUT, 5},
- { "wp" , TWP, MS_WP, TGSTANDALONE, 5},
- { "yellow", TYELLOW, '\0', TGCOLOR, 0}
+ { "Im" , TIM, MS_IM, TG::Standalone, 5 },
+ { "Re" , TRE, MS_RE, TG::Standalone, 5 },
+ { "abs", TABS, '\0', TG::UnOper, 13 },
+ { "arcosh", TACOSH, '\0', TG::Function, 5 },
+ { "arcoth", TACOTH, '\0', TG::Function, 5 },
+ { "acute", TACUTE, MS_ACUTE, TG::Attribute, 5 },
+ { "aleph" , TALEPH, MS_ALEPH, TG::Standalone, 5 },
+ { "alignb", TALIGNC, '\0', TG::Align | TG::Discarded, 0},
+ { "alignc", TALIGNC, '\0', TG::Align, 0},
+ { "alignl", TALIGNL, '\0', TG::Align, 0},
+ { "alignm", TALIGNC, '\0', TG::Align | TG::Discarded, 0},
+ { "alignr", TALIGNR, '\0', TG::Align, 0},
+ { "alignt", TALIGNC, '\0', TG::Align | TG::Discarded, 0},
+ { "and", TAND, MS_AND, TG::Product, 0},
+ { "approx", TAPPROX, MS_APPROX, TG::Relation, 0},
+ { "aqua", TAQUA, '\0', TG::Color, 0},
+ { "arccos", TACOS, '\0', TG::Function, 5},
+ { "arccot", TACOT, '\0', TG::Function, 5},
+ { "arcsin", TASIN, '\0', TG::Function, 5},
+ { "arctan", TATAN, '\0', TG::Function, 5},
+ { "arsinh", TASINH, '\0', TG::Function, 5},
+ { "artanh", TATANH, '\0', TG::Function, 5},
+ { "backepsilon" , TBACKEPSILON, MS_BACKEPSILON, TG::Standalone, 5},
+ { "bar", TBAR, MS_BAR, TG::Attribute, 5},
+ { "binom", TBINOM, '\0', TG::NONE, 5 },
+ { "black", TBLACK, '\0', TG::Color, 0},
+ { "blue", TBLUE, '\0', TG::Color, 0},
+ { "bold", TBOLD, '\0', TG::FontAttr, 5},
+ { "boper", TBOPER, '\0', TG::Product, 0},
+ { "breve", TBREVE, MS_BREVE, TG::Attribute, 5},
+ { "bslash", TBACKSLASH, MS_BACKSLASH, TG::Product, 0 },
+ { "cdot", TCDOT, MS_CDOT, TG::Product, 0},
+ { "check", TCHECK, MS_CHECK, TG::Attribute, 5},
+ { "circ" , TCIRC, MS_CIRC, TG::Standalone, 5},
+ { "circle", TCIRCLE, MS_CIRCLE, TG::Attribute, 5},
+ { "color", TCOLOR, '\0', TG::FontAttr, 5},
+ { "coprod", TCOPROD, MS_COPROD, TG::Oper, 5},
+ { "cos", TCOS, '\0', TG::Function, 5},
+ { "cosh", TCOSH, '\0', TG::Function, 5},
+ { "cot", TCOT, '\0', TG::Function, 5},
+ { "coth", TCOTH, '\0', TG::Function, 5},
+ { "csub", TCSUB, '\0', TG::Power, 0},
+ { "csup", TCSUP, '\0', TG::Power, 0},
+ { "cyan", TCYAN, '\0', TG::Color, 0},
+ { "dddot", TDDDOT, MS_DDDOT, TG::Attribute, 5},
+ { "ddot", TDDOT, MS_DDOT, TG::Attribute, 5},
+ { "def", TDEF, MS_DEF, TG::Relation, 0},
+ { "div", TDIV, MS_DIV, TG::Product, 0},
+ { "divides", TDIVIDES, MS_LINE, TG::Relation, 0},
+ { "dlarrow" , TDLARROW, MS_DLARROW, TG::Standalone, 5},
+ { "dlrarrow" , TDLRARROW, MS_DLRARROW, TG::Standalone, 5},
+ { "dot", TDOT, MS_DOT, TG::Attribute, 5},
+ { "dotsaxis", TDOTSAXIS, MS_DOTSAXIS, TG::Standalone, 5}, // 5 to continue expression
+ { "dotsdiag", TDOTSDIAG, MS_DOTSUP, TG::Standalone, 5},
+ { "dotsdown", TDOTSDOWN, MS_DOTSDOWN, TG::Standalone, 5},
+ { "dotslow", TDOTSLOW, MS_DOTSLOW, TG::Standalone, 5},
+ { "dotsup", TDOTSUP, MS_DOTSUP, TG::Standalone, 5},
+ { "dotsvert", TDOTSVERT, MS_DOTSVERT, TG::Standalone, 5},
+ { "downarrow" , TDOWNARROW, MS_DOWNARROW, TG::Standalone, 5},
+ { "drarrow" , TDRARROW, MS_DRARROW, TG::Standalone, 5},
+ { "emptyset" , TEMPTYSET, MS_EMPTYSET, TG::Standalone, 5},
+ { "equiv", TEQUIV, MS_EQUIV, TG::Relation, 0},
+ { "exists", TEXISTS, MS_EXISTS, TG::Standalone, 5},
+ { "notexists", TNOTEXISTS, MS_NOTEXISTS, TG::Standalone, 5},
+ { "exp", TEXP, '\0', TG::Function, 5},
+ { "fact", TFACT, MS_FACT, TG::UnOper, 5},
+ { "fixed", TFIXED, '\0', TG::Font, 0},
+ { "font", TFONT, '\0', TG::FontAttr, 5},
+ { "forall", TFORALL, MS_FORALL, TG::Standalone, 5},
+ { "from", TFROM, '\0', TG::Limit, 0},
+ { "fuchsia", TFUCHSIA, '\0', TG::Color, 0},
+ { "func", TFUNC, '\0', TG::Function, 5},
+ { "ge", TGE, MS_GE, TG::Relation, 0},
+ { "geslant", TGESLANT, MS_GESLANT, TG::Relation, 0 },
+ { "gg", TGG, MS_GG, TG::Relation, 0},
+ { "grave", TGRAVE, MS_GRAVE, TG::Attribute, 5},
+ { "gray", TGRAY, '\0', TG::Color, 0},
+ { "green", TGREEN, '\0', TG::Color, 0},
+ { "gt", TGT, MS_GT, TG::Relation, 0},
+ { "hat", THAT, MS_HAT, TG::Attribute, 5},
+ { "hbar" , THBAR, MS_HBAR, TG::Standalone, 5},
+ { "iiint", TIIINT, MS_IIINT, TG::Oper, 5},
+ { "iint", TIINT, MS_IINT, TG::Oper, 5},
+ { "in", TIN, MS_IN, TG::Relation, 0},
+ { "infinity" , TINFINITY, MS_INFINITY, TG::Standalone, 5},
+ { "infty" , TINFINITY, MS_INFINITY, TG::Standalone, 5},
+ { "int", TINT, MS_INT, TG::Oper, 5},
+ { "intd", TINTD, MS_INT, TG::UnOper, 5},
+ { "intersection", TINTERSECT, MS_INTERSECT, TG::Product, 0},
+ { "ital", TITALIC, '\0', TG::FontAttr, 5},
+ { "italic", TITALIC, '\0', TG::FontAttr, 5},
+ { "lambdabar" , TLAMBDABAR, MS_LAMBDABAR, TG::Standalone, 5},
+ { "langle", TLANGLE, MS_LMATHANGLE, TG::LBrace, 5},
+ { "lbrace", TLBRACE, MS_LBRACE, TG::LBrace, 5},
+ { "lceil", TLCEIL, MS_LCEIL, TG::LBrace, 5},
+ { "ldbracket", TLDBRACKET, MS_LDBRACKET, TG::LBrace, 5},
+ { "ldline", TLDLINE, MS_DVERTLINE, TG::LBrace, 5},
+ { "le", TLE, MS_LE, TG::Relation, 0},
+ { "left", TLEFT, '\0', TG::NONE, 5},
+ { "leftarrow" , TLEFTARROW, MS_LEFTARROW, TG::Standalone, 5},
+ { "leslant", TLESLANT, MS_LESLANT, TG::Relation, 0 },
+ { "lfloor", TLFLOOR, MS_LFLOOR, TG::LBrace, 5},
+ { "lim", TLIM, '\0', TG::Oper, 5},
+ { "lime", TLIME, '\0', TG::Color, 0},
+ { "liminf", TLIMINF, '\0', TG::Oper, 5},
+ { "limsup", TLIMSUP, '\0', TG::Oper, 5},
+ { "lint", TLINT, MS_LINT, TG::Oper, 5},
+ { "ll", TLL, MS_LL, TG::Relation, 0},
+ { "lline", TLLINE, MS_VERTLINE, TG::LBrace, 5},
+ { "llint", TLLINT, MS_LLINT, TG::Oper, 5},
+ { "lllint", TLLLINT, MS_LLLINT, TG::Oper, 5},
+ { "ln", TLN, '\0', TG::Function, 5},
+ { "log", TLOG, '\0', TG::Function, 5},
+ { "lsub", TLSUB, '\0', TG::Power, 0},
+ { "lsup", TLSUP, '\0', TG::Power, 0},
+ { "lt", TLT, MS_LT, TG::Relation, 0},
+ { "magenta", TMAGENTA, '\0', TG::Color, 0},
+ { "maroon", TMAROON, '\0', TG::Color, 0},
+ { "matrix", TMATRIX, '\0', TG::NONE, 5},
+ { "minusplus", TMINUSPLUS, MS_MINUSPLUS, TG::UnOper | TG::Sum, 5},
+ { "mline", TMLINE, MS_VERTLINE, TG::NONE, 0}, //! not in TG::RBrace, Level 0
+ { "nabla", TNABLA, MS_NABLA, TG::Standalone, 5},
+ { "navy", TNAVY, '\0', TG::Color, 0},
+ { "nbold", TNBOLD, '\0', TG::FontAttr, 5},
+ { "ndivides", TNDIVIDES, MS_NDIVIDES, TG::Relation, 0},
+ { "neg", TNEG, MS_NEG, TG::UnOper, 5 },
+ { "neq", TNEQ, MS_NEQ, TG::Relation, 0},
+ { "newline", TNEWLINE, '\0', TG::NONE, 0},
+ { "ni", TNI, MS_NI, TG::Relation, 0},
+ { "nitalic", TNITALIC, '\0', TG::FontAttr, 5},
+ { "none", TNONE, '\0', TG::LBrace | TG::RBrace, 0},
+ { "nospace", TNOSPACE, '\0', TG::Standalone, 5},
+ { "notin", TNOTIN, MS_NOTIN, TG::Relation, 0},
+ { "nroot", TNROOT, MS_SQRT, TG::UnOper, 5},
+ { "nsubset", TNSUBSET, MS_NSUBSET, TG::Relation, 0 },
+ { "nsupset", TNSUPSET, MS_NSUPSET, TG::Relation, 0 },
+ { "nsubseteq", TNSUBSETEQ, MS_NSUBSETEQ, TG::Relation, 0 },
+ { "nsupseteq", TNSUPSETEQ, MS_NSUPSETEQ, TG::Relation, 0 },
+ { "odivide", TODIVIDE, MS_ODIVIDE, TG::Product, 0},
+ { "odot", TODOT, MS_ODOT, TG::Product, 0},
+ { "olive", TOLIVE, '\0', TG::Color, 0},
+ { "ominus", TOMINUS, MS_OMINUS, TG::Sum, 0},
+ { "oper", TOPER, '\0', TG::Oper, 5},
+ { "oplus", TOPLUS, MS_OPLUS, TG::Sum, 0},
+ { "or", TOR, MS_OR, TG::Sum, 0},
+ { "ortho", TORTHO, MS_ORTHO, TG::Relation, 0},
+ { "otimes", TOTIMES, MS_OTIMES, TG::Product, 0},
+ { "over", TOVER, '\0', TG::Product, 0},
+ { "overbrace", TOVERBRACE, MS_OVERBRACE, TG::Product, 5},
+ { "overline", TOVERLINE, '\0', TG::Attribute, 5},
+ { "overstrike", TOVERSTRIKE, '\0', TG::Attribute, 5},
+ { "owns", TNI, MS_NI, TG::Relation, 0},
+ { "parallel", TPARALLEL, MS_DLINE, TG::Relation, 0},
+ { "partial", TPARTIAL, MS_PARTIAL, TG::Standalone, 5 },
+ { "phantom", TPHANTOM, '\0', TG::FontAttr, 5},
+ { "plusminus", TPLUSMINUS, MS_PLUSMINUS, TG::UnOper | TG::Sum, 5},
+ { "prec", TPRECEDES, MS_PRECEDES, TG::Relation, 0 },
+ { "preccurlyeq", TPRECEDESEQUAL, MS_PRECEDESEQUAL, TG::Relation, 0 },
+ { "precsim", TPRECEDESEQUIV, MS_PRECEDESEQUIV, TG::Relation, 0 },
+ { "nprec", TNOTPRECEDES, MS_NOTPRECEDES, TG::Relation, 0 },
+ { "prod", TPROD, MS_PROD, TG::Oper, 5},
+ { "prop", TPROP, MS_PROP, TG::Relation, 0},
+ { "purple", TPURPLE, '\0', TG::Color, 0},
+ { "rangle", TRANGLE, MS_RMATHANGLE, TG::RBrace, 0}, //! 0 to terminate expression
+ { "rbrace", TRBRACE, MS_RBRACE, TG::RBrace, 0},
+ { "rceil", TRCEIL, MS_RCEIL, TG::RBrace, 0},
+ { "rdbracket", TRDBRACKET, MS_RDBRACKET, TG::RBrace, 0},
+ { "rdline", TRDLINE, MS_DVERTLINE, TG::RBrace, 0},
+ { "red", TRED, '\0', TG::Color, 0},
+ { "rfloor", TRFLOOR, MS_RFLOOR, TG::RBrace, 0}, //! 0 to terminate expression
+ { "right", TRIGHT, '\0', TG::NONE, 0},
+ { "rightarrow" , TRIGHTARROW, MS_RIGHTARROW, TG::Standalone, 5},
+ { "rline", TRLINE, MS_VERTLINE, TG::RBrace, 0}, //! 0 to terminate expression
+ { "rsub", TRSUB, '\0', TG::Power, 0},
+ { "rsup", TRSUP, '\0', TG::Power, 0},
+ { "sans", TSANS, '\0', TG::Font, 0},
+ { "serif", TSERIF, '\0', TG::Font, 0},
+ { "setC" , TSETC, MS_SETC, TG::Standalone, 5},
+ { "setN" , TSETN, MS_SETN, TG::Standalone, 5},
+ { "setQ" , TSETQ, MS_SETQ, TG::Standalone, 5},
+ { "setR" , TSETR, MS_SETR, TG::Standalone, 5},
+ { "setZ" , TSETZ, MS_SETZ, TG::Standalone, 5},
+ { "setminus", TBACKSLASH, MS_BACKSLASH, TG::Product, 0 },
+ { "silver", TSILVER, '\0', TG::Color, 0},
+ { "sim", TSIM, MS_SIM, TG::Relation, 0},
+ { "simeq", TSIMEQ, MS_SIMEQ, TG::Relation, 0},
+ { "sin", TSIN, '\0', TG::Function, 5},
+ { "sinh", TSINH, '\0', TG::Function, 5},
+ { "size", TSIZE, '\0', TG::FontAttr, 5},
+ { "slash", TSLASH, MS_SLASH, TG::Product, 0 },
+ { "sqrt", TSQRT, MS_SQRT, TG::UnOper, 5},
+ { "stack", TSTACK, '\0', TG::NONE, 5},
+ { "sub", TRSUB, '\0', TG::Power, 0},
+ { "subset", TSUBSET, MS_SUBSET, TG::Relation, 0},
+ { "succ", TSUCCEEDS, MS_SUCCEEDS, TG::Relation, 0 },
+ { "succcurlyeq", TSUCCEEDSEQUAL, MS_SUCCEEDSEQUAL, TG::Relation, 0 },
+ { "succsim", TSUCCEEDSEQUIV, MS_SUCCEEDSEQUIV, TG::Relation, 0 },
+ { "nsucc", TNOTSUCCEEDS, MS_NOTSUCCEEDS, TG::Relation, 0 },
+ { "subseteq", TSUBSETEQ, MS_SUBSETEQ, TG::Relation, 0},
+ { "sum", TSUM, MS_SUM, TG::Oper, 5},
+ { "sup", TRSUP, '\0', TG::Power, 0},
+ { "supset", TSUPSET, MS_SUPSET, TG::Relation, 0},
+ { "supseteq", TSUPSETEQ, MS_SUPSETEQ, TG::Relation, 0},
+ { "tan", TTAN, '\0', TG::Function, 5},
+ { "tanh", TTANH, '\0', TG::Function, 5},
+ { "teal", TTEAL, '\0', TG::Color, 0},
+ { "tilde", TTILDE, MS_TILDE, TG::Attribute, 5},
+ { "times", TTIMES, MS_TIMES, TG::Product, 0},
+ { "to", TTO, '\0', TG::Limit, 0},
+ { "toward", TTOWARD, MS_RIGHTARROW, TG::Relation, 0},
+ { "transl", TTRANSL, MS_TRANSL, TG::Relation, 0},
+ { "transr", TTRANSR, MS_TRANSR, TG::Relation, 0},
+ { "underbrace", TUNDERBRACE, MS_UNDERBRACE, TG::Product, 5},
+ { "underline", TUNDERLINE, '\0', TG::Attribute, 5},
+ { "union", TUNION, MS_UNION, TG::Sum, 0},
+ { "uoper", TUOPER, '\0', TG::UnOper, 5},
+ { "uparrow" , TUPARROW, MS_UPARROW, TG::Standalone, 5},
+ { "vec", TVEC, MS_VEC, TG::Attribute, 5},
+ { "white", TWHITE, '\0', TG::Color, 0},
+ { "widebslash", TWIDEBACKSLASH, MS_BACKSLASH, TG::Product, 0 },
+ { "widehat", TWIDEHAT, MS_HAT, TG::Attribute, 5},
+ { "widetilde", TWIDETILDE, MS_TILDE, TG::Attribute, 5},
+ { "wideslash", TWIDESLASH, MS_SLASH, TG::Product, 0 },
+ { "widevec", TWIDEVEC, MS_VEC, TG::Attribute, 5},
+ { "wp" , TWP, MS_WP, TG::Standalone, 5},
+ { "yellow", TYELLOW, '\0', TG::Color, 0}
};
const SmTokenTableEntry * SmParser::GetTokenTableEntry( const OUString &rName )
@@ -444,7 +444,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TEND;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 0;
m_aCurToken.aText.clear();
}
@@ -462,7 +462,7 @@ void SmParser::NextToken()
OSL_ENSURE( n >= 0, "length < 0" );
m_aCurToken.eType = TNUMBER;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = m_aBufferString.copy( nRealStart, n );
@@ -472,7 +472,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TTEXT;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = aRes.DequotedNameOrString;
m_aCurToken.nRow = m_Row;
@@ -497,7 +497,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TIDENT;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = aName;
@@ -508,7 +508,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TRSUB;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = TGPOWER;
+ m_aCurToken.nGroup = TG::Power;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "_";
@@ -528,7 +528,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TLL;
m_aCurToken.cMathChar = MS_LL;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "<<";
@@ -538,7 +538,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TLE;
m_aCurToken.cMathChar = MS_LE;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "<=";
@@ -548,7 +548,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TLEFTARROW;
m_aCurToken.cMathChar = MS_LEFTARROW;
- m_aCurToken.nGroup = TGSTANDALONE;
+ m_aCurToken.nGroup = TG::Standalone;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "<-";
@@ -558,7 +558,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TNEQ;
m_aCurToken.cMathChar = MS_NEQ;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "<>";
@@ -568,7 +568,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TPLACE;
m_aCurToken.cMathChar = MS_PLACE;
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "<?>";
@@ -578,7 +578,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TLT;
m_aCurToken.cMathChar = MS_LT;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "<";
}
@@ -590,7 +590,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TGE;
m_aCurToken.cMathChar = MS_GE;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = ">=";
@@ -600,7 +600,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TGG;
m_aCurToken.cMathChar = MS_GG;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = ">>";
@@ -610,7 +610,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TGT;
m_aCurToken.cMathChar = MS_GT;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = ">";
}
@@ -652,7 +652,7 @@ void SmParser::NextToken()
// character
m_aCurToken.eType = TTEXT;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText.clear();
m_aCurToken.nRow = m_Row;
@@ -682,7 +682,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TLBRACKET;
m_aCurToken.cMathChar = MS_LBRACKET;
- m_aCurToken.nGroup = TGLBRACES;
+ m_aCurToken.nGroup = TG::LBrace;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "[";
}
@@ -691,7 +691,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TESCAPE;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "\\";
}
@@ -700,7 +700,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TRBRACKET;
m_aCurToken.cMathChar = MS_RBRACKET;
- m_aCurToken.nGroup = TGRBRACES;
+ m_aCurToken.nGroup = TG::RBrace;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "]";
}
@@ -709,7 +709,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TRSUP;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = TGPOWER;
+ m_aCurToken.nGroup = TG::Power;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "^";
}
@@ -718,7 +718,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TSBLANK;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = TGBLANK;
+ m_aCurToken.nGroup = TG::Blank;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "`";
}
@@ -727,7 +727,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TLGROUP;
m_aCurToken.cMathChar = MS_LBRACE;
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "{";
}
@@ -736,7 +736,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TOR;
m_aCurToken.cMathChar = MS_OR;
- m_aCurToken.nGroup = TGSUM;
+ m_aCurToken.nGroup = TG::Sum;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "|";
}
@@ -745,7 +745,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TRGROUP;
m_aCurToken.cMathChar = MS_RBRACE;
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "}";
}
@@ -754,7 +754,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TBLANK;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = TGBLANK;
+ m_aCurToken.nGroup = TG::Blank;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "~";
}
@@ -765,7 +765,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TDPOUND;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "##";
@@ -775,7 +775,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TPOUND;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "#";
}
@@ -785,7 +785,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TAND;
m_aCurToken.cMathChar = MS_AND;
- m_aCurToken.nGroup = TGPRODUCT;
+ m_aCurToken.nGroup = TG::Product;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "&";
}
@@ -794,7 +794,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TLPARENT;
m_aCurToken.cMathChar = MS_LPARENT;
- m_aCurToken.nGroup = TGLBRACES;
+ m_aCurToken.nGroup = TG::LBrace;
m_aCurToken.nLevel = 5; //! 0 to continue expression
m_aCurToken.aText = "(";
}
@@ -803,7 +803,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TRPARENT;
m_aCurToken.cMathChar = MS_RPARENT;
- m_aCurToken.nGroup = TGRBRACES;
+ m_aCurToken.nGroup = TG::RBrace;
m_aCurToken.nLevel = 0; //! 0 to terminate expression
m_aCurToken.aText = ")";
}
@@ -812,7 +812,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TMULTIPLY;
m_aCurToken.cMathChar = MS_MULTIPLY;
- m_aCurToken.nGroup = TGPRODUCT;
+ m_aCurToken.nGroup = TG::Product;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "*";
}
@@ -823,7 +823,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TPLUSMINUS;
m_aCurToken.cMathChar = MS_PLUSMINUS;
- m_aCurToken.nGroup = TGUNOPER | TGSUM;
+ m_aCurToken.nGroup = TG::UnOper | TG::Sum;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "+-";
@@ -833,7 +833,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TPLUS;
m_aCurToken.cMathChar = MS_PLUS;
- m_aCurToken.nGroup = TGUNOPER | TGSUM;
+ m_aCurToken.nGroup = TG::UnOper | TG::Sum;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "+";
}
@@ -845,7 +845,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TMINUSPLUS;
m_aCurToken.cMathChar = MS_MINUSPLUS;
- m_aCurToken.nGroup = TGUNOPER | TGSUM;
+ m_aCurToken.nGroup = TG::UnOper | TG::Sum;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "-+";
@@ -855,7 +855,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TRIGHTARROW;
m_aCurToken.cMathChar = MS_RIGHTARROW;
- m_aCurToken.nGroup = TGSTANDALONE;
+ m_aCurToken.nGroup = TG::Standalone;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "->";
@@ -865,7 +865,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TMINUS;
m_aCurToken.cMathChar = MS_MINUS;
- m_aCurToken.nGroup = TGUNOPER | TGSUM;
+ m_aCurToken.nGroup = TG::UnOper | TG::Sum;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = "-";
}
@@ -881,7 +881,7 @@ void SmParser::NextToken()
// will be treated as numbers
m_aCurToken.eType = TNUMBER;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
sal_Int32 nTxtStart = m_nBufferIndex;
@@ -905,7 +905,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TDIVIDEBY;
m_aCurToken.cMathChar = MS_SLASH;
- m_aCurToken.nGroup = TGPRODUCT;
+ m_aCurToken.nGroup = TG::Product;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "/";
}
@@ -914,7 +914,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TASSIGN;
m_aCurToken.cMathChar = MS_ASSIGN;
- m_aCurToken.nGroup = TGRELATION;
+ m_aCurToken.nGroup = TG::Relation;
m_aCurToken.nLevel = 0;
m_aCurToken.aText = "=";
}
@@ -931,7 +931,7 @@ void SmParser::NextToken()
{
m_aCurToken.eType = TCHARACTER;
m_aCurToken.cMathChar = '\0';
- m_aCurToken.nGroup = 0;
+ m_aCurToken.nGroup = TG::NONE;
m_aCurToken.nLevel = 5;
m_aCurToken.aText = m_aBufferString.copy( nRealStart, 1 );
@@ -972,14 +972,14 @@ void SmParser::DoAlign()
{
std::unique_ptr<SmStructureNode> pSNode;
- if (TokenInGroup(TGALIGN))
+ if (TokenInGroup(TG::Align))
{
pSNode.reset(new SmAlignNode(m_aCurToken));
NextToken();
// allow for just one align statement in 5.0
- if (TokenInGroup(TGALIGN))
+ if (TokenInGroup(TG::Align))
{
Error(PE_DOUBLE_ALIGN);
return;
@@ -1074,7 +1074,7 @@ void SmParser::DoExpression()
void SmParser::DoRelation()
{
DoSum();
- while (TokenInGroup(TGRELATION))
+ while (TokenInGroup(TG::Relation))
{
std::unique_ptr<SmStructureNode> pSNode(new SmBinHorNode(m_aCurToken));
SmNode *pFirst = popOrZero(m_aNodeStack);
@@ -1092,7 +1092,7 @@ void SmParser::DoRelation()
void SmParser::DoSum()
{
DoProduct();
- while (TokenInGroup(TGSUM))
+ while (TokenInGroup(TG::Sum))
{
std::unique_ptr<SmStructureNode> pSNode(new SmBinHorNode(m_aCurToken));
SmNode *pFirst = popOrZero(m_aNodeStack);
@@ -1111,7 +1111,7 @@ void SmParser::DoProduct()
{
DoPower();
- while (TokenInGroup(TGPRODUCT))
+ while (TokenInGroup(TG::Product))
{ SmStructureNode *pSNode;
SmNode *pFirst = popOrZero(m_aNodeStack),
*pOper;
@@ -1133,7 +1133,7 @@ void SmParser::DoProduct()
//Let the glyph node know it's a binary operation
m_aCurToken.eType = TBOPER;
- m_aCurToken.nGroup = TGPRODUCT;
+ m_aCurToken.nGroup = TG::Product;
DoGlyphSpecial();
pOper = popOrZero(m_aNodeStack);
@@ -1183,9 +1183,9 @@ void SmParser::DoProduct()
}
}
-void SmParser::DoSubSup(sal_uLong nActiveGroup)
+void SmParser::DoSubSup(TG nActiveGroup)
{
- OSL_ENSURE(nActiveGroup == TGPOWER || nActiveGroup == TGLIMIT,
+ OSL_ENSURE(nActiveGroup == TG::Power || nActiveGroup == TG::Limit,
"Sm: wrong token group");
if (!TokenInGroup(nActiveGroup))
@@ -1198,7 +1198,7 @@ void SmParser::DoSubSup(sal_uLong nActiveGroup)
//! sub-/supscripts will be identified by the corresponding subnodes
//! index in the 'aSubNodes' array (enum value from 'SmSubSup').
- pNode->SetUseLimits(nActiveGroup == TGLIMIT);
+ pNode->SetUseLimits(nActiveGroup == TG::Limit);
// initialize subnodes array
SmNodeArray aSubNodes(1 + SUBSUP_NUM_ENTRIES, nullptr);
@@ -1254,8 +1254,8 @@ void SmParser::DoOpSubSup()
// skip operator token
NextToken();
// get sub- supscripts if any
- if (TokenInGroup(TGPOWER))
- DoSubSup(TGPOWER);
+ if (TokenInGroup(TG::Power))
+ DoSubSup(TG::Power);
}
void SmParser::DoPower()
@@ -1263,15 +1263,15 @@ void SmParser::DoPower()
// get body for sub- supscripts on top of stack
DoTerm(false);
- DoSubSup(TGPOWER);
+ DoSubSup(TG::Power);
}
void SmParser::DoBlank()
{
- OSL_ENSURE(TokenInGroup(TGBLANK), "Sm : wrong token");
+ OSL_ENSURE(TokenInGroup(TG::Blank), "Sm : wrong token");
std::unique_ptr<SmBlankNode> pBlankNode(new SmBlankNode(m_aCurToken));
- while (TokenInGroup(TGBLANK))
+ while (TokenInGroup(TG::Blank))
{
pBlankNode->IncreaseBy(m_aCurToken);
NextToken();
@@ -1481,25 +1481,25 @@ void SmParser::DoTerm(bool bGroupNumberIdent)
break;
default:
- if (TokenInGroup(TGLBRACES))
+ if (TokenInGroup(TG::LBrace))
{
DoBrace();
}
- else if (TokenInGroup(TGOPER))
+ else if (TokenInGroup(TG::Oper))
{
DoOperator();
}
- else if (TokenInGroup(TGUNOPER))
+ else if (TokenInGroup(TG::UnOper))
{
DoUnOper();
}
- else if ( TokenInGroup(TGATTRIBUT)
- || TokenInGroup(TGFONTATTR))
+ else if ( TokenInGroup(TG::Attribute)
+ || TokenInGroup(TG::FontAttr))
{
std::stack<SmStructureNode *> aStack;
bool bIsAttr;
- while ( (bIsAttr = TokenInGroup(TGATTRIBUT))
- || TokenInGroup(TGFONTATTR))
+ while ( (bIsAttr = TokenInGroup(TG::Attribute))
+ || TokenInGroup(TG::FontAttr))
{
if (bIsAttr)
DoAttribut();
@@ -1526,7 +1526,7 @@ void SmParser::DoTerm(bool bGroupNumberIdent)
}
m_aNodeStack.push_front(std::unique_ptr<SmNode>(pFirstNode));
}
- else if (TokenInGroup(TGFUNCTION))
+ else if (TokenInGroup(TG::Function))
{
DoFunction();
}
@@ -1574,14 +1574,14 @@ void SmParser::DoEscape()
void SmParser::DoOperator()
{
- if (TokenInGroup(TGOPER))
+ if (TokenInGroup(TG::Oper))
{
std::unique_ptr<SmStructureNode> pSNode(new SmOperNode(m_aCurToken));
// put operator on top of stack
DoOper();
- if (TokenInGroup(TGLIMIT) || TokenInGroup(TGPOWER))
+ if (TokenInGroup(TG::Limit) || TokenInGroup(TG::Power))
DoSubSup(m_aCurToken.nGroup);
SmNode *pOperator = popOrZero(m_aNodeStack);
@@ -1648,7 +1648,7 @@ void SmParser::DoOper()
void SmParser::DoUnOper()
{
- OSL_ENSURE(TokenInGroup(TGUNOPER), "Sm: wrong token");
+ OSL_ENSURE(TokenInGroup(TG::UnOper), "Sm: wrong token");
SmToken aNodeToken = m_aCurToken;
SmTokenType eType = m_aCurToken.eType;
@@ -1680,7 +1680,7 @@ void SmParser::DoUnOper()
NextToken();
//Let the glyph know what it is...
m_aCurToken.eType = TUOPER;
- m_aCurToken.nGroup = TGUNOPER;
+ m_aCurToken.nGroup = TG::UnOper;
DoGlyphSpecial();
pOper = popOrZero(m_aNodeStack);
break;
@@ -1748,7 +1748,7 @@ void SmParser::DoUnOper()
void SmParser::DoAttribut()
{
- OSL_ENSURE(TokenInGroup(TGATTRIBUT), "Sm: wrong token group");
+ OSL_ENSURE(TokenInGroup(TG::Attribute), "Sm: wrong token group");
std::unique_ptr<SmStructureNode> pSNode(new SmAttributNode(m_aCurToken));
SmNode *pAttr;
@@ -1784,7 +1784,7 @@ void SmParser::DoAttribut()
void SmParser::DoFontAttribut()
{
- OSL_ENSURE(TokenInGroup(TGFONTATTR), "Sm: wrong token group");
+ OSL_ENSURE(TokenInGroup(TG::FontAttr), "Sm: wrong token group");
switch (m_aCurToken.eType)
{
@@ -1823,7 +1823,7 @@ void SmParser::DoColor()
do
{ NextToken();
- if (TokenInGroup(TGCOLOR))
+ if (TokenInGroup(TG::Color))
{ aToken = m_aCurToken;
NextToken();
}
@@ -1843,7 +1843,7 @@ void SmParser::DoFont()
do
{ NextToken();
- if (TokenInGroup(TGFONT))
+ if (TokenInGroup(TG::Font))
{ aToken = m_aCurToken;
NextToken();
}
@@ -1945,7 +1945,7 @@ void SmParser::DoFontSize()
void SmParser::DoBrace()
{
- OSL_ENSURE(m_aCurToken.eType == TLEFT || TokenInGroup(TGLBRACES),
+ OSL_ENSURE(m_aCurToken.eType == TLEFT || TokenInGroup(TG::LBrace),
"Sm: kein Klammer Ausdruck");
std::unique_ptr<SmStructureNode> pSNode(new SmBraceNode(m_aCurToken));
@@ -1961,7 +1961,7 @@ void SmParser::DoBrace()
eScaleMode = SCALE_HEIGHT;
// check for left bracket
- if (TokenInGroup(TGLBRACES) || TokenInGroup(TGRBRACES))
+ if (TokenInGroup(TG::LBrace) || TokenInGroup(TG::RBrace))
{
pLeft = new SmMathSymbolNode(m_aCurToken);
@@ -1973,7 +1973,7 @@ void SmParser::DoBrace()
{ NextToken();
// check for right bracket
- if (TokenInGroup(TGLBRACES) || TokenInGroup(TGRBRACES))
+ if (TokenInGroup(TG::LBrace) || TokenInGroup(TG::RBrace))
{
pRight = new SmMathSymbolNode(m_aCurToken);
NextToken();
@@ -1989,7 +1989,7 @@ void SmParser::DoBrace()
}
else
{
- if (TokenInGroup(TGLBRACES))
+ if (TokenInGroup(TG::LBrace))
{
pLeft = new SmMathSymbolNode(m_aCurToken);
@@ -2078,15 +2078,15 @@ void SmParser::DoBracebody(bool bIsLeftRight)
NextToken();
nNum++;
}
- else if (!TokenInGroup(TGRBRACES))
+ else if (!TokenInGroup(TG::RBrace))
{
DoAlign();
nNum++;
- if (m_aCurToken.eType != TMLINE && !TokenInGroup(TGRBRACES))
+ if (m_aCurToken.eType != TMLINE && !TokenInGroup(TG::RBrace))
Error(PE_RBRACE_EXPECTED);
}
- } while (m_aCurToken.eType != TEND && !TokenInGroup(TGRBRACES));
+ } while (m_aCurToken.eType != TEND && !TokenInGroup(TG::RBrace));
}
// build argument vector in parsing order