blob: 0daf1de54b2c7bcfa9db2445c63bbda6986992e1 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_sheet_FormulaMapGroupSpecialOffset_idl__
#define __com_sun_star_sheet_FormulaMapGroupSpecialOffset_idl__
// ===========================================================================
module com { module sun { module star { module sheet {
// ===========================================================================
/** Constants designating the offsets within the sequence returned by
<member>XFormulaOpCodeMapper::getAvailableMappings</member> when
called for group <const>FormulaMapGroup::SPECIAL</const>.
<p>The number of constants may grow in future versions!</p>
*/
constants FormulaMapGroupSpecialOffset
{
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe a formula operand token that will be pushed onto the formula
stack while the formula is interpreted.
<p>The <member>FormulaToken::Data</member> member shall contain one of
the following values:</p>
<ul>
<li>A value of type <atom>double</atom> for literal floating-point
constants.</li>
<li>A <atom>string</atom> for literal text.</li>
<li>A <atom dim="[][]">any</atom> for a literal array. The contained
values shall be of type <atom>double</atom> or <atom>string</atom>.
Floating-point values and strings may occur together in an array.</li>
<li>A struct of type <type>SingleReference</type> for a reference to a
single cell in the own document.</li>
<li>A struct of type <type>ComplexReference</type> for a reference to
a range of cells in the own document.</li>
<li>A struct of type <type>ExternalReference</type> for a reference to
a cell, a range of cells, or a defined name in an external document.</li>
</ul>
*/
const long PUSH = 0;
// -----------------------------------------------------------------------
const long CALL = 1;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
instruct the formula interpreter to immediately stop interpreting the
formula.
<p>The <member>FormulaToken::Data</member> member is not used
and should be empty.</p>
*/
const long STOP = 2;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe the reference to an external function (e.g. add-in function)
used in formulas.
<p>The <member>FormulaToken::Data</member> member shall contain a
<atom>string</atom> with the programmatical name of the function, e.g.
"com.sun.star.sheet.addin.Analysis.getEomonth" for the EOMONTH
function from the Analsysis add-in.</p>
*/
const long EXTERNAL = 3;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe the reference to a defined name (also known as named range)
used in formulas.
<p>The <member>FormulaToken::Data</member> member shall contain an
integer value of type <atom>long</atom> specifying the index of the
defined name. This index can be obtained from the defined name using
its <member>NamedRange::TokenIndex</member> property.</p>
@see NamedRange
*/
const long NAME = 4;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe an invalid name that resolves to the #NAME? error in formulas.
<p>The <member>FormulaToken::Data</member> member is not used
and should be empty.</p>
*/
const long NO_NAME = 5;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe an empty function parameter.
<p>Example: In the formula <code>=SUM(1;;2)</code> the second
parameter is empty and represented by a formula token containing the
"missing" op-code.</p>
<p>The <member>FormulaToken::Data</member> member is not used
and should be empty.</p>
*/
const long MISSING = 6;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe "bad" data in a formula, e.g. data the formula parser was not
able to parse.
<p>The <member>FormulaToken::Data</member> member shall contain a
<atom>string</atom> with the bad data. This string will be displayed
literally in the formula.</p>
*/
const long BAD = 7;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe whitespace characters within the string representation of a
formula.
<p>Whitespace characters in formulas are used for readability and do
not affect the result of the formula.</p>
<p>The <member>FormulaToken::Data</member> member shall contain a
positive integer value of type <atom>long</atom> specifying the number
of space characters.</p>
<p>Attention: This may change in next versions to support other
characters than simple space characters (e.g. line feeds, horizontal
tabulators, non-breakable spaces).</p>
*/
const long SPACES = 8;
// -----------------------------------------------------------------------
const long MAT_REF = 9;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe the reference to a database range used in formulas.
<p>The <member>FormulaToken::Data</member> member shall contain an
integer value of type <atom>long</atom> specifying the index of the
database range. This index can be obtained from the database range
using its <member>DatabaseRange::TokenIndex</member> property.</p>
@see DatabaseRange
*/
const long DB_AREA = 10;
// -----------------------------------------------------------------------
/** Formula tokens containing the op-code obtained from this offset
describe the reference to a macro function called in a formula.
<p>The <member>FormulaToken::Data</member> member shall contain a
<atom>string</atom> specifying the name of the macro function.</p>
*/
const long MACRO = 11;
// -----------------------------------------------------------------------
const long COL_ROW_NAME = 12;
// -----------------------------------------------------------------------
};
// ===========================================================================
}; }; }; };
#endif