• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
TDependencyGraphOutput(TInfoSinkBase & sink)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