summaryrefslogtreecommitdiff
path: root/sc/inc/token.hxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@gmail.com>2013-09-04 15:14:47 -0400
committerKohei Yoshida <kohei.yoshida@gmail.com>2013-09-06 01:38:31 -0400
commit69047ec117cd2e0885efec1824e9c00555da4800 (patch)
tree6e5f0c29813a91ac4239e80d97789f43e364515d /sc/inc/token.hxx
parent2d8a60e517c35276051a82b569515b49896b5be9 (diff)
Correctly handle implicit intersection in group interpretation.
Change-Id: I2ea6f41ad4036a6f3f5d99097e83fd988aacd105
Diffstat (limited to 'sc/inc/token.hxx')
-rw-r--r--sc/inc/token.hxx24
1 files changed, 24 insertions, 0 deletions
diff --git a/sc/inc/token.hxx b/sc/inc/token.hxx
index 9603a8729e9b..32cdf5ad1869 100644
--- a/sc/inc/token.hxx
+++ b/sc/inc/token.hxx
@@ -33,6 +33,9 @@
#include "scmatrix.hxx"
#include "calcmacros.hxx"
+// Matrix token constants.
+#define MATRIX_TOKEN_HAS_RANGE 1
+
class ScJumpMatrix;
typedef ::std::vector< ScComplexRefData > ScRefList;
@@ -176,6 +179,27 @@ public:
virtual FormulaToken* Clone() const { return new ScMatrixToken(*this); }
};
+/**
+ * Token storing matrix that represents values in sheet range. It stores
+ * both the values in matrix form, and the range address the matrix
+ * represents.
+ */
+class ScMatrixRangeToken : public ScToken
+{
+ ScMatrixRef mpMatrix;
+ ScComplexRefData maRef;
+public:
+ ScMatrixRangeToken( const ScMatrixRef& p, const ScComplexRefData& rRef );
+ ScMatrixRangeToken( const ScMatrixRangeToken& r );
+
+ virtual sal_uInt8 GetByte() const;
+ virtual const ScMatrix* GetMatrix() const;
+ virtual ScMatrix* GetMatrix();
+ virtual const ScComplexRefData& GetDoubleRef() const;
+ virtual ScComplexRefData& GetDoubleRef();
+ virtual bool operator==( const formula::FormulaToken& rToken ) const;
+ virtual FormulaToken* Clone() const;
+};
class ScExternalSingleRefToken : public ScToken
{