]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/debug.h
Assign a result type to all expressions
[libs/gl.git] / source / glsl / debug.h
index 9806d545ccbdb6def3ddf3030c28d79926d54e80..b2de993da648e39a06a8f8f93d03c112b596cd39 100644 (file)
@@ -8,6 +8,8 @@ namespace Msp {
 namespace GL {
 namespace SL {
 
+/** Creates a textual representation of the syntax tree.  The result is encoded
+as UTF-8. */
 class DumpTree: private TraversingVisitor
 {
 private:
@@ -34,6 +36,7 @@ private:
        void end_sub();
        void annotated_branch(const std::string &, Node &);
        unsigned get_label(const Node &);
+       std::string format_type(TypeDeclaration *);
 
        template<typename T>
        typename T::const_iterator increment(typename T::const_iterator &, const T &);
@@ -42,6 +45,7 @@ private:
        virtual void visit(Literal &);
        virtual void visit(ParenthesizedExpression &);
        virtual void visit(VariableReference &);
+       virtual void visit(InterfaceBlockReference &);
        virtual void visit(MemberAccess &);
        virtual void visit(UnaryExpression &);
        virtual void visit(BinaryExpression &);
@@ -52,15 +56,17 @@ private:
        virtual void visit(Precision &);
        virtual void visit(Layout &);
        virtual void visit(InterfaceLayout &);
+       virtual void visit(BasicTypeDeclaration &);
+       virtual void visit(ImageTypeDeclaration &);
        virtual void visit(StructDeclaration &);
        virtual void visit(VariableDeclaration &);
        virtual void visit(InterfaceBlock &);
        virtual void visit(FunctionDeclaration &);
        virtual void visit(Conditional &);
        virtual void visit(Iteration &);
+       virtual void visit(Passthrough &);
        virtual void visit(Return &);
        virtual void visit(Jump &);
-       using TraversingVisitor::visit;
 };
 
 } // namespace SL