20#ifndef INCLUDED_FORMULA_TOKENARRAY_HXX
21#define INCLUDED_FORMULA_TOKENARRAY_HXX
27#include <unordered_set>
28#include <unordered_map>
36#include <rtl/ustring.hxx>
40 namespace sheet {
struct FormulaToken; }
44namespace formula {
class FormulaTokenArray; }
49class SharedStringPool;
85 FORMULA_MISSING_CONVENTION_OOXML
88 bool isPODF()
const {
return meConvention == FORMULA_MISSING_CONVENTION_PODF; }
89 bool isODFF()
const {
return meConvention == FORMULA_MISSING_CONVENTION_ODFF; }
90 bool isOOXML()
const {
return meConvention == FORMULA_MISSING_CONVENTION_OOXML; }
106 inline bool isRewriteNeeded(
OpCode eOp )
const;
114 static inline bool isRewriteNeeded(
OpCode eOp );
128 mpEnd(pBegin + nSize)
153 switch ((*maIter)->GetType())
237 std::unique_ptr<FormulaToken*[]>
pCode;
250 void Assign( sal_uInt16 nCode,
FormulaToken **pTokens );
287 sal_uInt16 RemoveToken( sal_uInt16 nOffset, sal_uInt16 nCount );
296 virtual void Clear();
333 if (nIdx == 0 || nIdx > nLen)
336 return pCode[nIdx-1]->GetOpCode();
342 bool HasReferences()
const;
344 bool HasExternalRef()
const;
345 bool HasOpCode(
OpCode )
const;
346 bool HasOpCodeRPN(
OpCode )
const;
348 bool HasNameOrColRowName()
const;
387 sal_uInt16
GetLen()
const {
return nLen; }
405 { nMode = GetCombinedBitsRecalcMode() | nBits; }
435 if (IsRecalcModeMustAfterImport() && !IsRecalcModeAlways())
436 SetExclusiveRecalcModeNormal();
440 inline OpCode GetOuterFuncOpCode()
const;
444 bool HasMatrixDoubleRefOps()
const;
452 virtual bool AddFormulaToken(
462 const css::uno::Sequence<css::sheet::FormulaToken>& rSequence,
474 void CheckAllRPNTokens();
504 bool NeedsOoxmlRewrite();
511 bool MayReferenceFollow();
554 bool IsEndOfPath()
const;
556 short GetPC()
const {
return maStack.back().nPC; }
571 void Jump(
short nStart,
short nNext,
short nStop = SHRT_MAX );
580 const FormulaToken* GetNonEndOfPathToken(
short nIdx )
const;
585template<
typename charT,
typename traits>
586inline std::basic_ostream<charT, traits> &
operator <<(std::basic_ostream<charT, traits> & stream,
const FormulaTokenArray& point)
589 static_cast<const void*
>(&
point) <<
590 ":{nLen=" <<
point.GetLen() <<
591 ",nRPN=" <<
point.GetCodeLen() <<
592 ",pCode=" <<
static_cast<void*
>(
point.GetArray()) <<
593 ",pRPN=" <<
static_cast<void*
>(
point.GetCode()) <<
666 void AfterRemoveToken( sal_uInt16 nOffset, sal_uInt16 nCount );
std::vector< Reference< XAnimationNode > >::iterator maIter
Reference< XOutputStream > stream
std::unique_ptr< sal_Int32[]> pData
void Clear(EHistoryType eHistory)
enumrange< T >::Iterator begin(enumrange< T >)
bool operator==(const XclFontData &rLeft, const XclFontData &rRight)