]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/debug.cpp
Rename InterfaceBlock::name to block_name for clarity
[libs/gl.git] / source / glsl / debug.cpp
index ef9e3e0eafc325a92f3bf389329c3efb3563b738..99d6edaaa0ab7b7f242e23c0ecc9fc2c04be47df 100644 (file)
@@ -21,7 +21,7 @@ const std::string &DumpTree::apply(Stage &stage)
        for(std::map<string, InterfaceBlock *>::const_iterator i=stage.interface_blocks.begin(); i!=stage.interface_blocks.end(); ++i)
                if(seen_interfaces.insert(i->second).second)
                {
-                       string text = format("Interface block: %%%d %s %s", get_label(*i->second), i->second->interface, i->second->name);
+                       string text = format("Interface block: %%%d %s %s", get_label(*i->second), i->second->interface, i->second->block_name);
                        if(!i->second->instance_name.empty())
                                text += format(" %s", i->second->instance_name);
                        append(text);
@@ -146,11 +146,6 @@ void DumpTree::visit(Literal &literal)
        append(format("Literal: %s -> %s", literal.token, format_type(literal.type)));
 }
 
-void DumpTree::visit(ParenthesizedExpression &parexpr)
-{
-       annotated_branch(format("(expr) -> %s", format_type(parexpr.type)), *parexpr.expression);
-}
-
 void DumpTree::visit(VariableReference &var)
 {
        string text;
@@ -196,7 +191,7 @@ void DumpTree::visit(UnaryExpression &unary)
 
 void DumpTree::visit(BinaryExpression &binary)
 {
-       append(format("Binary: %s -> %s", (binary.oper->token[0]=='[' ? "[]" : binary.oper->token), format_type(binary.type)));
+       append(format("Binary: %s%s -> %s", binary.oper->token, binary.oper->token2, format_type(binary.type)));
        begin_sub();
        binary.left->visit(*this);
        last_branch();
@@ -240,6 +235,17 @@ void DumpTree::visit(Assignment &assign)
        end_sub();
 }
 
+void DumpTree::visit(TernaryExpression &ternary)
+{
+       append(format("Ternary: %s%s -> %s", ternary.oper->token, ternary.oper->token2, format_type(ternary.type)));
+       begin_sub();
+       ternary.condition->visit(*this);
+       ternary.true_expr->visit(*this);
+       last_branch();
+       ternary.false_expr->visit(*this);
+       end_sub();
+}
+
 void DumpTree::visit(FunctionCall &call)
 {
        string head = "Function call: ";
@@ -366,34 +372,34 @@ void DumpTree::visit(VariableDeclaration &var)
        append_subtree(branches);
 }
 
-void DumpTree::visit(InterfaceBlock &block)
+void DumpTree::visit(InterfaceBlock &iface)
 {
        string head;
-       if(!block.instance_name.empty())
-               head += format("%%%d ", get_label(block));
-       head += format("%s %s", block.interface, block.name);
-       if(!block.instance_name.empty())
-               head += format(" %s", block.instance_name);
-       if(block.array)
+       if(!iface.instance_name.empty())
+               head += format("%%%d ", get_label(iface));
+       head += format("%s %s", iface.interface, iface.block_name);
+       if(!iface.instance_name.empty())
+               head += format(" %s", iface.instance_name);
+       if(iface.array)
                head += "[]";
-       if(block.source==BUILTIN_SOURCE)
+       if(iface.source==BUILTIN_SOURCE)
                head += " (builtin)";
-       else if(block.linked_block)
+       else if(iface.linked_block)
                head += " (linked)";
        append(head);
 
        begin_sub();
        last_branch();
-       if(block.type_declaration)
-               append(format("Type: %%%d %s", get_label(*block.type_declaration), block.type_declaration->name));
-       else if(block.members)
-               block.members->visit(*this);
+       if(iface.type_declaration)
+               append(format("Type: %%%d %s", get_label(*iface.type_declaration), iface.type_declaration->name));
+       else if(iface.members)
+               iface.members->visit(*this);
        end_sub();
 }
 
 void DumpTree::visit(FunctionDeclaration &func)
 {
-       string text = format("%%%d %s %s", get_label(func), func.return_type, func.name);
+       string text = format("%%%d %s %s%s", get_label(func), func.return_type, func.name, (func.signature.empty() ? "(?)" : func.signature));
        if(func.source==BUILTIN_SOURCE)
                text += " (builtin)";
        else if(!func.definition)
@@ -401,6 +407,8 @@ void DumpTree::visit(FunctionDeclaration &func)
        append(text);
 
        begin_sub();
+       if(func.return_type_declaration)
+               append(format("Return type: %%%d %s", get_label(*func.return_type_declaration), func.return_type_declaration->name));
        for(NodeArray<VariableDeclaration>::const_iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i)
                (*i)->visit(*this);
        last_branch();