LCOV - code coverage report
Current view: top level - libreoffice/sc/source/filter/lotus - lotform.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 76 387 19.6 %
Date: 2012-12-27 Functions: 6 15 40.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include "decl.h"
      21             : #include "lotform.hxx"
      22             : #include "compiler.hxx"
      23             : #include "lotrange.hxx"
      24             : #include "namebuff.hxx"
      25             : #include "root.hxx"
      26             : #include "ftools.hxx"
      27             : #include "tool.h"
      28             : 
      29             : #include <math.h>
      30             : #include <comphelper/string.hxx>
      31             : 
      32             : extern WKTYP                eTyp;
      33             : 
      34             : static const sal_Char*      GetAddInName( const sal_uInt8 nIndex );
      35             : 
      36             : static DefTokenId           lcl_KnownAddIn(const rtl::OString& rTest);
      37             : 
      38             : //extern double decipher_Number123( sal_uInt32 nValue );
      39             : 
      40             : 
      41           0 : void LotusToSc::DoFunc( DefTokenId eOc, sal_uInt8 nAnz, const sal_Char* pExtString )
      42             : {
      43           0 :     TokenId                     eParam[ 256 ];
      44             :     sal_Int32                       nLauf;
      45           0 :     TokenId                     nMerk0, nMerk1;
      46             : 
      47           0 :     sal_Bool                        bAddIn = false;
      48           0 :     sal_Bool                        bNeg = false;
      49             : 
      50             :     OSL_ENSURE( nAnz < 128, "-LotusToSc::DoFunc(): Neee! -so viel kann ich nicht!" );
      51             : 
      52           0 :     if( eOc == ocNoName )
      53             :     {
      54           0 :         rtl::OString t;
      55           0 :         if( pExtString )
      56             :         {
      57           0 :             const rtl::OString s(RTL_CONSTASCII_STRINGPARAM("@<<@123>>"));
      58             : 
      59           0 :             t = pExtString;
      60             : 
      61           0 :             sal_Int32 n = t.indexOf(s);
      62           0 :             if( n != -1 )
      63           0 :                 t = t.copy(n + s.getLength());
      64             : 
      65           0 :             t = comphelper::string::stripEnd(t, '(');
      66             : 
      67           0 :             eOc = lcl_KnownAddIn( t );
      68             : 
      69           0 :             if( eOc == ocNoName )
      70           0 :                 t = rtl::OString(RTL_CONSTASCII_STRINGPARAM("L123_")) + t;
      71             :         }
      72             :         else
      73           0 :             t = "#UNKNOWN FUNC NAME#";
      74             : 
      75           0 :         if( eOc == ocNoName )
      76             :         {
      77           0 :             bAddIn = sal_True;
      78           0 :             nMerk0 = aPool.Store(eOc, rtl::OStringToOUString(t, eSrcChar));
      79             : 
      80           0 :             aPool << nMerk0;
      81           0 :         }
      82             :     }
      83             : 
      84           0 :     for( nLauf = 0 ; nLauf < nAnz ; nLauf++ )
      85           0 :         aStack >> eParam[ nLauf ];
      86             : 
      87             :     // Spezialfaelle...
      88           0 :     switch( eOc )
      89             :     {
      90             :         case ocIndex:
      91             :             OSL_ENSURE( nAnz > 2, "+LotusToSc::DoFunc(): ocIndex braucht mind. 2 Parameter!" );
      92           0 :             nMerk0 = eParam[ 0 ];
      93           0 :             eParam[ 0 ] = eParam[ 1 ];
      94           0 :             eParam[ 1 ] = nMerk0;
      95           0 :             IncToken( eParam[ 0 ] );
      96           0 :             IncToken( eParam[ 1 ] );
      97           0 :             break;
      98             :         case ocIRR:
      99             :         {
     100             :             OSL_ENSURE( nAnz == 2, "+LotusToSc::DoFunc(): ocIRR hat nur 2 Parameter!" );
     101           0 :             nMerk0 = eParam[ 0 ];
     102           0 :             eParam[ 0 ] = eParam[ 1 ];
     103           0 :             eParam[ 1 ] = nMerk0;
     104             :         }
     105           0 :             break;
     106             :         case ocGetYear:
     107             :         {
     108           0 :             nMerk0 = aPool.Store( 1900.0 );
     109           0 :             aPool << ocOpen;
     110             :         }
     111           0 :             break;
     112             :         case ocChose:
     113             :         {// 1. Parameter ++
     114           0 :             if (nAnz >= 1)
     115           0 :                 IncToken( eParam[ nAnz - 1 ] );
     116             :         }
     117           0 :             break;
     118             :         case ocFind:
     119             :         case ocHLookup:
     120             :         case ocVLookup:
     121             :         {// letzten Parameter ++
     122           0 :             IncToken( eParam[ 0 ] );
     123             :         }
     124           0 :             break;
     125             :         case ocMid:
     126             :         case ocReplace:
     127             :         {// 2. Parameter ++
     128           0 :             if (nAnz >= 2)
     129           0 :                 IncToken( eParam[ nAnz - 2 ] );
     130             :         }
     131           0 :             break;
     132             :         case ocZins:
     133             :         {
     134             :             // neue Anzahl = 4!
     135             :             OSL_ENSURE( nAnz == 3,
     136             :                 "*LotusToSc::DoFunc(): ZINS() hat 3 Parameter!" );
     137           0 :             nAnz = 4;
     138           0 :             eParam[ 3 ] = eParam[ 0 ];  // 3. -> 1.
     139           0 :             eParam[ 0 ] = eParam[ 2 ];  // 1. -> 4.
     140           0 :             NegToken( eParam[ 1 ] );    // 2. -> -2. (+ 2. -> 3.)
     141           0 :             eParam[ 2 ] = n0Token;      //    -> 2. als Default
     142             :         }
     143           0 :             break;
     144             :         default:;
     145             :     }
     146             :     // ................
     147             : 
     148             : 
     149           0 :     if( !bAddIn )
     150           0 :         aPool << eOc;
     151             : 
     152           0 :     aPool << ocOpen;
     153             : 
     154           0 :     if( nAnz > 0 )
     155             :     {
     156             :             // ACHTUNG: 0 ist der letzte Parameter, nAnz-1 der erste
     157             : 
     158           0 :         sal_Int16 nLast = nAnz - 1;
     159             : 
     160           0 :         if( eOc == ocRMZ )
     161             :         {   // Extrawurst ocRMZ letzter Parameter negiert!
     162             :             // zusaetzlich: 1. -> 3., 3. -> 2., 2. -> 1.
     163             :             OSL_ENSURE( nAnz == 3,
     164             :                 "+LotusToSc::DoFunc(): ocRMZ hat genau 3 Parameter!" );
     165           0 :             aPool << eParam[ 1 ] << ocSep << eParam[ 0 ] << ocSep
     166           0 :                 << ocNegSub << eParam[ 2 ];
     167             :         }
     168             :         else
     169             :         {   // Normalfall
     170             :             // [Parameter{;Parameter}]
     171           0 :             aPool << eParam[ nLast ];
     172             : 
     173           0 :             sal_Int16 nNull = -1;   // gibt einen auszulassenden Parameter an
     174           0 :             for( nLauf = nLast - 1 ; nLauf >= 0 ; nLauf-- )
     175             :             {
     176           0 :                 if( nLauf != nNull )
     177           0 :                     aPool << ocSep << eParam[ nLauf ];
     178             :             }
     179             :         }
     180             :     }
     181             : 
     182             : 
     183             :     // Spezialfaelle...
     184           0 :     if( eOc == ocGetYear )
     185             :     {
     186           0 :         aPool << ocClose << ocSub << nMerk0;
     187             :     }
     188           0 :     else if( eOc == ocFixed )
     189             :     {
     190           0 :         aPool << ocSep << ocTrue << ocOpen << ocClose;
     191             :     }
     192           0 :     else if( eOc == ocFind )
     193             :     {
     194           0 :         nMerk1 = aPool.Store();
     195           0 :         DecToken( nMerk1 );
     196           0 :         aPool << nMerk1;
     197             :     }
     198             : 
     199           0 :     aPool << ocClose;
     200             : 
     201             :     // ................
     202             : 
     203           0 :     aPool >> aStack;
     204             : 
     205           0 :     if( bNeg )
     206             :     {
     207           0 :         aPool << ocOpen << ocSub << aStack << ocClose;
     208           0 :         aPool >> aStack;
     209             :     }
     210           0 : }
     211             : 
     212             : 
     213           0 : void LotusToSc::LotusRelToScRel( sal_uInt16 nCol, sal_uInt16 nRow, ScSingleRefData& rSRD )
     214             : {
     215             :     // Col-Bemachung
     216           0 :     if( nCol & 0x8000 )
     217             :     {
     218           0 :         rSRD.SetColRel( sal_True );
     219           0 :         if( nCol & 0x0080 )
     220           0 :             nCol |= 0xFF00;
     221             :         else
     222           0 :             nCol &= 0x00FF;
     223             :         // #i36252# first cast unsigned 16-bit to signed 16-bit, and then to SCsCOL
     224           0 :         rSRD.nRelCol = static_cast< SCsCOL >( static_cast< sal_Int16 >( nCol ) );
     225             :     }
     226             :     else
     227             :     {
     228           0 :         rSRD.SetColRel( false );
     229           0 :         rSRD.nCol = static_cast< SCsCOL >( nCol & 0x00FF );
     230             :     }
     231             : 
     232             :     // Row-Bemachung
     233           0 :     if( nRow & 0x8000 )
     234             :     {
     235           0 :         rSRD.SetRowRel( sal_True );
     236             :         // vorzeichenrichtige Erweiterung
     237           0 :         switch( eTyp )
     238             :         {
     239             :             // 5432 1098 7654 3210
     240             :             // 8421 8421 8421 8421
     241             :             //       xxx xxxx xxxx
     242             :             case eWK_1:
     243           0 :                 if( nRow & 0x0400 )
     244           0 :                     nRow |= 0xF800;
     245             :                 else
     246           0 :                     nRow &= 0x07FF;
     247           0 :                 break;
     248             :             // 8421 8421 8421 8421
     249             :             //    x xxxx xxxx xxxx
     250             :             case eWK_2:
     251           0 :                 if( nRow & 0x1000 )
     252           0 :                     nRow |= 0xE000;
     253             :                 else
     254           0 :                     nRow &= 0x1FFF;
     255           0 :                 break;
     256             :             default:
     257             :                 OSL_FAIL( "*LotusToSc::LotusRelToScRel(): etwas vergessen...?" );
     258             :         }
     259             :     }
     260             :     else
     261             :     {
     262           0 :         rSRD.SetRowRel( false );
     263           0 :         switch( eTyp )
     264             :         {
     265             :             // 5432 1098 7654 3210
     266             :             // 8421 8421 8421 8421
     267             :             //       xxx xxxx xxxx
     268             :             case eWK_1:
     269           0 :                 nRow &= 0x07FF;
     270           0 :                 break;
     271             :             // 8421 8421 8421 8421
     272             :             //   xx xxxx xxxx xxxx
     273             :             case eWK_2:
     274           0 :                 nRow &= 0x3FFF;
     275           0 :                 break;
     276             :             default:
     277             :                 OSL_FAIL( "*LotusToSc::LotusRelToScRel(): etwas vergessen...?" );
     278             :         }
     279             :     }
     280             : 
     281           0 :     if( rSRD.IsRowRel() )
     282             :         // #i36252# first cast unsigned 16-bit to signed 16-bit, and then to SCsROW
     283           0 :         rSRD.nRelRow = static_cast< SCsROW >( static_cast< sal_Int16 >( nRow ) );
     284             :     else
     285           0 :         rSRD.nRow = static_cast< SCsROW >( nRow );
     286             : 
     287           0 :     if( rSRD.IsRowRel() || rSRD.IsColRel() )
     288           0 :         rSRD.CalcAbsIfRel( aEingPos );
     289           0 : }
     290             : 
     291             : 
     292           2 : void LotusToSc::ReadSRD( ScSingleRefData& rSRD, sal_uInt8 nRelBit )
     293             : {
     294             :     sal_uInt8           nTab, nCol;
     295             :     sal_uInt16          nRow;
     296             : 
     297           2 :     Read( nRow );
     298           2 :     Read( nTab );
     299           2 :     Read( nCol );
     300             : 
     301           2 :     sal_Bool b3D = ( static_cast< SCTAB >( nTab ) != aEingPos.Tab() );
     302             : 
     303           2 :     rSRD.SetColRel( ( nRelBit & 0x01 ) != 0 );
     304           2 :     rSRD.nCol = static_cast< SCsCOL >( nCol );
     305             : 
     306           2 :     rSRD.SetRowRel( ( nRelBit & 0x02 ) != 0 );
     307           2 :     rSRD.nRow = static_cast< SCsROW >( nRow );
     308             : 
     309           2 :     rSRD.SetTabRel( ( ( nRelBit & 0x04) != 0 ) || !b3D );
     310           2 :     rSRD.nTab = static_cast< SCsTAB >( nTab );
     311             : 
     312           2 :     rSRD.SetFlag3D( b3D );
     313             : 
     314           2 :     rSRD.CalcRelFromAbs( aEingPos );
     315           2 : }
     316             : 
     317             : 
     318           0 : void LotusToSc::IncToken( TokenId &rParam )
     319             : {
     320           0 :     aPool << ocOpen << rParam << nAddToken;
     321           0 :     rParam = aPool.Store();
     322           0 : }
     323             : 
     324             : 
     325           0 : void LotusToSc::DecToken( TokenId &rParam )
     326             : {
     327           0 :     aPool << ocOpen << rParam << nSubToken;
     328           0 :     rParam = aPool.Store();
     329           0 : }
     330             : 
     331             : 
     332           0 : void LotusToSc::NegToken( TokenId &rParam )
     333             : {
     334           0 :     aPool << ocNegSub << ocOpen << rParam << ocClose;
     335           0 :     rParam = aPool.Store();
     336           0 : }
     337             : 
     338             : 
     339           4 : void LotusToSc::Reset( const ScAddress& rEingPos )
     340             : {
     341           4 :     LotusConverterBase::Reset( rEingPos );
     342             : 
     343           4 :     TokenId nEins = aPool.Store( 1.0 );
     344             : 
     345           4 :     aPool << ocClose << ocAdd << nEins;
     346           4 :     nAddToken = aPool.Store();
     347             : 
     348           4 :     aPool << ocClose << ocSub << nEins;
     349           4 :     nSubToken = aPool.Store();
     350             : 
     351           4 :     n0Token = aPool.Store( 0.0 );
     352           4 : }
     353             : 
     354             : 
     355           5 : LotusToSc::LotusToSc( SvStream &rStream, CharSet e, sal_Bool b ) :
     356           5 :     LotusConverterBase( rStream, 128 )
     357             : {
     358           5 :     eSrcChar = e;
     359           5 :     bWK3 = false;
     360           5 :     bWK123 = b;
     361           5 : }
     362             : 
     363             : 
     364             : typedef FUNC_TYPE ( FuncType1 ) ( sal_uInt8 );
     365             : typedef DefTokenId ( FuncType2 ) ( sal_uInt8 );
     366             : 
     367             : 
     368           4 : ConvErr LotusToSc::Convert( const ScTokenArray*& rpErg, sal_Int32& rRest,
     369             :     const FORMULA_TYPE /*eFT*/ )
     370             : {
     371             :     sal_uInt8               nOc;
     372             :     sal_uInt8               nAnz;
     373             :     sal_uInt8               nRelBits;
     374             :     sal_uInt16              nStrLen;
     375             :     sal_uInt16              nRngIndex;
     376           4 :     FUNC_TYPE           eType = FT_NOP;
     377           4 :     TokenId             nMerk0;
     378             :     DefTokenId          eOc;
     379           4 :     const sal_Char*     pExtName = 0;
     380           4 :     RangeNameBufferWK3& rRangeNameBufferWK3 = *pLotusRoot->pRngNmBffWK3;
     381             : 
     382             :     ScComplexRefData        aCRD;
     383           4 :     aCRD.InitFlags();
     384           4 :     ScSingleRefData&        rR = aCRD.Ref1;
     385             : 
     386             :     LR_ID               nId;
     387           4 :     TokenId             nNewId;
     388             : 
     389           4 :     LotusRangeList&     rRangeList = *pLotusRoot->pRangeNames;
     390             : 
     391             :     FuncType1*          pIndexToType;
     392             :     FuncType2*          pIndexToToken;
     393             : 
     394           4 :     if( bWK3 )
     395             :     {   // for > WK3
     396           0 :         pIndexToType = IndexToTypeWK123;
     397           0 :         pIndexToToken = IndexToTokenWK123;
     398             :     }
     399           4 :     else if( bWK123 )
     400             :     {
     401           4 :         pIndexToType = IndexToTypeWK123;
     402           4 :         pIndexToToken = IndexToTokenWK123;
     403             :     }
     404             :     else
     405             :     {
     406           0 :         pIndexToType = IndexToType;
     407           0 :         pIndexToToken = IndexToToken;
     408             : 
     409           0 :         rR.SetTabRel( sal_True );
     410           0 :         rR.nTab = aEingPos.Tab();
     411           0 :         rR.nRelTab = 0;
     412           0 :         rR.SetFlag3D( false );
     413             :     }
     414             : 
     415           4 :     aCRD.Ref2 = rR;
     416             : 
     417           4 :     nBytesLeft = rRest;
     418             : 
     419          24 :     while( eType )      // != FT_Return (==0)
     420             :     {
     421          16 :         Read( nOc );
     422             : 
     423          16 :         if( nBytesLeft < 0 )
     424             :         {
     425           0 :             rpErg = aPool[ aStack.Get() ];
     426           0 :             return ConvErrCount;
     427             :         }
     428             : 
     429          16 :         eType = ( pIndexToType )( nOc );
     430          16 :         eOc = ( pIndexToToken)( nOc );
     431          16 :         if( eOc == ocNoName )
     432           0 :             pExtName = GetAddInName( nOc );
     433             : 
     434          16 :         switch( eType )
     435             :         {
     436             :             case FT_Return:
     437           4 :                 if( bWK3 || bWK123 )
     438           4 :                     nBytesLeft = 0; // wird ab WK3 nicht benutzt
     439             : 
     440           4 :                 rRest = nBytesLeft;
     441           4 :                 break;
     442             :             case FT_NotImpl:
     443           0 :             case FT_FuncFix0:   DoFunc( eOc, 0, pExtName ); break;
     444           0 :             case FT_FuncFix1:   DoFunc( eOc, 1, pExtName ); break;
     445           0 :             case FT_FuncFix2:   DoFunc( eOc, 2, pExtName ); break;
     446           0 :             case FT_FuncFix3:   DoFunc( eOc, 3, pExtName ); break;
     447           0 :             case FT_FuncFix4:   DoFunc( eOc, 4, pExtName ); break;
     448             :                 case FT_FuncVar:
     449           0 :                 Read( nAnz );
     450           0 :                 DoFunc( eOc, nAnz, pExtName );
     451           0 :                 break;
     452             :             case FT_Neg:
     453           0 :                 aPool << ocOpen << ocNegSub << aStack << ocClose;
     454           0 :                 aPool >> aStack;
     455           0 :                 break;
     456             :             case FT_Op:
     457           4 :                 aStack >> nMerk0;
     458           4 :                 aPool << aStack << eOc << nMerk0;
     459           4 :                 aPool >> aStack;
     460           4 :                 break;
     461             :             case FT_ConstFloat:
     462             :             {
     463             :                 double  fDouble;
     464           0 :                 Read( fDouble );
     465           0 :                 aStack << aPool.Store( fDouble );
     466             :             }
     467           0 :                 break;
     468             :             case FT_Variable:
     469             :             {
     470             :                 sal_uInt16  nCol, nRow;
     471           0 :                 Read( nCol );
     472           0 :                 Read( nRow );
     473             : 
     474           0 :                 LotusRelToScRel( nCol, nRow, rR );
     475             : 
     476           0 :                 if( bWK3 )
     477           0 :                     nNewId = aPool.Store( rR );
     478             :                 else
     479             :                 {
     480           0 :                     nId = rRangeList.GetIndex( rR.nCol, rR.nRow );
     481             : 
     482           0 :                     if( nId == ID_FAIL )
     483             :                         // kein Range dazu
     484           0 :                         nNewId = aPool.Store( rR );
     485             :                     else
     486           0 :                         nNewId = aPool.Store( ( sal_uInt16 ) nId );
     487             :                 }
     488             : 
     489           0 :                 aStack << nNewId;
     490             :             }
     491           0 :                 break;
     492             :             case FT_Range:
     493             :             {
     494             :                 sal_uInt16  nColS, nRowS, nColE, nRowE;
     495           0 :                 Read( nColS );
     496           0 :                 Read( nRowS );
     497           0 :                 Read( nColE );
     498           0 :                 Read( nRowE );
     499             : 
     500           0 :                 LotusRelToScRel( nColS, nRowS, rR );
     501           0 :                 LotusRelToScRel( nColE, nRowE, aCRD.Ref2 );
     502             : 
     503           0 :                 if( bWK3 )
     504           0 :                     nNewId = aPool.Store( aCRD );
     505             :                 else
     506             :                 {
     507             :                     nId = rRangeList.GetIndex(
     508           0 :                         rR.nCol, rR.nRow, aCRD.Ref2.nCol, aCRD.Ref2.nRow );
     509             : 
     510           0 :                     if( nId == ID_FAIL )
     511             :                         // kein Range dazu
     512           0 :                         nNewId = aPool.Store( aCRD );
     513             :                     else
     514           0 :                         nNewId = aPool.Store( ( sal_uInt16 ) nId );
     515             :                 }
     516             : 
     517           0 :                 aStack << nNewId;
     518             :             }
     519           0 :                 break;
     520             :             case FT_Braces:
     521           0 :                 aPool << ocOpen << aStack << ocClose;
     522           0 :                 aPool >> aStack;
     523           0 :                 break;
     524             :             case FT_ConstInt:
     525             :             {
     526             :                 sal_Int16   nVal;
     527           0 :                 Read( nVal );
     528           0 :                 aStack << aPool.Store( ( double ) nVal );
     529             :             }
     530           0 :                 break;
     531             :             case FT_ConstString:
     532             :             {
     533           0 :                 String  aTmp(ScfTools::read_zeroTerminated_uInt8s_ToOUString(aIn, nBytesLeft, eSrcChar));
     534           0 :                 aStack << aPool.Store( aTmp );
     535             :             }
     536           0 :                 break;
     537             :             case FT_NOP:
     538           0 :                 break;
     539             :             // ------------------------------------------ fuer > WK3 -
     540             :             case FT_Cref:
     541           2 :                 Read( nRelBits );
     542           2 :                 ReadSRD( rR, nRelBits );
     543           2 :                 aStack << aPool.Store( rR );
     544           2 :                 break;
     545             :             case FT_Rref:
     546           0 :                 Read( nRelBits );
     547           0 :                 ReadCRD( aCRD, nRelBits );
     548           0 :                 aStack << aPool.Store( aCRD );
     549           0 :                 break;
     550             :             case FT_Nrref:
     551             :             {
     552           0 :                 String  aTmp(ScfTools::read_zeroTerminated_uInt8s_ToOUString(aIn, nBytesLeft, eSrcChar));
     553           0 :                 if( rRangeNameBufferWK3.FindRel( aTmp, nRngIndex ) )
     554           0 :                     aStack << aPool.Store( nRngIndex );
     555             :                 else
     556             :             {
     557           0 :                     String  aText( RTL_CONSTASCII_USTRINGPARAM( "NRREF " ) );
     558           0 :                     aText += aTmp;
     559           0 :                     aStack << aPool.Store( aText );
     560           0 :             }
     561             :             }
     562           0 :                 break;
     563             :             case FT_Absnref:
     564             :             {
     565           0 :                 String aTmp(ScfTools::read_zeroTerminated_uInt8s_ToOUString(aIn, nBytesLeft, eSrcChar));
     566           0 :                 if( rRangeNameBufferWK3.FindAbs( aTmp, nRngIndex ) )
     567           0 :                     aStack << aPool.Store( nRngIndex );
     568             :                 else
     569             :                 {
     570           0 :                     String  aText( RTL_CONSTASCII_USTRINGPARAM( "ABSNREF " ) );
     571           0 :                     aText += aTmp;
     572           0 :                     aStack << aPool.Store( aText );
     573           0 :                 }
     574             :             }
     575           0 :                 break;
     576             :             case FT_Erref:
     577           0 :                 Ignore( 4 );
     578           0 :                 aPool << ocBad;
     579           0 :                 aPool >> aStack;
     580           0 :                 break;
     581             :             case FT_Ecref:
     582           0 :                 Ignore( 5 );
     583           0 :                 aPool << ocBad;
     584           0 :                 aPool >> aStack;
     585           0 :                 break;
     586             :             case FT_Econstant:
     587           0 :                 Ignore( 10 );
     588           0 :                 aPool << ocBad;
     589           0 :                 aPool >> aStack;
     590           0 :                 break;
     591             :             case FT_Splfunc:
     592             :             {
     593           0 :                 Read( nAnz );
     594           0 :                 Read( nStrLen );
     595             : 
     596           0 :                 if( nStrLen )
     597             :                 {
     598           0 :                                         sal_Char*       p = new (::std::nothrow) sal_Char[ nStrLen + 1 ];
     599           0 :                     if (p)
     600             :                     {
     601           0 :                         aIn.Read( p, nStrLen );
     602           0 :                         p[ nStrLen ] = 0x00;
     603             : 
     604           0 :                         DoFunc( ocNoName, nAnz, p );
     605             : 
     606           0 :                         delete[] p;
     607             :                     }
     608             :                     else
     609           0 :                         DoFunc( ocNoName, nAnz, NULL );
     610             :                 }
     611             :                 else
     612           0 :                     DoFunc( ocNoName, nAnz, NULL );
     613             :             }
     614           0 :                 break;
     615             :             case FT_Const10Float:
     616           0 :                     if ( bWK123 )
     617             :                     {
     618             :                             double fValue;
     619           0 :                             Read( fValue );
     620           0 :                             aStack << aPool.Store( fValue );
     621             :                     }
     622           0 :                     else aStack << aPool.Store( ScfTools::ReadLongDouble( aIn ) );
     623           0 :                     break;
     624             :             case FT_Snum:
     625           6 :                     if ( bWK123 )
     626             :                 {
     627             :                          sal_uInt32   nValue;
     628             : 
     629           6 :                          Read( nValue );
     630           6 :                      double  fValue = Snum32ToDouble( nValue );
     631           6 :                      aStack << aPool.Store( fValue );
     632             :                 }
     633             :                 else
     634             :                 {
     635             :                         sal_Int16 nVal;
     636           0 :                         Read( nVal );
     637           0 :                         aStack << aPool.Store( SnumToDouble( nVal ) );
     638             :                 }
     639           6 :                 break;
     640             :                 default:
     641             :                 OSL_FAIL( "*LotusToSc::Convert(): unbekannter enum!" );
     642             :         }
     643             :     }
     644             : 
     645           4 :     rpErg = aPool[ aStack.Get() ];
     646             : 
     647             :     OSL_ENSURE( nBytesLeft >= 0, "*LotusToSc::Convert(): zuviel verarbeitet!");
     648             :     OSL_ENSURE( nBytesLeft <= 0, "*LotusToSc::Convert(): wat is mit'm Rest?" );
     649             : 
     650           4 :     if( rRest )
     651           0 :         aIn.SeekRel( nBytesLeft );  // eventuellen Rest/Ueberlauf korrigieren
     652             : 
     653           4 :     rRest = 0;
     654             : 
     655           4 :     return ConvOK;
     656             : }
     657             : 
     658             : 
     659           0 : FUNC_TYPE LotusToSc::IndexToType( sal_uInt8 nIndex )
     660             : {
     661             :     static const FUNC_TYPE pType[ 256 ] =
     662             :     {                       // Code Bezeichnung
     663             :         FT_ConstFloat,      //    0 8-Byte-IEEE-Float
     664             :         FT_Variable,        //    1 Variable
     665             :         FT_Range,           //    2 Bereich
     666             :         FT_Return,          //    3 return
     667             :         FT_Braces,          //    4 Klammer
     668             :         FT_ConstInt,        //    5 2-Byte-Integer
     669             :         FT_ConstString,     //    6 ASCII-String
     670             :         FT_NOP,             //    7 NOP
     671             :         FT_Neg,             //    8 Negation
     672             :         FT_Op,              //    9 Addition
     673             :         FT_Op,              //   10 Subtraktion
     674             :         FT_Op,              //   11 Multiplikation
     675             :         FT_Op,              //   12 Division
     676             :         FT_Op,              //   13 Potenzierung
     677             :         FT_Op,              //   14 Gleichheit
     678             :         FT_Op,              //   15 Ungleich
     679             :         FT_Op,              //   16 Kleiner-gleich
     680             :         FT_Op,              //   17 Groesser-gleich
     681             :         FT_Op,              //   18 Kleiner
     682             :         FT_Op,              //   19 Groesser
     683             :         FT_Op,              //   20 And (logisch)
     684             :         FT_Op,              //   21 Or (logisch)
     685             :         FT_FuncFix1,        //   22 Not (logisch)
     686             :         FT_NOP,             //   23 unaeres Plus
     687             :         FT_NotImpl,         //   24
     688             :         FT_NotImpl,         //   25
     689             :         FT_NotImpl,         //   26
     690             :         FT_NotImpl,         //   27
     691             :         FT_NotImpl,         //   28
     692             :         FT_NotImpl,         //   29
     693             :         FT_NotImpl,         //   30
     694             :         FT_FuncFix0,        //   31 Not applicable
     695             :         FT_FuncFix0,        //   32 Error
     696             :         FT_FuncFix1,        //   33 Betrag ABS()
     697             :         FT_FuncFix1,        //   34 Ganzzahl INT()
     698             :         FT_FuncFix1,        //   35 Quadratwurzel
     699             :         FT_FuncFix1,        //   36 Zehnerlogarithmus
     700             :         FT_FuncFix1,        //   37 Natuerlicher Logarithmus
     701             :         FT_FuncFix0,        //   38 PI
     702             :         FT_FuncFix1,        //   39 Sinus
     703             :         FT_FuncFix1,        //   40 Cosinus
     704             :         FT_FuncFix1,        //   41 Tangens
     705             :         FT_FuncFix2,        //   42 Arcus-Tangens 2 (4.Quadrant)   <----- richtig? -
     706             :         FT_FuncFix1,        //   43 Arcus-Tangens (2.Quadrant)
     707             :         FT_FuncFix1,        //   44 Arcus-Sinus
     708             :         FT_FuncFix1,        //   45 Arcus-Cosinus
     709             :         FT_FuncFix1,        //   46 Exponentialfunktion
     710             :         FT_FuncFix2,        //   47 Modulo
     711             :         FT_FuncVar,         //   48 Auswahl
     712             :         FT_FuncFix1,        //   49 Is not applicable?
     713             :         FT_FuncFix1,        //   50 Is Error?
     714             :         FT_FuncFix0,        //   51 FALSE
     715             :         FT_FuncFix0,        //   52 TRUE
     716             :         FT_FuncFix0,        //   53 Zufallszahl
     717             :         FT_FuncFix3,        //   54 Datum
     718             :         FT_FuncFix0,        //   55 Heute
     719             :         FT_FuncFix3,        //   56 Payment
     720             :         FT_FuncFix3,        //   57 Present Value
     721             :         FT_FuncFix3,        //   58 Future Value
     722             :         FT_FuncFix3,        //   59 If ... then ... else ...
     723             :         FT_FuncFix1,        //   60 Tag des Monats
     724             :         FT_FuncFix1,        //   61 Monat
     725             :         FT_FuncFix1,        //   62 Jahr
     726             :         FT_FuncFix2,        //   63 Runden
     727             :         FT_FuncFix3,        //   64 Zeit
     728             :         FT_FuncFix1,        //   65 Stunde
     729             :         FT_FuncFix1,        //   66 Minute
     730             :         FT_FuncFix1,        //   67 Sekunde
     731             :         FT_FuncFix1,        //   68 Ist Zahl?
     732             :         FT_FuncFix1,        //   69 Ist Text?
     733             :         FT_FuncFix1,        //   70 Len()
     734             :         FT_FuncFix1,        //   71 Val()
     735             :         FT_FuncFix2,        //   72 String()
     736             :         FT_FuncFix3,        //   73 Mid()
     737             :         FT_FuncFix1,        //   74 Char()
     738             :         FT_FuncFix1,        //   75 Ascii()
     739             :         FT_FuncFix3,        //   76 Find()
     740             :         FT_FuncFix1,        //   77 Datevalue
     741             :         FT_FuncFix1,        //   78 Timevalue
     742             :         FT_FuncFix1,        //   79 Cellpointer
     743             :         FT_FuncVar,         //   80 Sum()
     744             :         FT_FuncVar,         //   81 Avg()
     745             :         FT_FuncVar,         //   82 Cnt()
     746             :         FT_FuncVar,         //   83 Min()
     747             :         FT_FuncVar,         //   84 Max()
     748             :         FT_FuncFix3,        //   85 Vlookup()
     749             :         FT_FuncFix2,        //   86 Npv()
     750             :         FT_FuncVar,         //   87 Var()
     751             :         FT_FuncVar,         //   88 Std()
     752             :         FT_FuncFix2,        //   89 Irr()
     753             :         FT_FuncFix3,        //   90 Hlookup()
     754             :         FT_FuncFix3,        //   91 ?
     755             :         FT_FuncFix3,        //   92 ?
     756             :         FT_FuncFix3,        //   93 ?
     757             :         FT_FuncFix3,        //   94 ?
     758             :         FT_FuncFix3,        //   95 ?
     759             :         FT_FuncFix3,        //   96 ?
     760             :         FT_FuncFix3,        //   97 ?
     761             :         FT_FuncFix3,        //   98 Index()                         <- richtig? -
     762             :         FT_FuncFix1,        //   99 Cols()
     763             :         FT_FuncFix1,        //  100 Rows()
     764             :         FT_FuncFix2,        //  101 Repeat()
     765             :         FT_FuncFix1,        //  102 Upper()
     766             :         FT_FuncFix1,        //  103 Lower()
     767             :         FT_FuncFix2,        //  104 Left()
     768             :         FT_FuncFix2,        //  105 Right()
     769             :         FT_FuncFix4,        //  106 Replace()
     770             :         FT_FuncFix1,        //  107 Proper()
     771             :         FT_FuncFix2,        //  108 Cell()
     772             :         FT_FuncFix1,        //  109 Trim()
     773             :         FT_FuncFix1,        //  110 Clean()
     774             :         FT_FuncFix1,        //  111 F()
     775             :         FT_FuncFix1,        //  112 Wert() (oder W()?)
     776             :         FT_FuncFix2,        //  113 Exact()
     777             :         FT_NotImpl,         //  114 Call()
     778             :         FT_FuncFix1,        //  115 @@()
     779             :         FT_FuncFix3,        //  116 Rate()
     780             :         FT_FuncFix1,        //  117 Term()
     781             :         FT_FuncFix1,        //  118 Cterm()
     782             :         FT_FuncFix3,        //  119 Sln()
     783             :         FT_FuncFix4,        //  120 Syd(), Soy()
     784             :         FT_FuncFix4,        //  121 Ddb()
     785             :         FT_NotImpl,         //  122
     786             :         FT_NotImpl,         //  123
     787             :         FT_NotImpl,         //  124
     788             :         FT_NotImpl,         //  125
     789             :         FT_NotImpl,         //  126
     790             :         FT_NotImpl,         //  127
     791             :         FT_NotImpl,         //  128
     792             :         FT_NotImpl,         //  129
     793             :         FT_NotImpl,         //  130
     794             :         FT_NotImpl,         //  131
     795             :         FT_NotImpl,         //  132
     796             :         FT_NotImpl,         //  133
     797             :         FT_NotImpl,         //  134
     798             :         FT_NotImpl,         //  135
     799             :         FT_NotImpl,         //  136
     800             :         FT_NotImpl,         //  137
     801             :         FT_NotImpl,         //  138
     802             :         FT_NotImpl,         //  139
     803             :         FT_NotImpl,         //  140
     804             :         FT_NotImpl,         //  141
     805             :         FT_NotImpl,         //  142
     806             :         FT_NotImpl,         //  143
     807             :         FT_NotImpl,         //  144
     808             :         FT_NotImpl,         //  145
     809             :         FT_NotImpl,         //  146
     810             :         FT_NotImpl,         //  147
     811             :         FT_NotImpl,         //  148
     812             :         FT_NotImpl,         //  149
     813             :         FT_NotImpl,         //  150
     814             :         FT_NotImpl,         //  151
     815             :         FT_NotImpl,         //  152
     816             :         FT_NotImpl,         //  153
     817             :         FT_NotImpl,         //  154
     818             :         FT_NotImpl,         //  155
     819             :         FT_FuncVar,         //  156 ?
     820             :         FT_NotImpl,         //  157
     821             :         FT_NotImpl,         //  158
     822             :         FT_NotImpl,         //  159
     823             :         FT_NotImpl,         //  160
     824             :         FT_NotImpl,         //  161
     825             :         FT_NotImpl,         //  162
     826             :         FT_NotImpl,         //  163
     827             :         FT_NotImpl,         //  164
     828             :         FT_NotImpl,         //  165
     829             :         FT_NotImpl,         //  166
     830             :         FT_NotImpl,         //  167
     831             :         FT_NotImpl,         //  168
     832             :         FT_NotImpl,         //  169
     833             :         FT_NotImpl,         //  170
     834             :         FT_NotImpl,         //  171
     835             :         FT_NotImpl,         //  172
     836             :         FT_NotImpl,         //  173
     837             :         FT_NotImpl,         //  174
     838             :         FT_NotImpl,         //  175
     839             :         FT_NotImpl,         //  176
     840             :         FT_NotImpl,         //  177
     841             :         FT_NotImpl,         //  178
     842             :         FT_NotImpl,         //  179
     843             :         FT_NotImpl,         //  180
     844             :         FT_NotImpl,         //  181
     845             :         FT_NotImpl,         //  182
     846             :         FT_NotImpl,         //  183
     847             :         FT_NotImpl,         //  184
     848             :         FT_NotImpl,         //  185
     849             :         FT_NotImpl,         //  186
     850             :         FT_NotImpl,         //  187
     851             :         FT_NotImpl,         //  188
     852             :         FT_NotImpl,         //  189
     853             :         FT_NotImpl,         //  190
     854             :         FT_NotImpl,         //  191
     855             :         FT_NotImpl,         //  192
     856             :         FT_NotImpl,         //  193
     857             :         FT_NotImpl,         //  194
     858             :         FT_NotImpl,         //  195
     859             :         FT_NotImpl,         //  196
     860             :         FT_NotImpl,         //  197
     861             :         FT_NotImpl,         //  198
     862             :         FT_NotImpl,         //  199
     863             :         FT_NotImpl,         //  200
     864             :         FT_NotImpl,         //  201
     865             :         FT_NotImpl,         //  202
     866             :         FT_NotImpl,         //  203
     867             :         FT_NotImpl,         //  204
     868             :         FT_NotImpl,         //  205
     869             :         FT_FuncVar,         //  206 ?
     870             :         FT_NotImpl,         //  207
     871             :         FT_NotImpl,         //  208
     872             :         FT_NotImpl,         //  209
     873             :         FT_NotImpl,         //  210
     874             :         FT_NotImpl,         //  211
     875             :         FT_NotImpl,         //  212
     876             :         FT_NotImpl,         //  213
     877             :         FT_NotImpl,         //  214
     878             :         FT_NotImpl,         //  215
     879             :         FT_NotImpl,         //  216
     880             :         FT_NotImpl,         //  217
     881             :         FT_NotImpl,         //  218
     882             :         FT_NotImpl,         //  219
     883             :         FT_NotImpl,         //  220
     884             :         FT_NotImpl,         //  221
     885             :         FT_NotImpl,         //  222
     886             :         FT_NotImpl,         //  223
     887             :         FT_NotImpl,         //  224
     888             :         FT_NotImpl,         //  225
     889             :         FT_NotImpl,         //  226
     890             :         FT_NotImpl,         //  227
     891             :         FT_NotImpl,         //  228
     892             :         FT_NotImpl,         //  229
     893             :         FT_NotImpl,         //  230
     894             :         FT_NotImpl,         //  231
     895             :         FT_NotImpl,         //  232
     896             :         FT_NotImpl,         //  233
     897             :         FT_NotImpl,         //  234
     898             :         FT_NotImpl,         //  235
     899             :         FT_NotImpl,         //  236
     900             :         FT_NotImpl,         //  237
     901             :         FT_NotImpl,         //  238
     902             :         FT_NotImpl,         //  239
     903             :         FT_NotImpl,         //  240
     904             :         FT_NotImpl,         //  241
     905             :         FT_NotImpl,         //  242
     906             :         FT_NotImpl,         //  243
     907             :         FT_NotImpl,         //  244
     908             :         FT_NotImpl,         //  245
     909             :         FT_NotImpl,         //  246
     910             :         FT_NotImpl,         //  247
     911             :         FT_NotImpl,         //  248
     912             :         FT_NotImpl,         //  249
     913             :         FT_NotImpl,         //  250
     914             :         FT_NotImpl,         //  251
     915             :         FT_NotImpl,         //  252
     916             :         FT_NotImpl,         //  253
     917             :         FT_NotImpl,         //  254
     918             :         FT_FuncVar,         //  255 ?
     919             :     };
     920           0 :     return pType[ nIndex ];
     921             : }
     922             : 
     923             : 
     924           0 : DefTokenId LotusToSc::IndexToToken( sal_uInt8 nIndex )
     925             : {
     926             :     static const DefTokenId pToken[ 256 ] =
     927             :     {                       // Code Bezeichnung
     928             :         ocPush,             //    0 8-Byte-IEEE-Float
     929             :         ocPush,             //    1 Variable
     930             :         ocPush,             //    2 Bereich
     931             :         ocPush,             //    3 return
     932             :         ocPush,             //    4 Klammer
     933             :         ocPush,             //    5 2-Byte-Integer
     934             :         ocPush,             //    6 ASCII-String
     935             :         ocPush,             //    7 NOP
     936             :         ocNegSub,           //    8 Negation
     937             :         ocAdd,              //    9 Addition
     938             :         ocSub,              //   10 Subtraktion
     939             :         ocMul,              //   11 Multiplikation
     940             :         ocDiv,              //   12 Division
     941             :         ocPow,              //   13 Potenzierung
     942             :         ocEqual,            //   14 Gleichheit
     943             :         ocNotEqual,         //   15 Ungleich
     944             :         ocLessEqual,        //   16 Kleiner-gleich
     945             :         ocGreaterEqual,     //   17 Groesser-gleich
     946             :         ocLess,             //   18 Kleiner
     947             :         ocGreater,          //   19 Groesser
     948             :         ocAnd,              //   20 And (logisch)
     949             :         ocOr,               //   21 Or (logisch)
     950             :         ocNot,              //   22 Not (logisch)
     951             :         ocPush,             //   23 unaeres Plus
     952             :         ocNoName,           //   24
     953             :         ocNoName,           //   25
     954             :         ocNoName,           //   26
     955             :         ocNoName,           //   27
     956             :         ocNoName,           //   28
     957             :         ocNoName,           //   29
     958             :         ocNoName,           //   30
     959             :         ocNotAvail,         //   31 Not available
     960             :         ocNoName,           //   32 Error
     961             :         ocAbs,              //   33 Betrag ABS()
     962             :         ocInt,              //   34 Ganzzahl INT()
     963             :         ocSqrt,             //   35 Quadratwurzel
     964             :         ocLog10,            //   36 Zehnerlogarithmus
     965             :         ocLn,               //   37 Natuerlicher Logarithmus
     966             :         ocPi,               //   38 PI
     967             :         ocSin,              //   39 Sinus
     968             :         ocCos,              //   40 Cosinus
     969             :         ocTan,              //   41 Tangens
     970             :         ocArcTan2,          //   42 Arcus-Tangens 2 (4.Quadrant)
     971             :         ocArcTan,           //   43 Arcus-Tangens (2.Quadrant)
     972             :         ocArcSin,           //   44 Arcus-Sinus
     973             :         ocArcCos,           //   45 Arcus-Cosinus
     974             :         ocExp,              //   46 Exponentialfunktion
     975             :         ocMod,              //   47 Modulo
     976             :         ocChose,            //   48 Auswahl
     977             :         ocIsNA,             //   49 Is not available?
     978             :         ocIsError,          //   50 Is Error?
     979             :         ocFalse,            //   51 FALSE
     980             :         ocTrue,             //   52 TRUE
     981             :         ocRandom,           //   53 Zufallszahl
     982             :         ocGetDate,          //   54 Datum
     983             :         ocGetActDate,       //   55 Heute
     984             :         ocRMZ,              //   56 Payment
     985             :         ocBW,               //   57 Present Value
     986             :         ocZW,               //   58 Future Value
     987             :         ocIf,               //   59 If ... then ... else ...
     988             :         ocGetDay,           //   60 Tag des Monats
     989             :         ocGetMonth,         //   61 Monat
     990             :         ocGetYear,          //   62 Jahr
     991             :         ocRound,            //   63 Runden
     992             :         ocGetTime,          //   64 Zeit
     993             :         ocGetHour,          //   65 Stunde
     994             :         ocGetMin,           //   66 Minute
     995             :         ocGetSec,           //   67 Sekunde
     996             :         ocIsValue,          //   68 Ist Zahl?
     997             :         ocIsString,         //   69 Ist Text?
     998             :         ocLen,              //   70 Len()
     999             :         ocValue,            //   71 Val()
    1000             :         ocFixed,            //   72 String()    ocFixed ersatzweise + Spezialfall
    1001             :         ocMid,              //   73 Mid()
    1002             :         ocChar,             //   74 Char()
    1003             :         ocCode,             //   75 Ascii()
    1004             :         ocFind,             //   76 Find()
    1005             :         ocGetDateValue,     //   77 Datevalue
    1006             :         ocGetTimeValue,     //   78 Timevalue
    1007             :         ocNoName,           //   79 Cellpointer
    1008             :         ocSum,              //   80 Sum()
    1009             :         ocAverage,          //   81 Avg()
    1010             :         ocCount,            //   82 Cnt()
    1011             :         ocMin,              //   83 Min()
    1012             :         ocMax,              //   84 Max()
    1013             :         ocVLookup,          //   85 Vlookup()
    1014             :         ocNPV,              //   86 Npv()
    1015             :         ocVar,              //   87 Var()
    1016             :         ocNormDist,         //   88 Std()
    1017             :         ocIRR,              //   89 Irr()
    1018             :         ocHLookup,          //   90 Hlookup()
    1019             :         ocDBSum,            //   91 XlfDsum
    1020             :         ocDBAverage,        //   92 XlfDaverage
    1021             :         ocDBCount,          //   93 XlfDcount
    1022             :         ocDBMin,            //   94 XlfDmin
    1023             :         ocDBMax,            //   95 XlfDmax
    1024             :         ocDBVar,            //   96 XlfDvar
    1025             :         ocDBStdDev,         //   97 XlfDstdev
    1026             :         ocIndex,            //   98 Index()
    1027             :         ocColumns,          //   99 Cols()
    1028             :         ocRows,             //  100 Rows()
    1029             :         ocRept,             //  101 Repeat()
    1030             :         ocUpper,            //  102 Upper()
    1031             :         ocLower,            //  103 Lower()
    1032             :         ocLeft,             //  104 Left()
    1033             :         ocRight,            //  105 Right()
    1034             :         ocReplace,          //  106 Replace()
    1035             :         ocPropper,          //  107 Proper()
    1036             :         ocNoName,           //  108 Cell()
    1037             :         ocTrim,             //  109 Trim()
    1038             :         ocClean,            //  110 Clean()
    1039             :         ocFalse,            //  111 F()
    1040             :         ocTrue,             //  112 W()
    1041             :         ocExact,            //  113 Exact()
    1042             :         ocNoName,           //  114 Call()
    1043             :         ocIndirect,         //  115 @@()
    1044             :         ocZins,             //  116 Rate()
    1045             :         ocNoName,           //  117 Term()
    1046             :         ocNoName,           //  118 Cterm()
    1047             :         ocLIA,              //  119 Sln()
    1048             :         ocDIA,              //  120 Syd(), Soy()
    1049             :         ocGDA,              //  121 Ddb()
    1050             :         ocNoName,           //  122
    1051             :         ocNoName,           //  123
    1052             :         ocNoName,           //  124
    1053             :         ocNoName,           //  125
    1054             :         ocNoName,           //  126
    1055             :         ocNoName,           //  127
    1056             :         ocNoName,           //  128
    1057             :         ocNoName,           //  129
    1058             :         ocNoName,           //  130
    1059             :         ocNoName,           //  131
    1060             :         ocNoName,           //  132
    1061             :         ocNoName,           //  133
    1062             :         ocNoName,           //  134
    1063             :         ocNoName,           //  135
    1064             :         ocNoName,           //  136
    1065             :         ocNoName,           //  137
    1066             :         ocNoName,           //  138
    1067             :         ocNoName,           //  139
    1068             :         ocNoName,           //  140
    1069             :         ocNoName,           //  141
    1070             :         ocNoName,           //  142
    1071             :         ocNoName,           //  143
    1072             :         ocNoName,           //  144
    1073             :         ocNoName,           //  145
    1074             :         ocNoName,           //  146
    1075             :         ocNoName,           //  147
    1076             :         ocNoName,           //  148
    1077             :         ocNoName,           //  149
    1078             :         ocNoName,           //  150
    1079             :         ocNoName,           //  151
    1080             :         ocNoName,           //  152
    1081             :         ocNoName,           //  153
    1082             :         ocNoName,           //  154
    1083             :         ocNoName,           //  155
    1084             :         ocNoName,           //  156 ?
    1085             :         ocNoName,           //  157
    1086             :         ocNoName,           //  158
    1087             :         ocNoName,           //  159
    1088             :         ocNoName,           //  160
    1089             :         ocNoName,           //  161
    1090             :         ocNoName,           //  162
    1091             :         ocNoName,           //  163
    1092             :         ocNoName,           //  164
    1093             :         ocNoName,           //  165
    1094             :         ocNoName,           //  166
    1095             :         ocNoName,           //  167
    1096             :         ocNoName,           //  168
    1097             :         ocNoName,           //  169
    1098             :         ocNoName,           //  170
    1099             :         ocNoName,           //  171
    1100             :         ocNoName,           //  172
    1101             :         ocNoName,           //  173
    1102             :         ocNoName,           //  174
    1103             :         ocNoName,           //  175
    1104             :         ocNoName,           //  176
    1105             :         ocNoName,           //  177
    1106             :         ocNoName,           //  178
    1107             :         ocNoName,           //  179
    1108             :         ocNoName,           //  180
    1109             :         ocNoName,           //  181
    1110             :         ocNoName,           //  182
    1111             :         ocNoName,           //  183
    1112             :         ocNoName,           //  184
    1113             :         ocNoName,           //  185
    1114             :         ocNoName,           //  186
    1115             :         ocNoName,           //  187
    1116             :         ocNoName,           //  188
    1117             :         ocNoName,           //  189
    1118             :         ocNoName,           //  190
    1119             :         ocNoName,           //  191
    1120             :         ocNoName,           //  192
    1121             :         ocNoName,           //  193
    1122             :         ocNoName,           //  194
    1123             :         ocNoName,           //  195
    1124             :         ocNoName,           //  196
    1125             :         ocNoName,           //  197
    1126             :         ocNoName,           //  198
    1127             :         ocNoName,           //  199
    1128             :         ocNoName,           //  200
    1129             :         ocNoName,           //  201
    1130             :         ocNoName,           //  202
    1131             :         ocNoName,           //  203
    1132             :         ocNoName,           //  204
    1133             :         ocNoName,           //  205
    1134             :         ocNoName,           //  206 ?
    1135             :         ocNoName,           //  207
    1136             :         ocNoName,           //  208
    1137             :         ocNoName,           //  209
    1138             :         ocNoName,           //  210
    1139             :         ocNoName,           //  211
    1140             :         ocNoName,           //  212
    1141             :         ocNoName,           //  213
    1142             :         ocNoName,           //  214
    1143             :         ocNoName,           //  215
    1144             :         ocNoName,           //  216
    1145             :         ocNoName,           //  217
    1146             :         ocNoName,           //  218
    1147             :         ocNoName,           //  219
    1148             :         ocNoName,           //  220
    1149             :         ocNoName,           //  221
    1150             :         ocNoName,           //  222
    1151             :         ocNoName,           //  223
    1152             :         ocNoName,           //  224
    1153             :         ocNoName,           //  225
    1154             :         ocNoName,           //  226
    1155             :         ocNoName,           //  227
    1156             :         ocNoName,           //  228
    1157             :         ocNoName,           //  229
    1158             :         ocNoName,           //  230
    1159             :         ocNoName,           //  231
    1160             :         ocNoName,           //  232
    1161             :         ocNoName,           //  233
    1162             :         ocNoName,           //  234
    1163             :         ocNoName,           //  235
    1164             :         ocNoName,           //  236
    1165             :         ocNoName,           //  237
    1166             :         ocNoName,           //  238
    1167             :         ocNoName,           //  239
    1168             :         ocNoName,           //  240
    1169             :         ocNoName,           //  241
    1170             :         ocNoName,           //  242
    1171             :         ocNoName,           //  243
    1172             :         ocNoName,           //  244
    1173             :         ocNoName,           //  245
    1174             :         ocNoName,           //  246
    1175             :         ocNoName,           //  247
    1176             :         ocNoName,           //  248
    1177             :         ocNoName,           //  249
    1178             :         ocNoName,           //  250
    1179             :         ocNoName,           //  251
    1180             :         ocNoName,           //  252
    1181             :         ocNoName,           //  253
    1182             :         ocNoName,           //  254
    1183             :         ocNoName            //  255 ?
    1184             :     };
    1185             : 
    1186           0 :     return pToken[ nIndex ];
    1187             : }
    1188             : 
    1189             : 
    1190          16 : FUNC_TYPE LotusToSc::IndexToTypeWK123( sal_uInt8 nIndex )
    1191             : {
    1192             :     static const FUNC_TYPE pType[ 256 ] =
    1193             :     {                       // Code Bezeichnung
    1194             :         FT_Const10Float,    //    0 8-Byte-IEEE-Long-Number
    1195             :         FT_Cref,            //    1 Cell Reference
    1196             :         FT_Rref,            //    2 Area Reference
    1197             :         FT_Return,          //    3 return
    1198             :         FT_Braces,          //    4 Klammer
    1199             :         FT_Snum,            //    5 Short-Number
    1200             :         FT_ConstString,     //    6 ASCII-String
    1201             :         FT_Nrref,           //    7 Named range reference
    1202             :         FT_Absnref,         //    8 Absolut named range
    1203             :         FT_Erref,           //    9 Err range reference
    1204             :         FT_Ecref,           //   10 Err cell reference
    1205             :         FT_Econstant,       //   11 Err constant
    1206             :         FT_NotImpl,         //   12
    1207             :         FT_NotImpl,         //   13
    1208             :         FT_Neg,             //   14 Negation
    1209             :         FT_Op,              //   15 Addition
    1210             :         FT_Op,              //   16 Subtraktion
    1211             :         FT_Op,              //   17 Multiplikation
    1212             :         FT_Op,              //   18 Division
    1213             :         FT_Op,              //   19 Potenzierung
    1214             :         FT_Op,              //   20 Gleichheit
    1215             :         FT_Op,              //   21 Ungleich
    1216             :         FT_Op,              //   22 Kleiner-gleich
    1217             :         FT_Op,              //   23 Groesser-gleich
    1218             :         FT_Op,              //   24 Kleiner
    1219             :         FT_Op,              //   25 Groesser
    1220             :         FT_Op,              //   26 And (logisch)
    1221             :         FT_Op,              //   27 Or (logisch)
    1222             :         FT_FuncFix1,        //   28 Not (logisch)
    1223             :         FT_NOP,             //   29 unaeres Plus
    1224             :         FT_Op,              //   30 Concatenation
    1225             :         FT_FuncFix0,        //   31 Not applicable
    1226             :         FT_FuncFix0,        //   32 Error
    1227             :         FT_FuncFix1,        //   33 Betrag ABS()
    1228             :         FT_FuncFix1,        //   34 Ganzzahl INT()
    1229             :         FT_FuncFix1,        //   35 Quadratwurzel
    1230             :         FT_FuncFix1,        //   36 Zehnerlogarithmus
    1231             :         FT_FuncFix1,        //   37 Natuerlicher Logarithmus
    1232             :         FT_FuncFix0,        //   38 PI
    1233             :         FT_FuncFix1,        //   39 Sinus
    1234             :         FT_FuncFix1,        //   40 Cosinus
    1235             :         FT_FuncFix1,        //   41 Tangens
    1236             :         FT_FuncFix2,        //   42 Arcus-Tangens 2 (4.Quadrant)
    1237             :         FT_FuncFix1,        //   43 Arcus-Tangens (2.Quadrant)
    1238             :         FT_FuncFix1,        //   44 Arcus-Sinus
    1239             :         FT_FuncFix1,        //   45 Arcus-Cosinus
    1240             :         FT_FuncFix1,        //   46 Exponentialfunktion
    1241             :         FT_FuncFix2,        //   47 Modulo
    1242             :         FT_FuncVar,         //   48 Auswahl
    1243             :         FT_FuncFix1,        //   49 Is not applicable?
    1244             :         FT_FuncFix1,        //   50 Is Error?
    1245             :         FT_FuncFix0,        //   51 FALSE
    1246             :         FT_FuncFix0,        //   52 TRUE
    1247             :         FT_FuncFix0,        //   53 Zufallszahl
    1248             :         FT_FuncFix3,        //   54 Datum
    1249             :         FT_FuncFix0,        //   55 Heute
    1250             :         FT_FuncFix3,        //   56 Payment
    1251             :         FT_FuncFix3,        //   57 Present Value
    1252             :         FT_FuncFix3,        //   58 Future Value
    1253             :         FT_FuncFix3,        //   59 If ... then ... else ...
    1254             :         FT_FuncFix1,        //   60 Tag des Monats
    1255             :         FT_FuncFix1,        //   61 Monat
    1256             :         FT_FuncFix1,        //   62 Jahr
    1257             :         FT_FuncFix2,        //   63 Runden
    1258             :         FT_FuncFix3,        //   64 Zeit
    1259             :         FT_FuncFix1,        //   65 Stunde
    1260             :         FT_FuncFix1,        //   66 Minute
    1261             :         FT_FuncFix1,        //   67 Sekunde
    1262             :         FT_FuncFix1,        //   68 Ist Zahl?
    1263             :         FT_FuncFix1,        //   69 Ist Text?
    1264             :         FT_FuncFix1,        //   70 Len()
    1265             :         FT_FuncFix1,        //   71 Val()
    1266             :         FT_FuncFix2,        //   72 String()
    1267             :         FT_FuncFix3,        //   73 Mid()
    1268             :         FT_FuncFix1,        //   74 Char()
    1269             :         FT_FuncFix1,        //   75 Ascii()
    1270             :         FT_FuncFix3,        //   76 Find()
    1271             :         FT_FuncFix1,        //   77 Datevalue
    1272             :         FT_FuncFix1,        //   78 Timevalue
    1273             :         FT_FuncFix1,        //   79 Cellpointer
    1274             :         FT_FuncVar,         //   80 Sum()
    1275             :         FT_FuncVar,         //   81 Avg()
    1276             :         FT_FuncVar,         //   82 Cnt()
    1277             :         FT_FuncVar,         //   83 Min()
    1278             :         FT_FuncVar,         //   84 Max()
    1279             :         FT_FuncFix3,        //   85 Vlookup()
    1280             :         FT_FuncFix2,        //   86 Npv()
    1281             :         FT_FuncVar,         //   87 Var()
    1282             :         FT_FuncVar,         //   88 Std()
    1283             :         FT_FuncFix2,        //   89 Irr()
    1284             :         FT_FuncFix3,        //   90 Hlookup()
    1285             :         FT_FuncVar,         //   91 Dsum                 <-------- neu! -
    1286             :         FT_FuncVar,         //   92 Davg                 <-------- neu! -
    1287             :         FT_FuncVar,         //   93 Dcnt                 <-------- neu! -
    1288             :         FT_FuncVar,         //   94 Dmin                 <-------- neu! -
    1289             :         FT_FuncVar,         //   95 Dmax                 <-------- neu! -
    1290             :         FT_FuncVar,         //   96 Dvar                 <-------- neu! -
    1291             :         FT_FuncVar,         //   97 Dstd                 <-------- neu! -
    1292             :         FT_FuncVar,         //   98 Index()              <-------- change! -
    1293             :         FT_FuncFix1,        //   99 Cols()               <-------- neu! -
    1294             :         FT_FuncFix1,        //  100 Rows()               <-------- neu! -
    1295             :         FT_FuncFix2,        //  101 Repeat()             <-------- neu! -
    1296             :         FT_FuncFix1,        //  102 Upper()              <-------- neu! -
    1297             :         FT_FuncFix1,        //  103 Lower()              <-------- neu! -
    1298             :         FT_FuncFix2,        //  104 Left()               <-------- neu! -
    1299             :         FT_FuncFix2,        //  105 Right()              <-------- neu! -
    1300             :         FT_FuncFix4,        //  106 Replace()            <-------- neu! -
    1301             :         FT_FuncFix1,        //  107 Proper()             <-------- neu! -
    1302             :         FT_FuncFix2,        //  108 Cell()               <-------- neu! -
    1303             :         FT_FuncFix1,        //  109 Trim()               <-------- neu! -
    1304             :         FT_FuncFix1,        //  110 Clean()              <-------- neu! -
    1305             :         FT_FuncFix1,        //  111 S()                  <--------- change in Bez. -
    1306             :         FT_FuncFix1,        //  112 N()                  <--------- change in Bez. -
    1307             :         FT_FuncFix2,        //  113 Exact()              <-------- neu! -
    1308             :         FT_NotImpl,         //  114 App                  <--------- change in Bez. -
    1309             :         FT_FuncFix1,        //  115 @@()                 <-------- neu! -
    1310             :         FT_FuncFix3,        //  116 Rate()               <-------- neu! -
    1311             :         FT_FuncFix3,        //  117 Term()               <--------- change in Anz.
    1312             :         FT_FuncFix3,        //  118 Cterm()              <--------- change in Anz.
    1313             :         FT_FuncFix3,        //  119 Sln()                <-------- neu! -
    1314             :         FT_FuncFix4,        //  120 Syd()                <-------- neu! -
    1315             :         FT_FuncFix4,        //  121 Ddb()                <-------- neu! -
    1316             :         FT_Splfunc,         //  122 Splfunc              <-------- neu! -
    1317             :         FT_FuncFix1,        //  123 Sheets               <-------- neu! -
    1318             :         FT_FuncFix1,        //  124 Info                 <-------- neu! -
    1319             :         FT_FuncVar,         //  125 Sumproduct           <-------- neu! -
    1320             :         FT_FuncFix1,        //  126 Isrange              <-------- neu! -
    1321             :         FT_FuncVar,         //  127 Dget                 <-------- neu! -
    1322             :         FT_FuncVar,         //  128 Dquery               <-------- neu! -
    1323             :         FT_FuncFix4,        //  129 Coord                <-------- neu! -
    1324             :         FT_NOP,             //  130 Reserved (internal)  <-------- neu! -
    1325             :         FT_FuncFix0,        //  131 Today                <-------- neu! -
    1326             :         FT_FuncVar,         //  132 Vdb                  <-------- neu! -
    1327             :         FT_FuncVar,         //  133 Dvars                <-------- neu! -
    1328             :         FT_FuncVar,         //  134 Dstds                <-------- neu! -
    1329             :         FT_FuncVar,         //  135 Vars                 <-------- neu! -
    1330             :         FT_FuncVar,         //  136 Stds                 <-------- neu! -
    1331             :         FT_FuncFix2,        //  137 D360                 <-------- neu! -
    1332             :         FT_NOP,             //  138 Reserved (internal)  <-------- neu! -
    1333             :         FT_FuncFix0,        //  139 Isapp                <-------- neu! - Anzahl ? -
    1334             :         FT_FuncVar,         //  140 Isaaf                <-------- neu! - Anzahl ? -
    1335             :         FT_FuncFix1,        //  141 Weekday              <-------- neu! -
    1336             :         FT_FuncFix3,        //  142 Datedif              <-------- neu! -
    1337             :         FT_FuncVar,         //  143 Rank                 <-------- neu! -
    1338             :         FT_FuncFix2,        //  144 Numberstring         <-------- neu! -
    1339             :         FT_FuncFix1,        //  145 Datestring           <-------- neu! -
    1340             :         FT_FuncFix1,        //  146 Decimal              <-------- neu! -
    1341             :         FT_FuncFix1,        //  147 Hex                  <-------- neu! -
    1342             :         FT_FuncFix4,        //  148 Db                   <-------- neu! -
    1343             :         FT_FuncFix4,        //  149 Pmti                 <-------- neu! -
    1344             :         FT_FuncFix4,        //  150 Spi                  <-------- neu! -
    1345             :         FT_FuncFix1,        //  151 Fullp                <-------- neu! -
    1346             :         FT_FuncFix1,        //  152 Halfp                <-------- neu! -
    1347             :         FT_FuncVar,         //  153 Pureavg              <-------- neu! -
    1348             :         FT_FuncVar,         //  154 Purecount            <-------- neu! -
    1349             :         FT_FuncVar,         //  155 Puremax              <-------- neu! -
    1350             :         FT_FuncVar,         //  156 Puremin              <-------- neu! -
    1351             :         FT_FuncVar,         //  157 Purestd              <-------- neu! -
    1352             :         FT_FuncVar,         //  158 Purevar              <-------- neu! -
    1353             :         FT_FuncVar,         //  159 Purestds             <-------- neu! -
    1354             :         FT_FuncVar,         //  160 Purevars             <-------- neu! -
    1355             :         FT_FuncFix3,        //  161 Pmt2                 <-------- neu! -
    1356             :         FT_FuncFix3,        //  162 Pv2                  <-------- neu! -
    1357             :         FT_FuncFix3,        //  163 Fv2                  <-------- neu! -
    1358             :         FT_FuncFix3,        //  164 Term2                <-------- neu! -
    1359             :         FT_NotImpl,         //  165 ---                  <-------- neu! - Anzahl ? -
    1360             :         FT_FuncFix2,        //  166 D360 (US-Version)
    1361             :         FT_NotImpl,         //  167
    1362             :         FT_NotImpl,         //  168
    1363             :         FT_NotImpl,         //  169
    1364             :         FT_NotImpl,         //  170
    1365             :         FT_NotImpl,         //  171
    1366             :         FT_NotImpl,         //  172
    1367             :         FT_NotImpl,         //  173
    1368             :         FT_NotImpl,         //  174
    1369             :         FT_NotImpl,         //  175
    1370             :         FT_NotImpl,         //  176
    1371             :         FT_NotImpl,         //  177
    1372             :         FT_NotImpl,         //  178
    1373             :         FT_NotImpl,         //  179
    1374             :         FT_NotImpl,         //  180
    1375             :         FT_NotImpl,         //  181
    1376             :         FT_NotImpl,         //  182
    1377             :         FT_NotImpl,         //  183
    1378             :         FT_NotImpl,         //  184
    1379             :         FT_NotImpl,         //  185
    1380             :         FT_FuncVar,         //  186 Solver               <-------- neu! -
    1381             :         FT_NotImpl,         //  187
    1382             :         FT_NotImpl,         //  188
    1383             :         FT_NotImpl,         //  189
    1384             :         FT_NotImpl,         //  190
    1385             :         FT_NotImpl,         //  191
    1386             :         FT_NotImpl,         //  192
    1387             :         FT_NotImpl,         //  193
    1388             :         FT_NotImpl,         //  194
    1389             :         FT_NotImpl,         //  195
    1390             :         FT_NotImpl,         //  196
    1391             :         FT_NotImpl,         //  197
    1392             :         FT_NotImpl,         //  198
    1393             :         FT_NotImpl,         //  199
    1394             :         FT_NotImpl,         //  200
    1395             :         FT_NotImpl,         //  201
    1396             :         FT_NotImpl,         //  202
    1397             :         FT_NotImpl,         //  203
    1398             :         FT_NotImpl,         //  204
    1399             :         FT_NotImpl,         //  205
    1400             :         FT_NotImpl,         //  206
    1401             :         FT_NotImpl,         //  207
    1402             :         FT_NotImpl,         //  208
    1403             :         FT_NotImpl,         //  209
    1404             :         FT_NotImpl,         //  210
    1405             :         FT_NotImpl,         //  211
    1406             :         FT_NotImpl,         //  212
    1407             :         FT_NotImpl,         //  213
    1408             :         FT_NotImpl,         //  214
    1409             :         FT_NotImpl,         //  215
    1410             :         FT_NotImpl,         //  216
    1411             :         FT_NotImpl,         //  217
    1412             :         FT_NotImpl,         //  218
    1413             :         FT_NotImpl,         //  219
    1414             :         FT_NotImpl,         //  220
    1415             :         FT_NotImpl,         //  221
    1416             :         FT_NotImpl,         //  222
    1417             :         FT_NotImpl,         //  223
    1418             :         FT_NotImpl,         //  224
    1419             :         FT_NotImpl,         //  225
    1420             :         FT_NotImpl,         //  226
    1421             :         FT_NotImpl,         //  227
    1422             :         FT_NotImpl,         //  228
    1423             :         FT_NotImpl,         //  229
    1424             :         FT_NotImpl,         //  230
    1425             :         FT_NotImpl,         //  231
    1426             :         FT_NotImpl,         //  232
    1427             :         FT_NotImpl,         //  233
    1428             :         FT_NotImpl,         //  234
    1429             :         FT_NotImpl,         //  235
    1430             :         FT_NotImpl,         //  236
    1431             :         FT_NotImpl,         //  237
    1432             :         FT_NotImpl,         //  238
    1433             :         FT_NotImpl,         //  239
    1434             :         FT_NotImpl,         //  240
    1435             :         FT_NotImpl,         //  241
    1436             :         FT_NotImpl,         //  242
    1437             :         FT_NotImpl,         //  243
    1438             :         FT_NotImpl,         //  244
    1439             :         FT_NotImpl,         //  245
    1440             :         FT_NotImpl,         //  246
    1441             :         FT_NotImpl,         //  247
    1442             :         FT_NotImpl,         //  248
    1443             :         FT_NotImpl,         //  249
    1444             :         FT_NotImpl,         //  250
    1445             :         FT_NotImpl,         //  251
    1446             :         FT_NotImpl,         //  252
    1447             :         FT_NotImpl,         //  253
    1448             :         FT_NotImpl,         //  254
    1449             :         FT_NotImpl,         //  255
    1450             :     };
    1451          16 :     return pType[ nIndex ];
    1452             : }
    1453             : 
    1454             : 
    1455          16 : DefTokenId LotusToSc::IndexToTokenWK123( sal_uInt8 nIndex )
    1456             : {
    1457             :     static const DefTokenId pToken[ 256 ] =
    1458             :     {                       // Code Bezeichnung
    1459             :         ocPush,             //    0 8-Byte-IEEE-Long-Numbers
    1460             :         ocPush,             //    1 Variable
    1461             :         ocPush,             //    2 Bereich
    1462             :         ocPush,             //    3 return
    1463             :         ocPush,             //    4 Klammer
    1464             :         ocPush,             //    5 Numbers
    1465             :         ocPush,             //    6 ASCII-String
    1466             :         ocPush,             //    7 Named range reference
    1467             :         ocPush,             //    8 Absolut named range
    1468             :         ocPush,             //    9 Err range reference
    1469             :         ocPush,             //   10 Err cell reference
    1470             :         ocPush,             //   11 Err constant
    1471             :         ocPush,             //   12
    1472             :         ocPush,             //   13
    1473             :         ocNegSub,           //   14 Negation
    1474             :         ocAdd,              //   15 Addition
    1475             :         ocSub,              //   16 Subtraktion
    1476             :         ocMul,              //   17 Multiplikation
    1477             :         ocDiv,              //   18 Division
    1478             :         ocPow,              //   19 Potenzierung
    1479             :         ocEqual,            //   20 Gleichheit
    1480             :         ocNotEqual,         //   21 Ungleich
    1481             :         ocLessEqual,        //   22 Kleiner-gleich
    1482             :         ocGreaterEqual,     //   23 Groesser-gleich
    1483             :         ocLess,             //   24 Kleiner
    1484             :         ocGreater,          //   25 Groesser
    1485             :         ocAnd,              //   26 And (logisch)
    1486             :         ocOr,               //   27 Or (logisch)
    1487             :         ocNot,              //   28 Not (logisch)
    1488             :         ocPush,             //   29 unaeres Plus
    1489             :         ocAmpersand,        //   30 Concatenation
    1490             :         ocNotAvail,         //   31 Not available
    1491             :         ocNoName,           //   32 Error
    1492             :         ocAbs,              //   33 Betrag ABS()
    1493             :         ocInt,              //   34 Ganzzahl INT()
    1494             :         ocSqrt,             //   35 Quadratwurzel
    1495             :         ocLog10,            //   36 Zehnerlogarithmus
    1496             :         ocLn,               //   37 Natuerlicher Logarithmus
    1497             :         ocPi,               //   38 PI
    1498             :         ocSin,              //   39 Sinus
    1499             :         ocCos,              //   40 Cosinus
    1500             :         ocTan,              //   41 Tangens
    1501             :         ocArcTan2,          //   42 Arcus-Tangens 2 (4.Quadrant)
    1502             :         ocArcTan,           //   43 Arcus-Tangens (2.Quadrant)
    1503             :         ocArcSin,           //   44 Arcus-Sinus
    1504             :         ocArcCos,           //   45 Arcus-Cosinus
    1505             :         ocExp,              //   46 Exponentialfunktion
    1506             :         ocMod,              //   47 Modulo
    1507             :         ocChose,            //   48 Auswahl
    1508             :         ocIsNA,             //   49 Is not available?
    1509             :         ocIsError,          //   50 Is Error?
    1510             :         ocFalse,            //   51 FALSE
    1511             :         ocTrue,             //   52 TRUE
    1512             :         ocRandom,           //   53 Zufallszahl
    1513             :         ocGetDate,          //   54 Datum
    1514             :         ocGetActDate,       //   55 Heute
    1515             :         ocRMZ,              //   56 Payment
    1516             :         ocBW,               //   57 Present Value
    1517             :         ocZW,               //   58 Future Value
    1518             :         ocIf,               //   59 If ... then ... else ...
    1519             :         ocGetDay,           //   60 Tag des Monats
    1520             :         ocGetMonth,         //   61 Monat
    1521             :         ocGetYear,          //   62 Jahr
    1522             :         ocRound,            //   63 Runden
    1523             :         ocGetTime,          //   64 Zeit
    1524             :         ocGetHour,          //   65 Stunde
    1525             :         ocGetMin,           //   66 Minute
    1526             :         ocGetSec,           //   67 Sekunde
    1527             :         ocIsValue,          //   68 Ist Zahl?
    1528             :         ocIsString,         //   69 Ist Text?
    1529             :         ocLen,              //   70 Len()
    1530             :         ocValue,            //   71 Val()
    1531             :         ocFixed,            //   72 String()    ocFixed ersatzweise + Spezialfall
    1532             :         ocMid,              //   73 Mid()
    1533             :         ocChar,             //   74 Char()
    1534             :         ocCode,             //   75 Ascii()
    1535             :         ocFind,             //   76 Find()
    1536             :         ocGetDateValue,     //   77 Datevalue
    1537             :         ocGetTimeValue,     //   78 Timevalue
    1538             :         ocNoName,           //   79 Cellpointer
    1539             :         ocSum,              //   80 Sum()
    1540             :         ocAverage,          //   81 Avg()
    1541             :         ocCount,            //   82 Cnt()
    1542             :         ocMin,              //   83 Min()
    1543             :         ocMax,              //   84 Max()
    1544             :         ocVLookup,          //   85 Vlookup()
    1545             :         ocNPV,              //   86 Npv()
    1546             :         ocVar,              //   87 Var()
    1547             :         ocStDev,            //   88 Std()
    1548             :         ocIRR,              //   89 Irr()
    1549             :         ocHLookup,          //   90 Hlookup()
    1550             :         ocDBSum,            //   91 XlfDsum
    1551             :         ocDBAverage,        //   92 XlfDaverage
    1552             :         ocDBCount,          //   93 XlfDcount
    1553             :         ocDBMin,            //   94 XlfDmin
    1554             :         ocDBMax,            //   95 XlfDmax
    1555             :         ocDBVar,            //   96 XlfDvar
    1556             :         ocDBStdDev,         //   97 XlfDstdev
    1557             :         ocIndex,            //   98 Index()
    1558             :         ocColumns,          //   99 Cols()
    1559             :         ocRows,             //  100 Rows()
    1560             :         ocRept,             //  101 Repeat()
    1561             :         ocUpper,            //  102 Upper()
    1562             :         ocLower,            //  103 Lower()
    1563             :         ocLeft,             //  104 Left()
    1564             :         ocRight,            //  105 Right()
    1565             :         ocReplace,          //  106 Replace()
    1566             :         ocPropper,          //  107 Proper()
    1567             :         ocNoName,           //  108 Cell()
    1568             :         ocTrim,             //  109 Trim()
    1569             :         ocClean,            //  110 Clean()
    1570             :         ocNoName,           //  111 F()     (Excel: T()?)
    1571             :         ocNoName,           //  112 W()
    1572             :         ocExact,            //  113 Exact()
    1573             :         ocNoName,           //  114 Call()
    1574             :         ocIndirect,         //  115 @@()
    1575             :         ocZins,             //  116 Rate()
    1576             :         ocNoName,           //  117 Term()
    1577             :         ocNoName,           //  118 Cterm()
    1578             :         ocLIA,              //  119 Sln()
    1579             :         ocDIA,              //  120 Syd(), Soy()
    1580             :         ocGDA,              //  121 Ddb()
    1581             :         ocNoName,           //  122 Splfunc
    1582             :         ocNoName,           //  123 Sheets
    1583             :         ocNoName,           //  124 Info
    1584             :         ocSumProduct,       //  125 Sumproduct
    1585             :         ocNoName,           //  126 Isrange
    1586             :         ocDBGet,            //  127 Dget
    1587             :         ocNoName,           //  128 Dquery
    1588             :         ocNoName,           //  129 Coord
    1589             :         ocNoName,           //  130 Reserved (internal)
    1590             :         ocGetActDate,       //  131 Today
    1591             :         ocNoName,           //  132 Vdb
    1592             :         ocDBVarP,           //  133 Dvars
    1593             :         ocDBStdDevP,        //  134 Dstds
    1594             :         ocVarP,             //  135 Vars
    1595             :         ocStDevP,           //  136 Stds
    1596             :         ocGetDiffDate360,   //  137 D360
    1597             :         ocNoName,           //  138 Reserved (internal)
    1598             :         ocNoName,           //  139 Isapp
    1599             :         ocNoName,           //  140 Isaaf
    1600             :         ocGetDayOfWeek,     //  141 Weekday
    1601             :         ocGetDiffDate,      //  142 Datedif
    1602             :         ocRank,             //  143 Rank
    1603             :         ocNoName,           //  144 Numberstring
    1604             :         ocNoName,           //  145 Datestring
    1605             :         ocNoName,           //  146 Decimal
    1606             :         ocNoName,           //  147 Hex
    1607             :         ocNoName,           //  148 Db
    1608             :         ocNoName,           //  149 Pmti
    1609             :         ocNoName,           //  150 Spi
    1610             :         ocNoName,           //  151 Fullp
    1611             :         ocNoName,           //  152 Halfp
    1612             :         ocNoName,           //  153 Pureavg
    1613             :         ocCount2,           //  154 Purecount
    1614             :         ocNoName,           //  155 Puremax
    1615             :         ocNoName,           //  156 Puremin
    1616             :         ocNoName,           //  157 Purestd
    1617             :         ocNoName,           //  158 Purevar
    1618             :         ocNoName,           //  159 Purestds
    1619             :         ocNoName,           //  160 Purevars
    1620             :         ocNoName,           //  161 Pmt2
    1621             :         ocNoName,           //  162 Pv2
    1622             :         ocNoName,           //  163 Fv2
    1623             :         ocNoName,           //  164 Term2
    1624             :         ocNoName,           //  165 ---                  <-------- neu! - Anzahl ? -
    1625             :         ocGetDiffDate360,   //  166 D360 (US-Version, ersatzweise wie ander D360-Funktion)
    1626             :         ocNoName,           //  167
    1627             :         ocNoName,           //  168
    1628             :         ocNoName,           //  169
    1629             :         ocNoName,           //  170
    1630             :         ocNoName,           //  171
    1631             :         ocNoName,           //  172
    1632             :         ocNoName,           //  173
    1633             :         ocNoName,           //  174
    1634             :         ocNoName,           //  175
    1635             :         ocNoName,           //  176
    1636             :         ocNoName,           //  177
    1637             :         ocNoName,           //  178
    1638             :         ocNoName,           //  179
    1639             :         ocNoName,           //  180
    1640             :         ocNoName,           //  181
    1641             :         ocNoName,           //  182
    1642             :         ocNoName,           //  183
    1643             :         ocNoName,           //  184
    1644             :         ocNoName,           //  185
    1645             :         ocNoName,           //  186
    1646             :         ocNoName,           //  187
    1647             :         ocNoName,           //  188
    1648             :         ocNoName,           //  189
    1649             :         ocNoName,           //  190
    1650             :         ocNoName,           //  191
    1651             :         ocNoName,           //  192
    1652             :         ocNoName,           //  193
    1653             :         ocNoName,           //  194
    1654             :         ocNoName,           //  195
    1655             :         ocNoName,           //  196
    1656             :         ocNoName,           //  197
    1657             :         ocNoName,           //  198
    1658             :         ocNoName,           //  199
    1659             :         ocNoName,           //  200
    1660             :         ocNoName,           //  201
    1661             :         ocNoName,           //  202
    1662             :         ocNoName,           //  203
    1663             :         ocNoName,           //  204
    1664             :         ocNoName,           //  205
    1665             :         ocNoName,           //  206 ?
    1666             :         ocNoName,           //  207
    1667             :         ocNoName,           //  208
    1668             :         ocNoName,           //  209
    1669             :         ocNoName,           //  210
    1670             :         ocNoName,           //  211
    1671             :         ocNoName,           //  212
    1672             :         ocNoName,           //  213
    1673             :         ocNoName,           //  214
    1674             :         ocNoName,           //  215
    1675             :         ocNoName,           //  216
    1676             :         ocNoName,           //  217
    1677             :         ocNoName,           //  218
    1678             :         ocNoName,           //  219
    1679             :         ocNoName,           //  220
    1680             :         ocNoName,           //  221
    1681             :         ocNoName,           //  222
    1682             :         ocNoName,           //  223
    1683             :         ocNoName,           //  224
    1684             :         ocNoName,           //  225
    1685             :         ocNoName,           //  226
    1686             :         ocNoName,           //  227
    1687             :         ocNoName,           //  228
    1688             :         ocNoName,           //  229
    1689             :         ocNoName,           //  230
    1690             :         ocNoName,           //  231
    1691             :         ocNoName,           //  232
    1692             :         ocNoName,           //  233
    1693             :         ocNoName,           //  234
    1694             :         ocNoName,           //  235
    1695             :         ocNoName,           //  236
    1696             :         ocNoName,           //  237
    1697             :         ocNoName,           //  238
    1698             :         ocNoName,           //  239
    1699             :         ocNoName,           //  240
    1700             :         ocNoName,           //  241
    1701             :         ocNoName,           //  242
    1702             :         ocNoName,           //  243
    1703             :         ocNoName,           //  244
    1704             :         ocNoName,           //  245
    1705             :         ocNoName,           //  246
    1706             :         ocNoName,           //  247
    1707             :         ocNoName,           //  248
    1708             :         ocNoName,           //  249
    1709             :         ocNoName,           //  250
    1710             :         ocNoName,           //  251
    1711             :         ocNoName,           //  252
    1712             :         ocNoName,           //  253
    1713             :         ocNoName,           //  254
    1714             :         ocNoName            //  255 ?
    1715             :     };
    1716             : 
    1717          16 :     return pToken[ nIndex ];
    1718             : }
    1719             : 
    1720             : 
    1721             : 
    1722             : 
    1723           0 : const sal_Char* GetAddInName( const sal_uInt8 n )
    1724             : {
    1725             :     static const sal_Char*  pNames[ 256 ] =
    1726             :     {
    1727             :         NULL,                       //    0 8-Byte-IEEE-Float
    1728             :         NULL,                       //    1 Variable
    1729             :         NULL,                       //    2 Bereich
    1730             :         NULL,                       //    3 return
    1731             :         NULL,                       //    4 Klammer
    1732             :         NULL,                       //    5 2-Byte-Integer
    1733             :         NULL,                       //    6 ASCII-String
    1734             :         NULL,                       //    7 Named range reference
    1735             :         NULL,                       //    8 Absolut named range
    1736             :         NULL,                       //    9 Err range reference
    1737             :         NULL,                       //   10 Err cell reference
    1738             :         NULL,                       //   11 Err constant
    1739             :         NULL,                       //   12
    1740             :         NULL,                       //   13
    1741             :         NULL,                       //   14 Negation
    1742             :         NULL,                       //   15 Addition
    1743             :         NULL,                       //   16 Subtraktion
    1744             :         NULL,                       //   17 Multiplikation
    1745             :         NULL,                       //   18 Division
    1746             :         NULL,                       //   19 Potenzierung
    1747             :         NULL,                       //   20 Gleichheit
    1748             :         NULL,                       //   21 Ungleich
    1749             :         NULL,                       //   22 Kleiner-gleich
    1750             :         NULL,                       //   23 Groesser-gleich
    1751             :         NULL,                       //   24 Kleiner
    1752             :         NULL,                       //   25 Groesser
    1753             :         NULL,                       //   26 And (logisch)
    1754             :         NULL,                       //   27 Or (logisch)
    1755             :         NULL,                       //   28 Not (logisch)
    1756             :         NULL,                       //   29 unaeres Plus
    1757             :         NULL,                       //   30 Concatenation
    1758             :         NULL,                       //   31 Not applicable
    1759             :         NULL,                       //   32 Error
    1760             :         NULL,                       //   33 Betrag ABS()
    1761             :         NULL,                       //   34 Ganzzahl INT()
    1762             :         NULL,                       //   35 Quadratwurzel
    1763             :         NULL,                       //   36 Zehnerlogarithmus
    1764             :         NULL,                       //   37 Natuerlicher Logarithmus
    1765             :         NULL,                       //   38 PI
    1766             :         NULL,                       //   39 Sinus
    1767             :         NULL,                       //   40 Cosinus
    1768             :         NULL,                       //   41 Tangens
    1769             :         NULL,                       //   42 Arcus-Tangens 2 (4.Quadrant)
    1770             :         NULL,                       //   43 Arcus-Tangens (2.Quadrant)
    1771             :         NULL,                       //   44 Arcus-Sinus
    1772             :         NULL,                       //   45 Arcus-Cosinus
    1773             :         NULL,                       //   46 Exponentialfunktion
    1774             :         NULL,                       //   47 Modulo
    1775             :         NULL,                       //   48 Auswahl
    1776             :         NULL,                       //   49 Is not applicable?
    1777             :         NULL,                       //   50 Is Error?
    1778             :         NULL,                       //   51 FALSE
    1779             :         NULL,                       //   52 TRUE
    1780             :         NULL,                       //   53 Zufallszahl
    1781             :         NULL,                       //   54 Datum
    1782             :         NULL,                       //   55 Heute
    1783             :         NULL,                       //   56 Payment
    1784             :         NULL,                       //   57 Present Value
    1785             :         NULL,                       //   58 Future Value
    1786             :         NULL,                       //   59 If ... then ... else ...
    1787             :         NULL,                       //   60 Tag des Monats
    1788             :         NULL,                       //   61 Monat
    1789             :         NULL,                       //   62 Jahr
    1790             :         NULL,                       //   63 Runden
    1791             :         NULL,                       //   64 Zeit
    1792             :         NULL,                       //   65 Stunde
    1793             :         NULL,                       //   66 Minute
    1794             :         NULL,                       //   67 Sekunde
    1795             :         NULL,                       //   68 Ist Zahl?
    1796             :         NULL,                       //   69 Ist Text?
    1797             :         NULL,                       //   70 Len()
    1798             :         NULL,                       //   71 Val()
    1799             :         NULL,                       //   72 String()    ocFixed ersatzweise + Spezialfall
    1800             :         NULL,                       //   73 Mid()
    1801             :         NULL,                       //   74 Char()
    1802             :         NULL,                       //   75 Ascii()
    1803             :         NULL,                       //   76 Find()
    1804             :         NULL,                       //   77 Datevalue
    1805             :         NULL,                       //   78 Timevalue
    1806             :         "ZELLZEIGER",               //   79 Cellpointer
    1807             :         NULL,                       //   80 Sum()
    1808             :         NULL,                       //   81 Avg()
    1809             :         NULL,                       //   82 Cnt()
    1810             :         NULL,                       //   83 Min()
    1811             :         NULL,                       //   84 Max()
    1812             :         NULL,                       //   85 Vlookup()
    1813             :         NULL,                       //   86 Npv()
    1814             :         NULL,                       //   87 Var()
    1815             :         NULL,                       //   88 Std()
    1816             :         NULL,                       //   89 Irr()
    1817             :         NULL,                       //   90 Hlookup()
    1818             :         NULL,                       //   91 XlfDsum
    1819             :         NULL,                       //   92 XlfDaverage
    1820             :         NULL,                       //   93 XlfDcount
    1821             :         NULL,                       //   94 XlfDmin
    1822             :         NULL,                       //   95 XlfDmax
    1823             :         NULL,                       //   96 XlfDvar
    1824             :         NULL,                       //   97 XlfDstdev
    1825             :         NULL,                       //   98 Index()
    1826             :         NULL,                       //   99 Cols()
    1827             :         NULL,                       //  100 Rows()
    1828             :         NULL,                       //  101 Repeat()
    1829             :         NULL,                       //  102 Upper()
    1830             :         NULL,                       //  103 Lower()
    1831             :         NULL,                       //  104 Left()
    1832             :         NULL,                       //  105 Right()
    1833             :         NULL,                       //  106 Replace()
    1834             :         NULL,                       //  107 Proper()
    1835             :         "ZELLE",                    //  108 Cell()
    1836             :         NULL,                       //  109 Trim()
    1837             :         NULL,                       //  110 Clean()
    1838             :         "F",                        //  111 F()     (Excel: T()?)
    1839             :         "W",                        //  112 W()
    1840             :         NULL,                       //  113 Exact()
    1841             :         NULL,                       //  114 Call()
    1842             :         NULL,                       //  115 @@()
    1843             :         NULL,                       //  116 Rate()
    1844             :         "ANN",                      //  117 Term()
    1845             :         NULL,                       //  118 Cterm()
    1846             :         NULL,                       //  119 Sln()
    1847             :         NULL,                       //  120 Syd(), Soy()
    1848             :         NULL,                       //  121 Ddb()
    1849             :         "SplFunc",                  //  122 Splfunc
    1850             :         "BLAETTER",                 //  123 Sheets
    1851             :         "INFO",                     //  124 Info
    1852             :         NULL,                       //  125 Sumproduct
    1853             :         "ISTBEREICH",               //  126 Isrange
    1854             :         NULL,                       //  127 Dget
    1855             :         "DABFRAGE",                 //  128 Dquery
    1856             :         "KOORD",                    //  129 Coord
    1857             :         NULL,                       //  130 Reserved (internal)
    1858             :         NULL,                       //  131 Today
    1859             :         NULL,                       //  132 Vdb
    1860             :         NULL,                       //  133 Dvars
    1861             :         NULL,                       //  134 Dstds
    1862             :         NULL,                       //  135 Vars
    1863             :         NULL,                       //  136 Stds
    1864             :         NULL,                       //  137 D360
    1865             :         NULL,                       //  138 Reserved (internal)
    1866             :         NULL,                       //  139 Isapp
    1867             :         "ISTDEFZUS",                //  140 Isaaf
    1868             :         NULL,                       //  141 Weekday
    1869             :         NULL,                       //  142 Datedif
    1870             :         NULL,                       //  143 Rank
    1871             :         NULL,                       //  144 Numberstring
    1872             :         "DATUMFOLGE",               //  145 Datestring
    1873             :         "DEZIMAL",                  //  146 Decimal
    1874             :         "HEX",                      //  147 Hex
    1875             :         NULL,                       //  148 Db
    1876             :         NULL,                       //  149 Pmti
    1877             :         NULL,                       //  150 Spi
    1878             :         NULL,                       //  151 Fullp
    1879             :         NULL,                       //  152 Halfp
    1880             :         "PURMITTELWERT",            //  153 Pureavg
    1881             :         "PURANZAHL",                //  154 Purecount
    1882             :         "PURMAX",                   //  155 Puremax
    1883             :         "PURMIN",                   //  156 Puremin
    1884             :         "PURSTDABW",                //  157 Purestd
    1885             :         "PURVAR",                   //  158 Purevar
    1886             :         "PURSTDABWP",               //  159 Purestds
    1887             :         "PURVARP",                  //  160 Purevars
    1888             :         NULL,                       //  161 Pmt2
    1889             :         NULL,                       //  162 Pv2
    1890             :         NULL,                       //  163 Fv2
    1891             :         NULL,                       //  164 Term2
    1892             :         NULL,                       //  165 ---                  <-------- neu! - Anzahl ? -
    1893             :         NULL,                       //  166 D360 (US-Version, ersatzweise wie ander D360-Funktion)
    1894             :         NULL,                       //  167
    1895             :         NULL,                       //  168
    1896             :         NULL,                       //  169
    1897             :         NULL,                       //  170
    1898             :         NULL,                       //  171
    1899             :         NULL,                       //  172
    1900             :         NULL,                       //  173
    1901             :         NULL,                       //  174
    1902             :         NULL,                       //  175
    1903             :         NULL,                       //  176
    1904             :         NULL,                       //  177
    1905             :         NULL,                       //  178
    1906             :         NULL,                       //  179
    1907             :         NULL,                       //  180
    1908             :         NULL,                       //  181
    1909             :         NULL,                       //  182
    1910             :         NULL,                       //  183
    1911             :         NULL,                       //  184
    1912             :         NULL,                       //  185
    1913             :         NULL,                       //  186
    1914             :         NULL,                       //  187
    1915             :         NULL,                       //  188
    1916             :         NULL,                       //  189
    1917             :         NULL,                       //  190
    1918             :         NULL,                       //  191
    1919             :         NULL,                       //  192
    1920             :         NULL,                       //  193
    1921             :         NULL,                       //  194
    1922             :         NULL,                       //  195
    1923             :         NULL,                       //  196
    1924             :         NULL,                       //  197
    1925             :         NULL,                       //  198
    1926             :         NULL,                       //  199
    1927             :         NULL,                       //  200
    1928             :         NULL,                       //  201
    1929             :         NULL,                       //  202
    1930             :         NULL,                       //  203
    1931             :         NULL,                       //  204
    1932             :         NULL,                       //  205
    1933             :         NULL,                       //  206 ?
    1934             :         NULL,                       //  207
    1935             :         NULL,                       //  208
    1936             :         NULL,                       //  209
    1937             :         NULL,                       //  210
    1938             :         NULL,                       //  211
    1939             :         NULL,                       //  212
    1940             :         NULL,                       //  213
    1941             :         NULL,                       //  214
    1942             :         NULL,                       //  215
    1943             :         NULL,                       //  216
    1944             :         NULL,                       //  217
    1945             :         NULL,                       //  218
    1946             :         NULL,                       //  219
    1947             :         NULL,                       //  220
    1948             :         NULL,                       //  221
    1949             :         NULL,                       //  222
    1950             :         NULL,                       //  223
    1951             :         NULL,                       //  224
    1952             :         NULL,                       //  225
    1953             :         NULL,                       //  226
    1954             :         NULL,                       //  227
    1955             :         NULL,                       //  228
    1956             :         NULL,                       //  229
    1957             :         NULL,                       //  230
    1958             :         NULL,                       //  231
    1959             :         NULL,                       //  232
    1960             :         NULL,                       //  233
    1961             :         NULL,                       //  234
    1962             :         NULL,                       //  235
    1963             :         NULL,                       //  236
    1964             :         NULL,                       //  237
    1965             :         NULL,                       //  238
    1966             :         NULL,                       //  239
    1967             :         NULL,                       //  240
    1968             :         NULL,                       //  241
    1969             :         NULL,                       //  242
    1970             :         NULL,                       //  243
    1971             :         NULL,                       //  244
    1972             :         NULL,                       //  245
    1973             :         NULL,                       //  246
    1974             :         NULL,                       //  247
    1975             :         NULL,                       //  248
    1976             :         NULL,                       //  249
    1977             :         NULL,                       //  250
    1978             :         NULL,                       //  251
    1979             :         NULL,                       //  252
    1980             :         NULL,                       //  253
    1981             :         NULL,                       //  254
    1982             :         NULL                        //  255 ?
    1983             :     };
    1984             : 
    1985           0 :     return pNames[ n ];
    1986             : }
    1987             : 
    1988             : 
    1989           0 : static DefTokenId lcl_KnownAddIn( const rtl::OString& rTest )
    1990             : {
    1991           0 :     DefTokenId  eId = ocNoName;
    1992             : 
    1993           0 :     if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("FACT")))
    1994           0 :             eId = ocFact;
    1995           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("ISEMPTY")))
    1996           0 :             eId=ocIsEmpty;
    1997           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("DEGTORAD")))
    1998           0 :             eId=ocRad;
    1999           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("RADTODEG")))
    2000           0 :             eId=ocDeg;
    2001           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("SIGN")))
    2002           0 :             eId=ocPlusMinus;
    2003           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("ACOSH")))
    2004           0 :             eId=ocArcCosHyp;
    2005           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("ACOTH")))
    2006           0 :             eId=ocArcCotHyp;
    2007           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("ASINH")))
    2008           0 :             eId=ocArcSinHyp;
    2009           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("ATANH")))
    2010           0 :             eId=ocArcTanHyp;
    2011           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("COSH")))
    2012           0 :             eId=ocCosHyp;
    2013           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("COTH")))
    2014           0 :             eId=ocCotHyp;
    2015           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("SINH")))
    2016           0 :             eId=ocSinHyp;
    2017           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("TANH")))
    2018           0 :             eId=ocTanHyp;
    2019           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("EVEN")))
    2020           0 :             eId=ocIsEven;
    2021           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("ODD")))
    2022           0 :             eId=ocIsOdd;
    2023           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("ACOT")))
    2024           0 :             eId=ocArcCot;
    2025           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("COT")))
    2026           0 :             eId=ocCot;
    2027           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("TRUNC")))
    2028           0 :             eId=ocTrunc;
    2029           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("GEOMEAN")))
    2030           0 :             eId=ocGeoMean;
    2031           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("HARMEAN")))
    2032           0 :             eId=ocHarMean;
    2033           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("CORREL")))
    2034           0 :             eId=ocCorrel;
    2035           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("MEDIAN")))
    2036           0 :             eId=ocMedian;
    2037           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("COV")))
    2038           0 :             eId=ocCovar;
    2039           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("SKEWNESS")))
    2040           0 :             eId=ocSchiefe;
    2041           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("CHITEST")))
    2042           0 :             eId=ocChiTest;
    2043           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("FTEST")))
    2044           0 :             eId=ocFTest;
    2045           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("AVEDEV")))
    2046           0 :             eId=ocAveDev;
    2047           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("PRODUCT")))
    2048           0 :             eId=ocProduct;
    2049           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("PERMUT")))
    2050           0 :             eId=ocVariationen;
    2051           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("GAMMALN")))
    2052           0 :             eId=ocGammaLn;
    2053           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("POISSON")))
    2054           0 :             eId=ocPoissonDist;
    2055           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("NORMAL")))
    2056           0 :             eId=ocNormDist;
    2057           0 :     else if (rTest.equalsL(RTL_CONSTASCII_STRINGPARAM("CRITBINOMIAL")))
    2058           0 :             eId=ocKritBinom;
    2059           0 :     return eId;
    2060             : }
    2061             : 
    2062             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10