X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Freflect.h;h=308d7c8038c5d59c149df472f374226110adecd3;hb=b6c4e1a794276ca343c0c9bb0a300e729ca41931;hp=d48fbec156506f31fda79fd86aa676b8257a128d;hpb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;p=libs%2Fgl.git diff --git a/source/glsl/reflect.h b/source/glsl/reflect.h index d48fbec1..308d7c80 100644 --- a/source/glsl/reflect.h +++ b/source/glsl/reflect.h @@ -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 assigned_variables; + +public: + std::set 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