1
/*************************************************************************************
2
* Copyright (C) 2009 by Aleix Pol <aleixpol@kde.org> *
4
* This program is free software; you can redistribute it and/or *
5
* modify it under the terms of the GNU General Public License *
6
* as published by the Free Software Foundation; either version 2 *
7
* of the License, or (at your option) any later version. *
9
* This program is distributed in the hope that it will be useful, *
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12
* GNU General Public License for more details. *
14
* You should have received a copy of the GNU General Public License *
15
* along with this program; if not, write to the Free Software *
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *
17
*************************************************************************************/
23
#include "analitzaexport.h"
28
class ANALITZA_EXPORT Vector : public Object
31
typedef QVector<Object*>::iterator iterator;
32
typedef QVector<Object*>::const_iterator const_iterator;
34
Vector(const Vector& v);
38
void appendBranch(Object* );
39
int size() const { return m_elements.size(); }
41
iterator erase(const iterator& it) { return m_elements.erase(it); }
43
iterator begin() { return m_elements.begin(); }
44
iterator end() { return m_elements.end(); }
45
const_iterator constBegin() const { return m_elements.constBegin(); }
46
const_iterator constEnd() const { return m_elements.constEnd(); }
48
Object* at(int i) const { return m_elements[i]; }
49
void setAt(int i, Object* o) { m_elements[i]=o; }
50
QList<Object*> values() const { return m_elements.toList(); }
52
virtual QString visit (ExpressionWriter* e) const;
53
virtual bool isZero() const;
55
virtual bool matches(const Object* pattern, QMap< QString, const Object* >* found) const;
56
virtual Object* copy() const;
57
bool operator==(const Vector& v) const;
59
QVector<Object*> m_elements;