diff --git a/src/shared/proparser/proitems.cpp b/src/shared/proparser/proitems.cpp index 613ed12dcc564b7f3335697ef5817d75d47de8d2..236ed5070acdc4dbc97b660bf22a5be8d2748d3d 100644 --- a/src/shared/proparser/proitems.cpp +++ b/src/shared/proparser/proitems.cpp @@ -34,6 +34,7 @@ QT_BEGIN_NAMESPACE ProBlock::ProBlock() + : ProItem(BlockKind) { m_blockKind = 0; m_refCount = 1; @@ -48,32 +49,6 @@ ProBlock::~ProBlock() delete itm; } -ProItem::ProItemKind ProBlock::kind() const -{ - return ProItem::BlockKind; -} - -ProItem::ProItemKind ProVariable::kind() const -{ - return ProItem::VariableKind; -} - -ProItem::ProItemKind ProFunction::kind() const -{ - return ProItem::FunctionKind; -} - -ProItem::ProItemKind ProCondition::kind() const -{ - return ProItem::ConditionKind; -} - -ProItem::ProItemKind ProOperator::kind() const -{ - return ProItem::OperatorKind; -} - -// --------------- ProFile ---------------- ProFile::ProFile(const QString &fileName) : ProBlock() { diff --git a/src/shared/proparser/proitems.h b/src/shared/proparser/proitems.h index ab916b2bf4f2d3c0624bbcfe1926ccd6d901605a..b55933dce2b17484234af1f9fcee64552d99ec7b 100644 --- a/src/shared/proparser/proitems.h +++ b/src/shared/proparser/proitems.h @@ -56,15 +56,15 @@ public: ReturnReturn }; - ProItem() : m_lineNumber(0) {} - virtual ~ProItem() {} + ProItem(ProItemKind kind) : m_kind(kind), m_lineNumber(0) {} - virtual ProItemKind kind() const = 0; + ProItemKind kind() const { return m_kind; } int lineNumber() const { return m_lineNumber; } void setLineNumber(int lineNumber) { m_lineNumber = lineNumber; } private: + ProItemKind m_kind; int m_lineNumber; }; @@ -91,8 +91,6 @@ public: void ref() { ++m_refCount; } void deref() { if (!--m_refCount) delete this; } - ProItem::ProItemKind kind() const; - private: QList<ProItem *> m_proitems; int m_blockKind; @@ -110,7 +108,7 @@ public: UniqueAddOperator = 4 }; - ProVariable(const QString &name) : m_variableKind(SetOperator), m_variable(name) {} + ProVariable(const QString &name) : ProItem(VariableKind), m_variableKind(SetOperator), m_variable(name) {} void setVariableOperator(VariableOperator variableKind) { m_variableKind = variableKind; } VariableOperator variableOperator() const { return m_variableKind; } void setVariable(const QString &name) { m_variable = name; } @@ -118,8 +116,6 @@ public: void setValue(const QString &value) { m_value = value; } QString value() const { return m_value; } - ProItem::ProItemKind kind() const; - private: VariableOperator m_variableKind; QString m_variable; @@ -129,12 +125,10 @@ private: class ProFunction : public ProItem { public: - explicit ProFunction(const QString &text) : m_text(text) {} + explicit ProFunction(const QString &text) : ProItem(FunctionKind), m_text(text) {} void setText(const QString &text) { m_text = text; } QString text() const { return m_text; } - ProItem::ProItemKind kind() const; - private: QString m_text; }; @@ -142,12 +136,10 @@ private: class ProCondition : public ProItem { public: - explicit ProCondition(const QString &text) : m_text(text) {} + explicit ProCondition(const QString &text) : ProItem(ConditionKind), m_text(text) {} void setText(const QString &text) { m_text = text; } QString text() const { return m_text; } - ProItem::ProItemKind kind() const; - private: QString m_text; }; @@ -160,12 +152,10 @@ public: NotOperator = 2 }; - explicit ProOperator(OperatorKind operatorKind) : m_operatorKind(operatorKind) {} + explicit ProOperator(OperatorKind operatorKind) : ProItem(ProItem::OperatorKind), m_operatorKind(operatorKind) {} void setOperatorKind(OperatorKind operatorKind) { m_operatorKind = operatorKind; } OperatorKind operatorKind() const { return m_operatorKind; } - ProItem::ProItemKind kind() const; - private: OperatorKind m_operatorKind; };