1// 2// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved. 3// Use of this source code is governed by a BSD-style license that can be 4// found in the LICENSE file. 5// 6 7#ifndef COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_OUTPUT_H 8#define COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_OUTPUT_H 9 10#include "compiler/translator/depgraph/DependencyGraph.h" 11#include "compiler/translator/InfoSink.h" 12 13class TDependencyGraphOutput : public TDependencyGraphTraverser { 14public: 15 TDependencyGraphOutput(TInfoSinkBase& sink) : mSink(sink) {} 16 virtual void visitSymbol(TGraphSymbol* symbol); 17 virtual void visitArgument(TGraphArgument* parameter); 18 virtual void visitFunctionCall(TGraphFunctionCall* functionCall); 19 virtual void visitSelection(TGraphSelection* selection); 20 virtual void visitLoop(TGraphLoop* loop); 21 virtual void visitLogicalOp(TGraphLogicalOp* logicalOp); 22 23 void outputAllSpanningTrees(TDependencyGraph& graph); 24private: 25 void outputIndentation(); 26 27 TInfoSinkBase& mSink; 28}; 29 30#endif // COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_OUTPUT_H 31