]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/evaluate.cpp
Rename members of visitors to indicate which are "return values"
[libs/gl.git] / source / glsl / evaluate.cpp
index 4bbdb2f60f436528b733905d604bad4100780497..f290002b61a14c0fefb15b92398a821c7ec7f529 100644 (file)
@@ -7,25 +7,25 @@ namespace SL {
 
 ExpressionEvaluator::ExpressionEvaluator():
        variable_values(0),
-       result(0.0f),
-       result_valid(false)
+       r_result(0.0f),
+       r_result_valid(false)
 { }
 
 ExpressionEvaluator::ExpressionEvaluator(const ValueMap &v):
        variable_values(&v),
-       result(0.0f),
-       result_valid(false)
+       r_result(0.0f),
+       r_result_valid(false)
 { }
 
 void ExpressionEvaluator::visit(Literal &literal)
 {
        if(literal.token=="true")
-               result = 1.0f;
+               r_result = 1.0f;
        else if(literal.token=="false")
-               result = 0.0f;
+               r_result = 0.0f;
        else
-               result = lexical_cast<float>(literal.token);
-       result_valid = true;
+               r_result = lexical_cast<float>(literal.token);
+       r_result_valid = true;
 }
 
 void ExpressionEvaluator::visit(ParenthesizedExpression &parexp)
@@ -50,48 +50,49 @@ void ExpressionEvaluator::visit(VariableReference &var)
 
 void ExpressionEvaluator::visit(UnaryExpression &unary)
 {
-       result_valid = false;
+       r_result_valid = false;
        unary.expression->visit(*this);
-       if(!result_valid)
+       if(!r_result_valid)
                return;
 
-       if(unary.oper=="!")
-               result = !result;
+       if(unary.oper->token[0]=='!')
+               r_result = !r_result;
        else
-               result_valid = false;
+               r_result_valid = false;
 }
 
 void ExpressionEvaluator::visit(BinaryExpression &binary)
 {
-       result_valid = false;
+       r_result_valid = false;
        binary.left->visit(*this);
-       if(!result_valid)
+       if(!r_result_valid)
                return;
 
-       float left_result = result;
-       result_valid = false;
+       float left_result = r_result;
+       r_result_valid = false;
        binary.right->visit(*this);
-       if(!result_valid)
+       if(!r_result_valid)
                return;
 
-       if(binary.oper=="<")
-               result = (left_result<result);
-       else if(binary.oper=="<=")
-               result = (left_result<=result);
-       else if(binary.oper==">")
-               result = (left_result>result);
-       else if(binary.oper==">=")
-               result = (left_result>=result);
-       else if(binary.oper=="==")
-               result = (left_result==result);
-       else if(binary.oper=="!=")
-               result = (left_result!=result);
-       else if(binary.oper=="&&")
-               result = (left_result && result);
-       else if(binary.oper=="||")
-               result = (left_result || result);
+       std::string oper = binary.oper->token;
+       if(oper=="<")
+               r_result = (left_result<r_result);
+       else if(oper=="<=")
+               r_result = (left_result<=r_result);
+       else if(oper==">")
+               r_result = (left_result>r_result);
+       else if(oper==">=")
+               r_result = (left_result>=r_result);
+       else if(oper=="==")
+               r_result = (left_result==r_result);
+       else if(oper=="!=")
+               r_result = (left_result!=r_result);
+       else if(oper=="&&")
+               r_result = (left_result && r_result);
+       else if(oper=="||")
+               r_result = (left_result || r_result);
        else
-               result_valid = false;
+               r_result_valid = false;
 }
 
 } // namespace SL