fixed parser/nodes.h node classes not specifying "const" when overriding methods

git-svn-id: svn://anubis/fart/branches/scene-file-scripting@319 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
Josh Holtrop 2010-09-29 19:47:38 +00:00
parent 2f825f29f9
commit 1afa2b6510

View File

@ -15,16 +15,30 @@ class Node
void addChildren(refptr<Node> other); void addChildren(refptr<Node> other);
std::vector< refptr<Node> > & getChildren() { return m_children; } std::vector< refptr<Node> > & getChildren() { return m_children; }
virtual int getInteger() const { return 0; } virtual int getInteger() const
virtual double getNumber() const { return 0.0; } {
std::cerr << "Warning: Node::getInteger() called!" << std::endl;
return 0;
}
virtual double getNumber() const
{
std::cerr << "Warning: Node::getNumber() called!" << std::endl;
return 0.0;
}
virtual refptr<Vector> getVector() const virtual refptr<Vector> getVector() const
{ {
std::cerr << "Warning: Node::getVector() called!" << std::endl;
return refptr<Vector>(NULL); return refptr<Vector>(NULL);
} }
virtual std::string getString() const
{
std::cerr << "Warning: Node::getString() called!" << std::endl;
return "";
}
virtual bool isShape() const { return false; } virtual bool isShape() const { return false; }
virtual bool isMaterial() const { return false; } virtual bool isMaterial() const { return false; }
virtual bool isTransformBlock() const { return false; } virtual bool isTransformBlock() const { return false; }
virtual std::string getString() const { return ""; }
virtual bool isExpression() const { return false; } virtual bool isExpression() const { return false; }
protected: protected:
@ -36,8 +50,8 @@ class IntegerNode : public Node
{ {
public: public:
IntegerNode(int number) { m_number = number; } IntegerNode(int number) { m_number = number; }
int getInteger() { return m_number; } int getInteger() const { return m_number; }
double getNumber() { return m_number; } double getNumber() const { return m_number; }
protected: protected:
int m_number; int m_number;
@ -56,7 +70,7 @@ class NumberNode : public Node
addChild(expr); addChild(expr);
m_direct = false; m_direct = false;
} }
double getNumber() double getNumber() const
{ {
return m_direct ? m_number : m_children[0]->getNumber(); return m_direct ? m_number : m_children[0]->getNumber();
} }
@ -79,7 +93,7 @@ class VectorNode : public Node
{ {
addChild(node); addChild(node);
} }
refptr<Vector> getVector() refptr<Vector> getVector() const
{ {
if (m_children.size() == 1) if (m_children.size() == 1)
{ {
@ -92,7 +106,12 @@ class VectorNode : public Node
m_children[1]->getNumber(), m_children[1]->getNumber(),
m_children[2]->getNumber()); m_children[2]->getNumber());
} }
return NULL; else
{
std::cerr << "Warning: VectorNode::getVector() returning NULL!"
<< std::endl;
return NULL;
}
} }
}; };
@ -158,7 +177,7 @@ class IdentifierNode : public Node
{ {
public: public:
IdentifierNode(const std::string & str) { m_string = str; } IdentifierNode(const std::string & str) { m_string = str; }
std::string getString() std::string getString() const
{ {
return m_string; return m_string;
} }
@ -253,7 +272,7 @@ class PlanePositionNode : public VectorNode
{ {
m_dist = dist; m_dist = dist;
} }
double getNumber() { return m_dist->getNumber(); } double getNumber() const { return m_dist->getNumber(); }
protected: protected:
refptr<Node> m_dist; refptr<Node> m_dist;
@ -412,7 +431,7 @@ class ExpressionNode : public Node
{ {
public: public:
bool isExpression() const { return true; } bool isExpression() const { return true; }
virtual double getInteger() { return getNumber(); } virtual int getInteger() const { return getNumber(); }
}; };
class BinOpNode : public ExpressionNode class BinOpNode : public ExpressionNode