sc/inc/token.hxx | 1 + sc/source/core/tool/compiler.cxx | 27 ++++++++++++++++++++++++--- sc/source/core/tool/token.cxx | 5 +++++ 3 files changed, 30 insertions(+), 3 deletions(-)
New commits: commit 1e060e94629aac8b37d59e34159198aa9e8f4b39 Author: Eike Rathke <er...@redhat.com> Date: Fri Mar 13 18:18:57 2015 +0000 add items to ScTableRefToken Change-Id: I23ddec273f7d3df0d5342b73c54ae411b9ef3782 diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index 7188176..ca67769 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -3308,23 +3308,44 @@ bool ScCompiler::IsErrorConstant( const OUString& rName ) const bool ScCompiler::IsTableRefItem( const OUString& rName ) const { + bool bItem = false; OpCodeHashMap::const_iterator iLook( mxSymbols->getHashMap()->find( rName)); if (iLook != mxSymbols->getHashMap()->end()) { + // Only called when there actually is a current TableRef, hence + // accessing maTableRefs.back() is safe. + ScTableRefToken* p = dynamic_cast<ScTableRefToken*>(maTableRefs.back().mxToken.get()); + assert(p); // not a ScTableRefToken can't be + switch ((*iLook).second) { case ocTableRefItemAll: + bItem = true; + p->AddItem( ScTableRefToken::ALL); + break; case ocTableRefItemHeaders: + bItem = true; + p->AddItem( ScTableRefToken::HEADERS); + break; case ocTableRefItemData: + bItem = true; + p->AddItem( ScTableRefToken::DATA); + break; case ocTableRefItemTotals: + bItem = true; + p->AddItem( ScTableRefToken::TOTALS); + break; case ocTableRefItemThisRow: - maRawToken.SetOpCode( (*iLook).second ); - return true; + bItem = true; + p->AddItem( ScTableRefToken::THIS_ROW); + break; default: ; } + if (bItem) + maRawToken.SetOpCode( (*iLook).second ); } - return false; + return bItem; } void ScCompiler::SetAutoCorrection( bool bVal ) commit 7dcaa806b8583224cb24d4a37ddf855b9c02150d Author: Eike Rathke <er...@redhat.com> Date: Fri Mar 13 17:58:59 2015 +0000 add ScTableRefToken::AddItem() Change-Id: Iab74e027d9929bc100ad92c2126c17fca1e2e46a diff --git a/sc/inc/token.hxx b/sc/inc/token.hxx index 6f6cd4b..899d163 100644 --- a/sc/inc/token.hxx +++ b/sc/inc/token.hxx @@ -237,6 +237,7 @@ public: virtual FormulaToken* Clone() const SAL_OVERRIDE { return new ScTableRefToken(*this); } Item GetItem() const; + void AddItem( Item ); private: diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx index eab3f8f..8963159 100644 --- a/sc/source/core/tool/token.cxx +++ b/sc/source/core/tool/token.cxx @@ -861,6 +861,11 @@ ScTableRefToken::Item ScTableRefToken::GetItem() const return meItem; } +void ScTableRefToken::AddItem( ScTableRefToken::Item eItem ) +{ + meItem = static_cast<ScTableRefToken::Item>(meItem | eItem); +} + bool ScTableRefToken::operator==( const FormulaToken& r ) const { if ( !FormulaToken::operator==(r) ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits