X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Freflect.h;h=7c4d26c47fe6714321d2d50588e877053c3bcb5b;hp=d48fbec156506f31fda79fd86aa676b8257a128d;hb=76cc18518fc8b0b4fa11fda153e7d9b3899ed112;hpb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14 diff --git a/source/glsl/reflect.h b/source/glsl/reflect.h index d48fbec1..7c4d26c4 100644 --- a/source/glsl/reflect.h +++ b/source/glsl/reflect.h @@ -104,6 +104,23 @@ private: virtual void visit(FunctionDeclaration &); }; +class AssignmentCollector: private TraversingVisitor +{ +private: + bool assignment_target = false; + std::set assigned_variables; + +public: + std::set apply(Node &); + +private: + virtual void visit(VariableReference &); + virtual void visit(InterfaceBlockReference &); + virtual void visit(UnaryExpression &); + virtual void visit(BinaryExpression &); + virtual void visit(Assignment &); +}; + } // namespace SL } // namespace GL } // namespace Msp