summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2008-03-06 14:36:41 +0000
committerKurt Zenker <kz@openoffice.org>2008-03-06 14:36:41 +0000
commitf1d75266fa6b020d171824ef27dff3b571245905 (patch)
tree310bf4dd526bd41836f8bd3e9d814a688ec8025f /sc
parent215809b58f0019fc823474f0cf90559f5177d784 (diff)
INTEGRATION: CWS odff (1.24.158); FILE MERGED
2008/02/27 21:07:17 er 1.24.158.7: IsReference: adapt to changes, ScCompiler SetCompileEnglish() and SetCompileXML() are gone 2008/02/27 18:32:54 er 1.24.158.6: RESYNC: (1.25-1.26); FILE MERGED 2008/01/25 14:19:41 er 1.24.158.5: #i32340# ScFormulaResult, start differentiating between compiler/code token error and interpreter/result error; make iterations work with result errors 2008/01/08 19:45:44 er 1.24.158.4: get rid of distracting binfilter legacy 2008/01/08 19:30:27 er 1.24.158.3: get rid of distracting binfilter legacy 2007/09/06 10:43:08 er 1.24.158.2: #i81063# new ScGrammar; get rid of SetCompileEnglish, SetCompileXML, GetEnglishFormula, ... 2007/08/27 15:24:20 er 1.24.158.1: #i81063# OpCodeMap: update/join/merge relevant parts from cws xmlfilter02
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/rangenam.cxx161
1 files changed, 14 insertions, 147 deletions
diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx
index 97f21d05365b..fc313f51baa7 100644
--- a/sc/source/core/tool/rangenam.cxx
+++ b/sc/source/core/tool/rangenam.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: rangenam.cxx,v $
*
- * $Revision: 1.26 $
+ * $Revision: 1.27 $
*
- * last change: $Author: vg $ $Date: 2008-01-29 08:02:27 $
+ * last change: $Author: kz $ $Date: 2008-03-06 15:36:41 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -72,7 +72,7 @@ ScRangeData::ScRangeData( ScDocument* pDok,
const String& rSymbol,
const ScAddress& rAddress,
RangeType nType,
- BOOL bEnglish ) :
+ const ScGrammar::Grammar eGrammar ) :
aName ( rName ),
aUpperName ( ScGlobal::pCharClass->upper( rName ) ),
pCode ( NULL ),
@@ -84,10 +84,9 @@ ScRangeData::ScRangeData( ScDocument* pDok,
{
if (rSymbol.Len() > 0)
{
- ScCompiler aComp( pDoc, aPos );
- aComp.SetCompileEnglish(bEnglish);
+ ScCompiler aComp( pDoc, aPos, eGrammar );
pCode = aComp.CompileString( rSymbol );
- if( !pCode->GetError() )
+ if( !pCode->GetCodeError() )
{
pCode->Reset();
ScToken* p = pCode->GetNextReference();
@@ -128,7 +127,7 @@ ScRangeData::ScRangeData( ScDocument* pDok,
nIndex ( 0 ),
bModified ( FALSE )
{
- if( !pCode->GetError() )
+ if( !pCode->GetCodeError() )
{
pCode->Reset();
ScToken* p = pCode->GetNextReference();
@@ -169,7 +168,7 @@ ScRangeData::ScRangeData( ScDocument* pDok,
pCode->AddSingleReference( aRefData );
ScCompiler aComp( pDoc, aPos, *pCode );
aComp.CompileTokenArray();
- if ( !pCode->GetError() )
+ if ( !pCode->GetCodeError() )
eType |= RT_ABSPOS;
}
@@ -195,67 +194,6 @@ DataObject* ScRangeData::Clone() const
return new ScRangeData(*this);
}
-ScRangeData::ScRangeData
- ( SvStream& /* rStream */, ScMultipleReadHeader& /* rHdr */, USHORT /* nVer */ )
- : pCode ( new ScTokenArray ),
- bModified (FALSE)
-
-{
-#if SC_ROWLIMIT_STREAM_ACCESS
-#error address types changed!
- rHdr.StartEntry();
-
- if( nVer >= SC_NEW_TOKEN_ARRAYS )
- {
- UINT32 nPos;
- BYTE nData;
- rStream.ReadByteString( aName, rStream.GetStreamCharSet() );
- rStream >> nPos >> eType >> nIndex >> nData;
- if( nData & 0x0F )
- rStream.SeekRel( nData & 0x0F );
-#if SC_ADDRESS_BITS_USED
- aPos = ScAddress( nPos );
-#else
-#error SC_ADDRESS_BITS_USED
-#endif
- pCode->Load( rStream, nVer, aPos );
- }
- else
- {
- UINT16 nTokLen, r, c, t;
- rStream.ReadByteString( aName, rStream.GetStreamCharSet() );
- rStream >> c >> r >> t >> eType >> nIndex >> nTokLen;
- aPos.Set( c, r, t );
- if( nTokLen )
- pCode->Load30( rStream, aPos );
- }
-
- rHdr.EndEntry();
-#endif // SC_ROWLIMIT_STREAM_ACCESS
-}
-
-BOOL ScRangeData::Store
- ( SvStream& /* rStream */, ScMultipleWriteHeader& /* rHdr */ ) const
-{
-#if SC_ROWLIMIT_STREAM_ACCESS
-#error address types changed!
- rHdr.StartEntry();
-
- rStream.WriteByteString( aName, rStream.GetStreamCharSet() );
-#if SC_ADDRESS_BITS_USED
- rStream << (UINT32) aPos << eType << nIndex << (BYTE) 0x00;
-#else
-#error SC_ADDRESS_BITS_USED
-#endif
- pCode->Store( rStream, aPos );
-
- rHdr.EndEntry();
- return TRUE;
-#else
- return FALSE;
-#endif // SC_ROWLIMIT_STREAM_ACCESS
-}
-
BOOL ScRangeData::IsBeyond( SCROW nMaxRow ) const
{
if ( aPos.Row() > nMaxRow )
@@ -314,39 +252,27 @@ void ScRangeData::GuessPosition()
// String((SCROW)(-nMinRow))+String("/")+String((SCTAB)(-nMinTab)));
}
-void ScRangeData::GetSymbol (String& rSymbol) const
+void ScRangeData::GetSymbol( String& rSymbol, const ScGrammar::Grammar eGrammar ) const
{
- ScCompiler aScComp(pDoc, aPos, *pCode);
- aScComp.CreateStringFromTokenArray( rSymbol );
-}
-
-void ScRangeData::GetEnglishSymbol (String& rSymbol, BOOL bCompileXML) const
-{
- ScCompiler aScComp(pDoc, aPos, *pCode);
- aScComp.SetCompileEnglish( TRUE );
- aScComp.SetCompileXML( bCompileXML );
+ ScCompiler aScComp(pDoc, aPos, *pCode, eGrammar);
aScComp.CreateStringFromTokenArray( rSymbol );
}
void ScRangeData::UpdateSymbol( String& rSymbol, const ScAddress& rPos,
- BOOL bEnglish, BOOL bCompileXML )
+ const ScGrammar::Grammar eGrammar )
{
ScTokenArray* pTemp = pCode->Clone();
- ScCompiler aComp( pDoc, rPos, *pTemp );
- aComp.SetCompileEnglish( bEnglish );
- aComp.SetCompileXML( bCompileXML );
+ ScCompiler aComp( pDoc, rPos, *pTemp, eGrammar );
aComp.MoveRelWrap();
aComp.CreateStringFromTokenArray( rSymbol );
delete pTemp;
}
void ScRangeData::UpdateSymbol( rtl::OUStringBuffer& rBuffer, const ScAddress& rPos,
- BOOL bEnglish, BOOL bCompileXML )
+ const ScGrammar::Grammar eGrammar )
{
ScTokenArray* pTemp = pCode->Clone();
- ScCompiler aComp( pDoc, rPos, *pTemp );
- aComp.SetCompileEnglish( bEnglish );
- aComp.SetCompileXML( bCompileXML );
+ ScCompiler aComp( pDoc, rPos, *pTemp, eGrammar );
aComp.MoveRelWrap();
aComp.CreateStringFromTokenArray( rBuffer );
delete pTemp;
@@ -494,8 +420,6 @@ BOOL ScRangeData::IsReference( ScRange& rRange, const ScAddress& rPos ) const
{
::std::auto_ptr<ScTokenArray> pTemp( pCode->Clone() );
ScCompiler aComp( pDoc, rPos, *pTemp );
- aComp.SetCompileEnglish( false );
- aComp.SetCompileXML( false );
aComp.MoveRelWrap();
return pTemp->IsReference( rRange );
}
@@ -626,7 +550,7 @@ BOOL ScRangeData::IsNameValid( const String& rName, ScDocument* pDoc )
USHORT ScRangeData::GetErrCode()
{
- return pCode ? pCode->GetError() : 0;
+ return pCode ? pCode->GetCodeError() : 0;
}
BOOL ScRangeData::HasReferences() const
@@ -811,63 +735,6 @@ BOOL ScRangeName::SearchName( const String& rName, USHORT& rIndex ) const
return FALSE;
}
-BOOL ScRangeName::Load( SvStream& rStream, USHORT nVer )
-{
- BOOL bSuccess = TRUE;
- USHORT nNewCount;
-
- while( nCount > 0 )
- AtFree(0); // alles loeschen
-
- ScMultipleReadHeader aHdr( rStream );
-
- USHORT nDummy;
- if( nVer >= SC_NEW_TOKEN_ARRAYS )
- rStream >> nSharedMaxIndex >> nNewCount;
- else
- rStream >> nSharedMaxIndex >> nDummy >> nNewCount;
- for (USHORT i=0; i<nNewCount && bSuccess; i++)
- {
- ScRangeData* pData = new ScRangeData( rStream, aHdr, nVer );
- pData->SetDocument(pDoc);
- Insert( pData );
- if( rStream.GetError() != SVSTREAM_OK )
- bSuccess = FALSE;
- }
- return bSuccess;
-}
-
-BOOL ScRangeName::Store( SvStream& rStream ) const
-{
- ScMultipleWriteHeader aHdr( rStream );
-
- USHORT i;
- USHORT nSaveCount = nCount;
- SCROW nSaveMaxRow = pDoc->GetSrcMaxRow();
- if ( nSaveMaxRow < MAXROW )
- {
- nSaveCount = 0;
- for (i=0; i<nCount; i++)
- if ( !((const ScRangeData*)At(i))->IsBeyond(nSaveMaxRow) )
- ++nSaveCount;
-
- if ( nSaveCount < nCount )
- pDoc->SetLostData(); // Warnung ausgeben
- }
-
- rStream << nSharedMaxIndex << nSaveCount;
- BOOL bSuccess = TRUE;
-
- for (i=0; i<nCount && bSuccess; i++)
- {
- const ScRangeData* pRangeData = (const ScRangeData*)At(i);
- if ( nSaveMaxRow == MAXROW || !pRangeData->IsBeyond(nSaveMaxRow) )
- bSuccess = pRangeData->Store( rStream, aHdr );
- }
-
- return bSuccess;
-}
-
void ScRangeName::UpdateReference( UpdateRefMode eUpdateRefMode,
const ScRange& rRange,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz )