stop duplicate definition of lcl_popOrZero()
This renames it to popOrZero() in node.hxx. Also one more call site found in mathmlimport.hxx. Change-Id: I3f0281315146347280d0836ceadcfdf9c80fa166 Reviewed-on: https://gerrit.libreoffice.org/12310 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
This commit is contained in:
committed by
Noel Grandin
parent
775d99c87b
commit
da2d24a285
@@ -64,8 +64,15 @@ typedef std::stack< SmNode* > SmNodeStack;
|
|||||||
typedef std::vector< SmNode * > SmNodeArray;
|
typedef std::vector< SmNode * > SmNodeArray;
|
||||||
typedef std::vector< SmStructureNode * > SmStructureNodeArray;
|
typedef std::vector< SmStructureNode * > SmStructureNodeArray;
|
||||||
|
|
||||||
|
template < typename T >
|
||||||
|
T* popOrZero( ::std::stack<T*> & rStack )
|
||||||
|
{
|
||||||
|
if (rStack.empty())
|
||||||
|
return 0;
|
||||||
|
T* pTmp = rStack.top();
|
||||||
|
rStack.pop();
|
||||||
|
return pTmp;
|
||||||
|
}
|
||||||
|
|
||||||
enum SmScaleMode { SCALE_NONE, SCALE_WIDTH, SCALE_HEIGHT };
|
enum SmScaleMode { SCALE_NONE, SCALE_WIDTH, SCALE_HEIGHT };
|
||||||
|
|
||||||
|
@@ -81,19 +81,6 @@ using namespace ::xmloff::token;
|
|||||||
#define IMPORT_SVC_NAME "com.sun.star.xml.XMLImportFilter"
|
#define IMPORT_SVC_NAME "com.sun.star.xml.XMLImportFilter"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
template < typename T >
|
|
||||||
T* lcl_popOrZero( ::std::stack<T*> & rStack )
|
|
||||||
{
|
|
||||||
if (rStack.empty())
|
|
||||||
return 0;
|
|
||||||
T* pTmp = rStack.top();
|
|
||||||
rStack.pop();
|
|
||||||
return pTmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sal_uLong SmXMLImportWrapper::Import(SfxMedium &rMedium)
|
sal_uLong SmXMLImportWrapper::Import(SfxMedium &rMedium)
|
||||||
{
|
{
|
||||||
sal_uLong nError = ERRCODE_SFX_DOLOADFAILED;
|
sal_uLong nError = ERRCODE_SFX_DOLOADFAILED;
|
||||||
@@ -704,7 +691,7 @@ void SmXMLContext_Helper::ApplyAttrs()
|
|||||||
aToken.eType = TNBOLD;
|
aToken.eType = TNBOLD;
|
||||||
SmStructureNode *pFontNode = static_cast<SmStructureNode *>
|
SmStructureNode *pFontNode = static_cast<SmStructureNode *>
|
||||||
(new SmFontNode(aToken));
|
(new SmFontNode(aToken));
|
||||||
pFontNode->SetSubNodes(0,lcl_popOrZero(rNodeStack));
|
pFontNode->SetSubNodes(0,popOrZero(rNodeStack));
|
||||||
rNodeStack.push(pFontNode);
|
rNodeStack.push(pFontNode);
|
||||||
}
|
}
|
||||||
if (nIsItalic != -1)
|
if (nIsItalic != -1)
|
||||||
@@ -715,7 +702,7 @@ void SmXMLContext_Helper::ApplyAttrs()
|
|||||||
aToken.eType = TNITALIC;
|
aToken.eType = TNITALIC;
|
||||||
SmStructureNode *pFontNode = static_cast<SmStructureNode *>
|
SmStructureNode *pFontNode = static_cast<SmStructureNode *>
|
||||||
(new SmFontNode(aToken));
|
(new SmFontNode(aToken));
|
||||||
pFontNode->SetSubNodes(0,lcl_popOrZero(rNodeStack));
|
pFontNode->SetSubNodes(0,popOrZero(rNodeStack));
|
||||||
rNodeStack.push(pFontNode);
|
rNodeStack.push(pFontNode);
|
||||||
}
|
}
|
||||||
if (nFontSize != 0.0)
|
if (nFontSize != 0.0)
|
||||||
@@ -736,7 +723,7 @@ void SmXMLContext_Helper::ApplyAttrs()
|
|||||||
else
|
else
|
||||||
pFontNode->SetSizeParameter(Fraction(nFontSize),FNTSIZ_ABSOLUT);
|
pFontNode->SetSizeParameter(Fraction(nFontSize),FNTSIZ_ABSOLUT);
|
||||||
|
|
||||||
pFontNode->SetSubNodes(0,lcl_popOrZero(rNodeStack));
|
pFontNode->SetSubNodes(0,popOrZero(rNodeStack));
|
||||||
rNodeStack.push(pFontNode);
|
rNodeStack.push(pFontNode);
|
||||||
}
|
}
|
||||||
if (!sFontFamily.isEmpty())
|
if (!sFontFamily.isEmpty())
|
||||||
@@ -753,7 +740,7 @@ void SmXMLContext_Helper::ApplyAttrs()
|
|||||||
|
|
||||||
aToken.aText = sFontFamily;
|
aToken.aText = sFontFamily;
|
||||||
SmFontNode *pFontNode = new SmFontNode(aToken);
|
SmFontNode *pFontNode = new SmFontNode(aToken);
|
||||||
pFontNode->SetSubNodes(0,lcl_popOrZero(rNodeStack));
|
pFontNode->SetSubNodes(0,popOrZero(rNodeStack));
|
||||||
rNodeStack.push(pFontNode);
|
rNodeStack.push(pFontNode);
|
||||||
}
|
}
|
||||||
if (!sColor.isEmpty())
|
if (!sColor.isEmpty())
|
||||||
@@ -767,7 +754,7 @@ void SmXMLContext_Helper::ApplyAttrs()
|
|||||||
{
|
{
|
||||||
aToken.eType = static_cast<SmTokenType>(tok);
|
aToken.eType = static_cast<SmTokenType>(tok);
|
||||||
SmFontNode *pFontNode = new SmFontNode(aToken);
|
SmFontNode *pFontNode = new SmFontNode(aToken);
|
||||||
pFontNode->SetSubNodes(0,lcl_popOrZero(rNodeStack));
|
pFontNode->SetSubNodes(0,popOrZero(rNodeStack));
|
||||||
rNodeStack.push(pFontNode);
|
rNodeStack.push(pFontNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -966,7 +953,7 @@ void SmXMLPhantomContext_Impl::EndElement()
|
|||||||
SmStructureNode *pPhantom = static_cast<SmStructureNode *>
|
SmStructureNode *pPhantom = static_cast<SmStructureNode *>
|
||||||
(new SmFontNode(aToken));
|
(new SmFontNode(aToken));
|
||||||
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
||||||
pPhantom->SetSubNodes(0,lcl_popOrZero(rNodeStack));
|
pPhantom->SetSubNodes(0,popOrZero(rNodeStack));
|
||||||
rNodeStack.push(pPhantom);
|
rNodeStack.push(pPhantom);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1445,8 +1432,8 @@ void SmXMLSubContext_Impl::GenericEndElement(SmTokenType eType, SmSubSup eSubSup
|
|||||||
for (sal_uLong i = 1; i < aSubNodes.size(); i++)
|
for (sal_uLong i = 1; i < aSubNodes.size(); i++)
|
||||||
aSubNodes[i] = NULL;
|
aSubNodes[i] = NULL;
|
||||||
|
|
||||||
aSubNodes[eSubSup+1] = lcl_popOrZero(rNodeStack);
|
aSubNodes[eSubSup+1] = popOrZero(rNodeStack);
|
||||||
aSubNodes[0] = lcl_popOrZero(rNodeStack);
|
aSubNodes[0] = popOrZero(rNodeStack);
|
||||||
pNode->SetSubNodes(aSubNodes);
|
pNode->SetSubNodes(aSubNodes);
|
||||||
rNodeStack.push(pNode);
|
rNodeStack.push(pNode);
|
||||||
}
|
}
|
||||||
@@ -1505,9 +1492,9 @@ void SmXMLSubSupContext_Impl::GenericEndElement(SmTokenType eType,
|
|||||||
for (sal_uLong i = 1; i < aSubNodes.size(); i++)
|
for (sal_uLong i = 1; i < aSubNodes.size(); i++)
|
||||||
aSubNodes[i] = NULL;
|
aSubNodes[i] = NULL;
|
||||||
|
|
||||||
aSubNodes[aSup+1] = lcl_popOrZero(rNodeStack);
|
aSubNodes[aSup+1] = popOrZero(rNodeStack);
|
||||||
aSubNodes[aSub+1] = lcl_popOrZero(rNodeStack);
|
aSubNodes[aSub+1] = popOrZero(rNodeStack);
|
||||||
aSubNodes[0] = lcl_popOrZero(rNodeStack);
|
aSubNodes[0] = popOrZero(rNodeStack);
|
||||||
pNode->SetSubNodes(aSubNodes);
|
pNode->SetSubNodes(aSubNodes);
|
||||||
rNodeStack.push(pNode);
|
rNodeStack.push(pNode);
|
||||||
}
|
}
|
||||||
@@ -1546,7 +1533,7 @@ void SmXMLUnderContext_Impl::HandleAccent()
|
|||||||
|
|
||||||
/*Just one special case for the underline thing*/
|
/*Just one special case for the underline thing*/
|
||||||
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
||||||
SmNode *pTest = lcl_popOrZero(rNodeStack);
|
SmNode *pTest = popOrZero(rNodeStack);
|
||||||
SmToken aToken;
|
SmToken aToken;
|
||||||
aToken.cMathChar = '\0';
|
aToken.cMathChar = '\0';
|
||||||
aToken.eType = TUNDERLINE;
|
aToken.eType = TUNDERLINE;
|
||||||
@@ -1564,7 +1551,7 @@ void SmXMLUnderContext_Impl::HandleAccent()
|
|||||||
else
|
else
|
||||||
aSubNodes[0] = pTest;
|
aSubNodes[0] = pTest;
|
||||||
|
|
||||||
aSubNodes[1] = lcl_popOrZero(rNodeStack);
|
aSubNodes[1] = popOrZero(rNodeStack);
|
||||||
pNode->SetSubNodes(aSubNodes);
|
pNode->SetSubNodes(aSubNodes);
|
||||||
pNode->SetScaleMode(SCALE_WIDTH);
|
pNode->SetScaleMode(SCALE_WIDTH);
|
||||||
rNodeStack.push(pNode);
|
rNodeStack.push(pNode);
|
||||||
@@ -1629,8 +1616,8 @@ void SmXMLOverContext_Impl::HandleAccent()
|
|||||||
|
|
||||||
SmNodeArray aSubNodes;
|
SmNodeArray aSubNodes;
|
||||||
aSubNodes.resize(2);
|
aSubNodes.resize(2);
|
||||||
aSubNodes[0] = lcl_popOrZero(rNodeStack);
|
aSubNodes[0] = popOrZero(rNodeStack);
|
||||||
aSubNodes[1] = lcl_popOrZero(rNodeStack);
|
aSubNodes[1] = popOrZero(rNodeStack);
|
||||||
pNode->SetSubNodes(aSubNodes);
|
pNode->SetSubNodes(aSubNodes);
|
||||||
pNode->SetScaleMode(SCALE_WIDTH);
|
pNode->SetScaleMode(SCALE_WIDTH);
|
||||||
rNodeStack.push(pNode);
|
rNodeStack.push(pNode);
|
||||||
@@ -2152,7 +2139,7 @@ void SmXMLDocContext_Impl::EndElement()
|
|||||||
ContextArray.resize(1);
|
ContextArray.resize(1);
|
||||||
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
||||||
|
|
||||||
ContextArray[0] = lcl_popOrZero(rNodeStack);
|
ContextArray[0] = popOrZero(rNodeStack);
|
||||||
|
|
||||||
SmToken aDummy;
|
SmToken aDummy;
|
||||||
SmStructureNode *pSNode = new SmLineNode(aDummy);
|
SmStructureNode *pSNode = new SmLineNode(aDummy);
|
||||||
@@ -2185,8 +2172,8 @@ void SmXMLFracContext_Impl::EndElement()
|
|||||||
aToken.eType = TOVER;
|
aToken.eType = TOVER;
|
||||||
SmStructureNode *pSNode = new SmBinVerNode(aToken);
|
SmStructureNode *pSNode = new SmBinVerNode(aToken);
|
||||||
SmNode *pOper = new SmRectangleNode(aToken);
|
SmNode *pOper = new SmRectangleNode(aToken);
|
||||||
SmNode *pSecond = lcl_popOrZero(rNodeStack);
|
SmNode *pSecond = popOrZero(rNodeStack);
|
||||||
SmNode *pFirst = lcl_popOrZero(rNodeStack);
|
SmNode *pFirst = popOrZero(rNodeStack);
|
||||||
pSNode->SetSubNodes(pFirst,pOper,pSecond);
|
pSNode->SetSubNodes(pFirst,pOper,pSecond);
|
||||||
rNodeStack.push(pSNode);
|
rNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
@@ -2205,8 +2192,8 @@ void SmXMLRootContext_Impl::EndElement()
|
|||||||
SmStructureNode *pSNode = new SmRootNode(aToken);
|
SmStructureNode *pSNode = new SmRootNode(aToken);
|
||||||
SmNode *pOper = new SmRootSymbolNode(aToken);
|
SmNode *pOper = new SmRootSymbolNode(aToken);
|
||||||
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
||||||
SmNode *pIndex = lcl_popOrZero(rNodeStack);
|
SmNode *pIndex = popOrZero(rNodeStack);
|
||||||
SmNode *pBase = lcl_popOrZero(rNodeStack);
|
SmNode *pBase = popOrZero(rNodeStack);
|
||||||
pSNode->SetSubNodes(pIndex,pOper,pBase);
|
pSNode->SetSubNodes(pIndex,pOper,pBase);
|
||||||
rNodeStack.push(pSNode);
|
rNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
@@ -2227,7 +2214,7 @@ void SmXMLSqrtContext_Impl::EndElement()
|
|||||||
SmStructureNode *pSNode = new SmRootNode(aToken);
|
SmStructureNode *pSNode = new SmRootNode(aToken);
|
||||||
SmNode *pOper = new SmRootSymbolNode(aToken);
|
SmNode *pOper = new SmRootSymbolNode(aToken);
|
||||||
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
SmNodeStack &rNodeStack = GetSmImport().GetNodeStack();
|
||||||
pSNode->SetSubNodes(0,pOper,lcl_popOrZero(rNodeStack));
|
pSNode->SetSubNodes(0,pOper,popOrZero(rNodeStack));
|
||||||
rNodeStack.push(pSNode);
|
rNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2465,14 +2452,14 @@ void SmXMLMultiScriptsContext_Impl::ProcessSubSupPairs(bool bIsPrescript)
|
|||||||
/*On each loop the base and its sub sup pair becomes the
|
/*On each loop the base and its sub sup pair becomes the
|
||||||
base for the next loop to which the next sub sup pair is
|
base for the next loop to which the next sub sup pair is
|
||||||
attached, i.e. wheels within wheels*/
|
attached, i.e. wheels within wheels*/
|
||||||
aSubNodes[0] = lcl_popOrZero(aReverseStack);
|
aSubNodes[0] = popOrZero(aReverseStack);
|
||||||
|
|
||||||
SmNode *pScriptNode = lcl_popOrZero(aReverseStack);
|
SmNode *pScriptNode = popOrZero(aReverseStack);
|
||||||
|
|
||||||
if (pScriptNode && ((pScriptNode->GetToken().eType != TIDENT) ||
|
if (pScriptNode && ((pScriptNode->GetToken().eType != TIDENT) ||
|
||||||
(!pScriptNode->GetToken().aText.isEmpty())))
|
(!pScriptNode->GetToken().aText.isEmpty())))
|
||||||
aSubNodes[eSub+1] = pScriptNode;
|
aSubNodes[eSub+1] = pScriptNode;
|
||||||
pScriptNode = lcl_popOrZero(aReverseStack);
|
pScriptNode = popOrZero(aReverseStack);
|
||||||
if (pScriptNode && ((pScriptNode->GetToken().eType != TIDENT) ||
|
if (pScriptNode && ((pScriptNode->GetToken().eType != TIDENT) ||
|
||||||
(!pScriptNode->GetToken().aText.isEmpty())))
|
(!pScriptNode->GetToken().aText.isEmpty())))
|
||||||
aSubNodes[eSup+1] = pScriptNode;
|
aSubNodes[eSup+1] = pScriptNode;
|
||||||
@@ -2480,7 +2467,7 @@ void SmXMLMultiScriptsContext_Impl::ProcessSubSupPairs(bool bIsPrescript)
|
|||||||
pNode->SetSubNodes(aSubNodes);
|
pNode->SetSubNodes(aSubNodes);
|
||||||
aReverseStack.push(pNode);
|
aReverseStack.push(pNode);
|
||||||
}
|
}
|
||||||
rNodeStack.push(lcl_popOrZero(aReverseStack));
|
rNodeStack.push(popOrZero(aReverseStack));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -245,11 +245,7 @@ public:
|
|||||||
SmNodeStack & GetNodeStack() { return aNodeStack; }
|
SmNodeStack & GetNodeStack() { return aNodeStack; }
|
||||||
SmNode *GetTree()
|
SmNode *GetTree()
|
||||||
{
|
{
|
||||||
if (aNodeStack.empty())
|
return popOrZero(aNodeStack);
|
||||||
return 0;
|
|
||||||
SmNode* result = aNodeStack.top();
|
|
||||||
aNodeStack.pop();
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetSuccess() { return bSuccess; }
|
bool GetSuccess() { return bSuccess; }
|
||||||
|
@@ -36,19 +36,6 @@ using namespace ::com::sun::star;
|
|||||||
using namespace ::com::sun::star::i18n;
|
using namespace ::com::sun::star::i18n;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
template < typename T >
|
|
||||||
T* lcl_popOrZero( ::std::stack<T*> & rStack )
|
|
||||||
{
|
|
||||||
if (rStack.empty())
|
|
||||||
return 0;
|
|
||||||
T* pTmp = rStack.top();
|
|
||||||
rStack.pop();
|
|
||||||
return pTmp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SmToken::SmToken() :
|
SmToken::SmToken() :
|
||||||
eType (TUNKNOWN),
|
eType (TUNKNOWN),
|
||||||
cMathChar ('\0')
|
cMathChar ('\0')
|
||||||
@@ -1008,7 +995,7 @@ void SmParser::Align()
|
|||||||
|
|
||||||
if (pSNode)
|
if (pSNode)
|
||||||
{
|
{
|
||||||
pSNode->SetSubNodes(lcl_popOrZero(m_aNodeStack), 0);
|
pSNode->SetSubNodes(popOrZero(m_aNodeStack), 0);
|
||||||
m_aNodeStack.push(pSNode);
|
m_aNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1027,14 +1014,14 @@ void SmParser::Line()
|
|||||||
if (m_aCurToken.eType != TEND && m_aCurToken.eType != TNEWLINE)
|
if (m_aCurToken.eType != TEND && m_aCurToken.eType != TNEWLINE)
|
||||||
{ Align();
|
{ Align();
|
||||||
ExpressionArray.resize(++n);
|
ExpressionArray.resize(++n);
|
||||||
ExpressionArray[n - 1] = lcl_popOrZero(m_aNodeStack);
|
ExpressionArray[n - 1] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (m_aCurToken.eType != TEND && m_aCurToken.eType != TNEWLINE)
|
while (m_aCurToken.eType != TEND && m_aCurToken.eType != TNEWLINE)
|
||||||
{
|
{
|
||||||
Expression();
|
Expression();
|
||||||
ExpressionArray.resize(++n);
|
ExpressionArray.resize(++n);
|
||||||
ExpressionArray[n - 1] = lcl_popOrZero(m_aNodeStack);
|
ExpressionArray[n - 1] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
//If there's no expression, add an empty one.
|
//If there's no expression, add an empty one.
|
||||||
@@ -1073,12 +1060,12 @@ void SmParser::Expression()
|
|||||||
|
|
||||||
Relation();
|
Relation();
|
||||||
RelationArray.resize(++n);
|
RelationArray.resize(++n);
|
||||||
RelationArray[n - 1] = lcl_popOrZero(m_aNodeStack);
|
RelationArray[n - 1] = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
while (m_aCurToken.nLevel >= 4)
|
while (m_aCurToken.nLevel >= 4)
|
||||||
{ Relation();
|
{ Relation();
|
||||||
RelationArray.resize(++n);
|
RelationArray.resize(++n);
|
||||||
RelationArray[n - 1] = lcl_popOrZero(m_aNodeStack);
|
RelationArray[n - 1] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n > 1)
|
if (n > 1)
|
||||||
@@ -1102,14 +1089,14 @@ void SmParser::Relation()
|
|||||||
while (TokenInGroup(TGRELATION))
|
while (TokenInGroup(TGRELATION))
|
||||||
{
|
{
|
||||||
SmStructureNode *pSNode = new SmBinHorNode(m_aCurToken);
|
SmStructureNode *pSNode = new SmBinHorNode(m_aCurToken);
|
||||||
SmNode *pFirst = lcl_popOrZero(m_aNodeStack);
|
SmNode *pFirst = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
OpSubSup();
|
OpSubSup();
|
||||||
SmNode *pSecond = lcl_popOrZero(m_aNodeStack);
|
SmNode *pSecond = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
Sum();
|
Sum();
|
||||||
|
|
||||||
pSNode->SetSubNodes(pFirst, pSecond, lcl_popOrZero(m_aNodeStack));
|
pSNode->SetSubNodes(pFirst, pSecond, popOrZero(m_aNodeStack));
|
||||||
m_aNodeStack.push(pSNode);
|
m_aNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1121,14 +1108,14 @@ void SmParser::Sum()
|
|||||||
while (TokenInGroup(TGSUM))
|
while (TokenInGroup(TGSUM))
|
||||||
{
|
{
|
||||||
SmStructureNode *pSNode = new SmBinHorNode(m_aCurToken);
|
SmStructureNode *pSNode = new SmBinHorNode(m_aCurToken);
|
||||||
SmNode *pFirst = lcl_popOrZero(m_aNodeStack);
|
SmNode *pFirst = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
OpSubSup();
|
OpSubSup();
|
||||||
SmNode *pSecond = lcl_popOrZero(m_aNodeStack);
|
SmNode *pSecond = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
Product();
|
Product();
|
||||||
|
|
||||||
pSNode->SetSubNodes(pFirst, pSecond, lcl_popOrZero(m_aNodeStack));
|
pSNode->SetSubNodes(pFirst, pSecond, popOrZero(m_aNodeStack));
|
||||||
m_aNodeStack.push(pSNode);
|
m_aNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1140,7 +1127,7 @@ void SmParser::Product()
|
|||||||
|
|
||||||
while (TokenInGroup(TGPRODUCT))
|
while (TokenInGroup(TGPRODUCT))
|
||||||
{ SmStructureNode *pSNode;
|
{ SmStructureNode *pSNode;
|
||||||
SmNode *pFirst = lcl_popOrZero(m_aNodeStack),
|
SmNode *pFirst = popOrZero(m_aNodeStack),
|
||||||
*pOper;
|
*pOper;
|
||||||
bool bSwitchArgs = false;
|
bool bSwitchArgs = false;
|
||||||
|
|
||||||
@@ -1163,7 +1150,7 @@ void SmParser::Product()
|
|||||||
m_aCurToken.nGroup = TGPRODUCT;
|
m_aCurToken.nGroup = TGPRODUCT;
|
||||||
|
|
||||||
GlyphSpecial();
|
GlyphSpecial();
|
||||||
pOper = lcl_popOrZero(m_aNodeStack);
|
pOper = popOrZero(m_aNodeStack);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TOVERBRACE :
|
case TOVERBRACE :
|
||||||
@@ -1192,7 +1179,7 @@ void SmParser::Product()
|
|||||||
pSNode = new SmBinHorNode(m_aCurToken);
|
pSNode = new SmBinHorNode(m_aCurToken);
|
||||||
|
|
||||||
OpSubSup();
|
OpSubSup();
|
||||||
pOper = lcl_popOrZero(m_aNodeStack);
|
pOper = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
Power();
|
Power();
|
||||||
@@ -1200,11 +1187,11 @@ void SmParser::Product()
|
|||||||
if (bSwitchArgs)
|
if (bSwitchArgs)
|
||||||
{
|
{
|
||||||
//! vgl siehe SmBinDiagonalNode::Arrange
|
//! vgl siehe SmBinDiagonalNode::Arrange
|
||||||
pSNode->SetSubNodes(pFirst, lcl_popOrZero(m_aNodeStack), pOper);
|
pSNode->SetSubNodes(pFirst, popOrZero(m_aNodeStack), pOper);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pSNode->SetSubNodes(pFirst, pOper, lcl_popOrZero(m_aNodeStack));
|
pSNode->SetSubNodes(pFirst, pOper, popOrZero(m_aNodeStack));
|
||||||
}
|
}
|
||||||
m_aNodeStack.push(pSNode);
|
m_aNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
@@ -1231,7 +1218,7 @@ void SmParser::SubSup(sal_uLong nActiveGroup)
|
|||||||
// initialize subnodes array
|
// initialize subnodes array
|
||||||
SmNodeArray aSubNodes;
|
SmNodeArray aSubNodes;
|
||||||
aSubNodes.resize(1 + SUBSUP_NUM_ENTRIES);
|
aSubNodes.resize(1 + SUBSUP_NUM_ENTRIES);
|
||||||
aSubNodes[0] = lcl_popOrZero(m_aNodeStack);
|
aSubNodes[0] = popOrZero(m_aNodeStack);
|
||||||
for (sal_uInt16 i = 1; i < aSubNodes.size(); i++)
|
for (sal_uInt16 i = 1; i < aSubNodes.size(); i++)
|
||||||
aSubNodes[i] = NULL;
|
aSubNodes[i] = NULL;
|
||||||
|
|
||||||
@@ -1271,7 +1258,7 @@ void SmParser::SubSup(sal_uLong nActiveGroup)
|
|||||||
// set sub-/supscript if not already done
|
// set sub-/supscript if not already done
|
||||||
if (aSubNodes[nIndex] != NULL)
|
if (aSubNodes[nIndex] != NULL)
|
||||||
Error(PE_DOUBLE_SUBSUPSCRIPT);
|
Error(PE_DOUBLE_SUBSUPSCRIPT);
|
||||||
aSubNodes[nIndex] = lcl_popOrZero(m_aNodeStack);
|
aSubNodes[nIndex] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
pNode->SetSubNodes(aSubNodes);
|
pNode->SetSubNodes(aSubNodes);
|
||||||
@@ -1444,7 +1431,7 @@ void SmParser::Term(bool bGroupNumberIdent)
|
|||||||
nodeArray.resize(nTokens);
|
nodeArray.resize(nTokens);
|
||||||
while (nTokens > 0)
|
while (nTokens > 0)
|
||||||
{
|
{
|
||||||
nodeArray[nTokens-1] = lcl_popOrZero(m_aNodeStack);
|
nodeArray[nTokens-1] = popOrZero(m_aNodeStack);
|
||||||
nTokens--;
|
nTokens--;
|
||||||
}
|
}
|
||||||
SmExpressionNode* pNode = new SmExpressionNode(SmToken());
|
SmExpressionNode* pNode = new SmExpressionNode(SmToken());
|
||||||
@@ -1542,7 +1529,7 @@ void SmParser::Term(bool bGroupNumberIdent)
|
|||||||
else
|
else
|
||||||
FontAttribut();
|
FontAttribut();
|
||||||
|
|
||||||
SmNode* pTmp = lcl_popOrZero(m_aNodeStack);
|
SmNode* pTmp = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
// check if casting in following line is ok
|
// check if casting in following line is ok
|
||||||
OSL_ENSURE(pTmp && !pTmp->IsVisible(), "Sm : Ooops...");
|
OSL_ENSURE(pTmp && !pTmp->IsVisible(), "Sm : Ooops...");
|
||||||
@@ -1553,7 +1540,7 @@ void SmParser::Term(bool bGroupNumberIdent)
|
|||||||
|
|
||||||
Power();
|
Power();
|
||||||
|
|
||||||
SmNode *pFirstNode = lcl_popOrZero(m_aNodeStack);
|
SmNode *pFirstNode = popOrZero(m_aNodeStack);
|
||||||
while (n > 0)
|
while (n > 0)
|
||||||
{ aArray[n - 1]->SetSubNodes(0, pFirstNode);
|
{ aArray[n - 1]->SetSubNodes(0, pFirstNode);
|
||||||
pFirstNode = aArray[n - 1];
|
pFirstNode = aArray[n - 1];
|
||||||
@@ -1619,12 +1606,12 @@ void SmParser::Operator()
|
|||||||
|
|
||||||
if (TokenInGroup(TGLIMIT) || TokenInGroup(TGPOWER))
|
if (TokenInGroup(TGLIMIT) || TokenInGroup(TGPOWER))
|
||||||
SubSup(m_aCurToken.nGroup);
|
SubSup(m_aCurToken.nGroup);
|
||||||
SmNode *pOperator = lcl_popOrZero(m_aNodeStack);
|
SmNode *pOperator = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
// get argument
|
// get argument
|
||||||
Power();
|
Power();
|
||||||
|
|
||||||
pSNode->SetSubNodes(pOperator, lcl_popOrZero(m_aNodeStack));
|
pSNode->SetSubNodes(pOperator, popOrZero(m_aNodeStack));
|
||||||
m_aNodeStack.push(pSNode);
|
m_aNodeStack.push(pSNode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1716,7 +1703,7 @@ void SmParser::UnOper()
|
|||||||
case TNROOT :
|
case TNROOT :
|
||||||
NextToken();
|
NextToken();
|
||||||
Power();
|
Power();
|
||||||
pExtra = lcl_popOrZero(m_aNodeStack);
|
pExtra = popOrZero(m_aNodeStack);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TUOPER :
|
case TUOPER :
|
||||||
@@ -1725,7 +1712,7 @@ void SmParser::UnOper()
|
|||||||
m_aCurToken.eType = TUOPER;
|
m_aCurToken.eType = TUOPER;
|
||||||
m_aCurToken.nGroup = TGUNOPER;
|
m_aCurToken.nGroup = TGUNOPER;
|
||||||
GlyphSpecial();
|
GlyphSpecial();
|
||||||
pOper = lcl_popOrZero(m_aNodeStack);
|
pOper = popOrZero(m_aNodeStack);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TPLUS :
|
case TPLUS :
|
||||||
@@ -1735,7 +1722,7 @@ void SmParser::UnOper()
|
|||||||
case TNEG :
|
case TNEG :
|
||||||
case TFACT :
|
case TFACT :
|
||||||
OpSubSup();
|
OpSubSup();
|
||||||
pOper = lcl_popOrZero(m_aNodeStack);
|
pOper = popOrZero(m_aNodeStack);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default :
|
default :
|
||||||
@@ -1744,7 +1731,7 @@ void SmParser::UnOper()
|
|||||||
|
|
||||||
// get argument
|
// get argument
|
||||||
Power();
|
Power();
|
||||||
pArg = lcl_popOrZero(m_aNodeStack);
|
pArg = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
if (eType == TABS)
|
if (eType == TABS)
|
||||||
{ pSNode = new SmBraceNode(aNodeToken);
|
{ pSNode = new SmBraceNode(aNodeToken);
|
||||||
@@ -2013,7 +2000,7 @@ void SmParser::Brace()
|
|||||||
|
|
||||||
NextToken();
|
NextToken();
|
||||||
Bracebody(true);
|
Bracebody(true);
|
||||||
pBody = lcl_popOrZero(m_aNodeStack);
|
pBody = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
if (m_aCurToken.eType == TRIGHT)
|
if (m_aCurToken.eType == TRIGHT)
|
||||||
{ NextToken();
|
{ NextToken();
|
||||||
@@ -2041,7 +2028,7 @@ void SmParser::Brace()
|
|||||||
|
|
||||||
NextToken();
|
NextToken();
|
||||||
Bracebody(false);
|
Bracebody(false);
|
||||||
pBody = lcl_popOrZero(m_aNodeStack);
|
pBody = popOrZero(m_aNodeStack);
|
||||||
|
|
||||||
SmTokenType eExpectedType = TUNKNOWN;
|
SmTokenType eExpectedType = TUNKNOWN;
|
||||||
switch (pLeft->GetToken().eType)
|
switch (pLeft->GetToken().eType)
|
||||||
@@ -2138,7 +2125,7 @@ void SmParser::Bracebody(bool bIsLeftRight)
|
|||||||
aNodes.resize(nNum);
|
aNodes.resize(nNum);
|
||||||
for (sal_uInt16 i = 0; i < nNum; i++)
|
for (sal_uInt16 i = 0; i < nNum; i++)
|
||||||
{
|
{
|
||||||
aNodes[nNum - 1 - i] = lcl_popOrZero(m_aNodeStack);
|
aNodes[nNum - 1 - i] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
pBody->SetSubNodes(aNodes);
|
pBody->SetSubNodes(aNodes);
|
||||||
@@ -2198,7 +2185,7 @@ void SmParser::Binom()
|
|||||||
|
|
||||||
for (int i = 0; i < 2; i++)
|
for (int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
ExpressionArray[2 - (i + 1)] = lcl_popOrZero(m_aNodeStack);
|
ExpressionArray[2 - (i + 1)] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
pSNode->SetSubNodes(ExpressionArray);
|
pSNode->SetSubNodes(ExpressionArray);
|
||||||
@@ -2226,7 +2213,7 @@ void SmParser::Stack()
|
|||||||
|
|
||||||
for (sal_uInt16 i = 0; i < n; i++)
|
for (sal_uInt16 i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
ExpressionArray[n - (i + 1)] = lcl_popOrZero(m_aNodeStack);
|
ExpressionArray[n - (i + 1)] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_aCurToken.eType != TRGROUP)
|
if (m_aCurToken.eType != TRGROUP)
|
||||||
@@ -2292,7 +2279,7 @@ void SmParser::Matrix()
|
|||||||
|
|
||||||
for (size_t i = 0; i < (nRC); ++i)
|
for (size_t i = 0; i < (nRC); ++i)
|
||||||
{
|
{
|
||||||
ExpressionArray[(nRC) - (i + 1)] = lcl_popOrZero(m_aNodeStack);
|
ExpressionArray[(nRC) - (i + 1)] = popOrZero(m_aNodeStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_aCurToken.eType != TRGROUP)
|
if (m_aCurToken.eType != TRGROUP)
|
||||||
@@ -2413,7 +2400,7 @@ SmNode *SmParser::Parse(const OUString &rBuffer)
|
|||||||
NextToken();
|
NextToken();
|
||||||
Table();
|
Table();
|
||||||
|
|
||||||
SmNode* result = lcl_popOrZero(m_aNodeStack);
|
SmNode* result = popOrZero(m_aNodeStack);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2435,7 +2422,7 @@ SmNode *SmParser::ParseExpression(const OUString &rBuffer)
|
|||||||
NextToken();
|
NextToken();
|
||||||
Expression();
|
Expression();
|
||||||
|
|
||||||
SmNode* result = lcl_popOrZero(m_aNodeStack);
|
SmNode* result = popOrZero(m_aNodeStack);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user