]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/syntax.cpp
Implement the ternary operator in GLSL
[libs/gl.git] / source / glsl / syntax.cpp
index cad7c9f4838962740c2036a6c91ab25517032e24..11a099b5ad3175e94b82f8a75b2877ec5e07c5a9 100644 (file)
@@ -40,8 +40,8 @@ const Operator Operator::operators[] =
        { "&&", 12, BINARY, ASSOCIATIVE },
        { "^^", 13, BINARY, ASSOCIATIVE },
        { "||", 14, BINARY, ASSOCIATIVE },
-       { "?", 15, BINARY, RIGHT_TO_LEFT },
-       { ":", 15, BINARY, RIGHT_TO_LEFT },
+       { "?", 15, TERNARY, RIGHT_TO_LEFT },
+       { ":", 15, TERNARY, RIGHT_TO_LEFT },
        { "=", 16, BINARY, RIGHT_TO_LEFT },
        { "+=", 16, BINARY, RIGHT_TO_LEFT },
        { "-=", 16, BINARY, RIGHT_TO_LEFT },
@@ -218,6 +218,12 @@ bool Assignment::Target::operator<(const Target &other) const
 }
 
 
+void TernaryExpression::visit(NodeVisitor &visitor)
+{
+       visitor.visit(*this);
+}
+
+
 FunctionCall::FunctionCall():
        constructor(false),
        declaration(0)