Home | History | Annotate | Download | only in depgraph
      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/depgraph/DependencyGraph.h"
     11 #include "compiler/InfoSink.h"
     12 
     13 class TDependencyGraphOutput : public TDependencyGraphTraverser {
     14 public:
     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);
     24 private:
     25     void outputIndentation();
     26 
     27     TInfoSinkBase& mSink;
     28 };
     29 
     30 #endif  // COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_OUTPUT_H
     31