]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/reflect.h
Check the flat qualifier from the correct member
[libs/gl.git] / source / glsl / reflect.h
index d48fbec156506f31fda79fd86aa676b8257a128d..308d7c8038c5d59c149df472f374226110adecd3 100644 (file)
@@ -35,6 +35,7 @@ private:
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
        virtual void visit(TernaryExpression &);
+       virtual void visit(FunctionCall &);
        virtual void visit(BasicTypeDeclaration &);
        virtual void visit(ImageTypeDeclaration &);
        virtual void visit(StructDeclaration &);
@@ -98,12 +99,27 @@ public:
 
 private:
        virtual void visit(VariableReference &);
-       virtual void visit(InterfaceBlockReference &);
        virtual void visit(FunctionCall &);
        virtual void visit(VariableDeclaration &);
        virtual void visit(FunctionDeclaration &);
 };
 
+class AssignmentCollector: private TraversingVisitor
+{
+private:
+       bool assignment_target = false;
+       std::set<Node *> assigned_variables;
+
+public:
+       std::set<Node *> apply(Node &);
+
+private:
+       virtual void visit(VariableReference &);
+       virtual void visit(UnaryExpression &);
+       virtual void visit(BinaryExpression &);
+       virtual void visit(Assignment &);
+};
+
 } // namespace SL
 } // namespace GL
 } // namespace Msp