166ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com// 266ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. 366ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com// Use of this source code is governed by a BSD-style license that can be 466ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com// found in the LICENSE file. 566ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com// 666ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com 766ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com#ifndef COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_OUTPUT_H 866ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com#define COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_OUTPUT_H 966ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com 10dcefb75e81f3eec28fb1d2d3b3847682659e7378Geoff Lang#include "compiler/translator/depgraph/DependencyGraph.h" 11dcefb75e81f3eec28fb1d2d3b3847682659e7378Geoff Lang#include "compiler/translator/InfoSink.h" 1266ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com 1366ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.comclass TDependencyGraphOutput : public TDependencyGraphTraverser { 1466ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.compublic: 1566ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com TDependencyGraphOutput(TInfoSinkBase& sink) : mSink(sink) {} 1666ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com virtual void visitSymbol(TGraphSymbol* symbol); 1766ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com virtual void visitArgument(TGraphArgument* parameter); 1866ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com virtual void visitFunctionCall(TGraphFunctionCall* functionCall); 1966ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com virtual void visitSelection(TGraphSelection* selection); 2066ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com virtual void visitLoop(TGraphLoop* loop); 2166ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com virtual void visitLogicalOp(TGraphLogicalOp* logicalOp); 2266ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com 2366ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com void outputAllSpanningTrees(TDependencyGraph& graph); 2466ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.comprivate: 2566ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com void outputIndentation(); 2666ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com 2766ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com TInfoSinkBase& mSink; 2866ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com}; 2966ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com 3066ebd0143ea40a9beb83eab5d86e24f52825b3famaxvujovic@gmail.com#endif // COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_OUTPUT_H 31