1 #ifndef MSP_GL_SL_DEBUG_H_
2 #define MSP_GL_SL_DEBUG_H_
11 class DumpTree: private TraversingVisitor
17 STRAIGHT = 0x2502, // │
19 BRANCH_LAST = 0x2514, // └
23 std::map<const Node *, unsigned> node_labels;
24 std::string formatted;
25 std::vector<TreeChars> tree;
28 const std::string &apply(Stage &);
31 void append(const std::string &);
35 void annotated_branch(const std::string &, Node &);
36 unsigned get_label(const Node &);
39 typename T::const_iterator increment(typename T::const_iterator &, const T &);
41 virtual void visit(Block &);
42 virtual void visit(Literal &);
43 virtual void visit(ParenthesizedExpression &);
44 virtual void visit(VariableReference &);
45 virtual void visit(MemberAccess &);
46 virtual void visit(UnaryExpression &);
47 virtual void visit(BinaryExpression &);
48 virtual void visit(Assignment &);
49 virtual void visit(FunctionCall &);
50 virtual void visit(ExpressionStatement &);
51 virtual void visit(Import &);
52 virtual void visit(Precision &);
53 virtual void visit(Layout &);
54 virtual void visit(InterfaceLayout &);
55 virtual void visit(StructDeclaration &);
56 virtual void visit(VariableDeclaration &);
57 virtual void visit(InterfaceBlock &);
58 virtual void visit(FunctionDeclaration &);
59 virtual void visit(Conditional &);
60 virtual void visit(Iteration &);
61 virtual void visit(Passthrough &);
62 virtual void visit(Return &);
63 virtual void visit(Jump &);