+++ /dev/null
-#ifndef MSP_GL_SL_EVALUATE_H_
-#define MSP_GL_SL_EVALUATE_H_
-
-#include "visitor.h"
-
-namespace Msp {
-namespace GL {
-namespace SL {
-
-/** Evaluates an expression. Only expressions consisting entirely of compile-
-time constants can be evaluated. */
-class ExpressionEvaluator: public NodeVisitor
-{
-public:
- typedef std::map<VariableDeclaration *, Expression *> ValueMap;
-
-private:
- const ValueMap *variable_values;
- float r_result;
- bool r_result_valid;
-
-public:
- ExpressionEvaluator();
- ExpressionEvaluator(const ValueMap &);
-
- float get_result() const { return r_result; }
- bool is_result_valid() const { return r_result_valid; }
-
- using NodeVisitor::visit;
- virtual void visit(Literal &);
- virtual void visit(VariableReference &);
- virtual void visit(UnaryExpression &);
- virtual void visit(BinaryExpression &);
-};
-
-} // namespace SL
-} // namespace GL
-} // namespace Msp
-
-#endif