LibreOffice Module sc (master) 1
Classes | Macros | Typedefs | Functions
token.hxx File Reference
#include <memory>
#include <vector>
#include <formula/opcode.hxx>
#include "refdata.hxx"
#include "scdllapi.h"
#include <formula/token.hxx>
#include "calcmacros.hxx"
#include "types.hxx"
Include dependency graph for token.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ScSingleRefToken
 
class  ScDoubleRefToken
 
class  ScMatrixToken
 
class  ScMatrixRangeToken
 Token storing matrix that represents values in sheet range. More...
 
class  ScExternalSingleRefToken
 
class  ScExternalDoubleRefToken
 
class  ScExternalNameToken
 
class  ScTableRefToken
 Special token to remember details of ocTableRef "structured references". More...
 
class  ScJumpMatrixToken
 
class  ScRefListToken
 
class  ScEmptyCellToken
 
class  ScMatrixCellResultToken
 Transports the result from the interpreter to the formula cell. More...
 
class  ScMatrixFormulaCellToken
 Stores the matrix result at the formula cell, additionally the range the matrix formula occupies. More...
 
class  ScHybridCellToken
 
class  SingleDoubleRefModifier
 
class  SingleDoubleRefProvider
 

Macros

#define MATRIX_TOKEN_HAS_RANGE   1
 

Typedefs

typedef ::std::vector< ScComplexRefDataScRefList
 

Functions

formula::FormulaTokenRef extendRangeReference (ScSheetLimits &rLimits, formula::FormulaToken &rTok1, formula::FormulaToken &rTok2, const ScAddress &rPos, bool bReuseDoubleRef)
 If rTok1 and rTok2 both are SingleRef or DoubleRef tokens, extend/merge ranges as needed for ocRange. More...
 

Macro Definition Documentation

◆ MATRIX_TOKEN_HAS_RANGE

#define MATRIX_TOKEN_HAS_RANGE   1

Definition at line 33 of file token.hxx.

Typedef Documentation

◆ ScRefList

typedef ::std::vector< ScComplexRefData > ScRefList

Definition at line 39 of file token.hxx.

Function Documentation

◆ extendRangeReference()

formula::FormulaTokenRef extendRangeReference ( ScSheetLimits rLimits,
formula::FormulaToken rTok1,
formula::FormulaToken rTok2,
const ScAddress rPos,
bool  bReuseDoubleRef 
)

If rTok1 and rTok2 both are SingleRef or DoubleRef tokens, extend/merge ranges as needed for ocRange.

Parameters
rPosThe formula's position, used to calculate absolute positions from relative references.
bReuseDoubleRefIf true, a DoubleRef token is reused if passed as rTok1 or rTok2, else a new DoubleRef token is created and returned.
Returns
A reused or new'ed ScDoubleRefToken, or a NULL TokenRef if rTok1 or rTok2 are not of sv(Single|Double)Ref

Definition at line 504 of file token.cxx.

References formula::FormulaToken::Clone(), ScComplexRefData::Extend(), formula::FormulaToken::GetIndex(), formula::FormulaToken::GetRef(), formula::FormulaToken::GetRefList(), formula::FormulaToken::GetSingleRef(), formula::FormulaToken::GetString(), formula::FormulaToken::GetType(), i, ScSingleRefData::IsFlag3D(), p, pt, ScComplexRefData::Ref1, ScComplexRefData::Ref2, ScSingleRefData::SetFlag3D(), svDoubleRef, svExternalDoubleRef, svExternalSingleRef, svRefList, svSingleRef, and svUnknown.

Referenced by ScCompiler::ExtendRangeReference(), ScTokenArray::MergeRangeReference(), and ScInterpreter::ScRangeFunc().