1 #ifndef MSP_GL_SL_DEBUG_H_
2 #define MSP_GL_SL_DEBUG_H_
11 /** Creates a textual representation of the syntax tree. The result is encoded
13 class DumpTree: private TraversingVisitor
19 STRAIGHT = 0x2502, // │
21 BRANCH_LAST = 0x2514, // └
25 std::map<const Node *, unsigned> node_labels;
26 std::string formatted;
27 std::vector<TreeChars> tree;
30 const std::string &apply(Stage &);
33 void append(const std::string &);
37 void annotated_branch(const std::string &, Node &);
38 unsigned get_label(const Node &);
41 typename T::const_iterator increment(typename T::const_iterator &, const T &);
43 virtual void visit(Block &);
44 virtual void visit(Literal &);
45 virtual void visit(ParenthesizedExpression &);
46 virtual void visit(VariableReference &);
47 virtual void visit(InterfaceBlockReference &);
48 virtual void visit(MemberAccess &);
49 virtual void visit(UnaryExpression &);
50 virtual void visit(BinaryExpression &);
51 virtual void visit(Assignment &);
52 virtual void visit(FunctionCall &);
53 virtual void visit(ExpressionStatement &);
54 virtual void visit(Import &);
55 virtual void visit(Precision &);
56 virtual void visit(Layout &);
57 virtual void visit(InterfaceLayout &);
58 virtual void visit(StructDeclaration &);
59 virtual void visit(VariableDeclaration &);
60 virtual void visit(InterfaceBlock &);
61 virtual void visit(FunctionDeclaration &);
62 virtual void visit(Conditional &);
63 virtual void visit(Iteration &);
64 virtual void visit(Passthrough &);
65 virtual void visit(Return &);
66 virtual void visit(Jump &);