xref: /aoo41x/main/sc/source/filter/inc/qproform.hxx (revision 38d50f7b)
1*38d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*38d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*38d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*38d50f7bSAndrew Rist  * distributed with this work for additional information
6*38d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*38d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*38d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
9*38d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*38d50f7bSAndrew Rist  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*38d50f7bSAndrew Rist  *
13*38d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*38d50f7bSAndrew Rist  * software distributed under the License is distributed on an
15*38d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*38d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
17*38d50f7bSAndrew Rist  * specific language governing permissions and limitations
18*38d50f7bSAndrew Rist  * under the License.
19*38d50f7bSAndrew Rist  *
20*38d50f7bSAndrew Rist  *************************************************************/
21*38d50f7bSAndrew Rist 
22*38d50f7bSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #ifndef SC_QPROFORM_HXX
26cdf0e10cSrcweir #define SC_QPROFORM_HXX
27cdf0e10cSrcweir 
28cdf0e10cSrcweir #include <sal/config.h>
29cdf0e10cSrcweir #include "formel.hxx"
30cdf0e10cSrcweir #include <tools/string.hxx>
31cdf0e10cSrcweir #include "qpro.hxx"
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #include <compiler.hxx>
34cdf0e10cSrcweir typedef OpCode DefTokenId;
35cdf0e10cSrcweir 
36cdf0e10cSrcweir enum FUNC_TYPE
37cdf0e10cSrcweir {
38cdf0e10cSrcweir     FT_Return,
39cdf0e10cSrcweir     FT_FuncFix0,
40cdf0e10cSrcweir     FT_FuncFix1,
41cdf0e10cSrcweir     FT_FuncFix2,
42cdf0e10cSrcweir     FT_FuncFix3,
43cdf0e10cSrcweir     FT_FuncFix4,
44cdf0e10cSrcweir     FT_FuncFix5,
45cdf0e10cSrcweir     FT_FuncFix6,
46cdf0e10cSrcweir     FT_FuncVar,
47cdf0e10cSrcweir     FT_DLL,
48cdf0e10cSrcweir     FT_Neg,
49cdf0e10cSrcweir     FT_Op,
50cdf0e10cSrcweir     FT_NotImpl,
51cdf0e10cSrcweir     FT_ConstFloat,
52cdf0e10cSrcweir     FT_Range,
53cdf0e10cSrcweir     FT_Braces,
54cdf0e10cSrcweir     FT_ConstInt,
55cdf0e10cSrcweir     FT_ConstString,
56cdf0e10cSrcweir     FT_NOP,
57cdf0e10cSrcweir     FT_Cref
58cdf0e10cSrcweir };
59cdf0e10cSrcweir 
60cdf0e10cSrcweir class QProToSc : public ConverterBase
61cdf0e10cSrcweir {
62cdf0e10cSrcweir     private:
63cdf0e10cSrcweir     TokenId mnAddToken;
64cdf0e10cSrcweir     TokenId mnSubToken;
65cdf0e10cSrcweir     TokenId mn0Token;
66cdf0e10cSrcweir     SvStream& maIn;
67cdf0e10cSrcweir 
68cdf0e10cSrcweir     public:
69cdf0e10cSrcweir     static const size_t nBufSize = 256;
70cdf0e10cSrcweir     QProToSc( SvStream &aStr, const ScAddress& rRefPos );
~QProToSc()71cdf0e10cSrcweir     ~QProToSc(){ };
72cdf0e10cSrcweir     ConvErr Convert( const ScTokenArray*& pArray, sal_uInt16 nLen,
73cdf0e10cSrcweir                                                                          const FORMULA_TYPE eFT = FT_CellFormula );
74cdf0e10cSrcweir     void DoFunc( DefTokenId eOc, sal_uInt16 nArgs, const sal_Char* pExtString );
75cdf0e10cSrcweir     void ReadSRD( ScSingleRefData& rR, sal_Int8 nPage, sal_Int8 nCol, sal_uInt16 rRel );
76cdf0e10cSrcweir     void IncToken( TokenId &aParam );
77cdf0e10cSrcweir     DefTokenId IndexToToken( sal_uInt16 nToken );
78cdf0e10cSrcweir     FUNC_TYPE IndexToType( sal_uInt8 nToken );
79cdf0e10cSrcweir     DefTokenId IndexToDLLId( sal_uInt16 nIndex );
80cdf0e10cSrcweir     const sal_Char* getString( sal_uInt8 nIndex );
81cdf0e10cSrcweir };
82cdf0e10cSrcweir #endif
83