equal
deleted
inserted
replaced
39 |
39 |
40 |
40 |
41 |
41 |
42 |
42 |
43 |
43 |
44 #include "../absyntax/visitor.hh" |
44 #include "../absyntax/absyntax.hh" |
45 |
45 |
46 |
46 |
47 |
47 class debug_c { |
48 class print_symbol_c: public fcall_visitor_c { |
|
49 public: |
48 public: |
50 static void print(symbol_c *symbol); |
49 static void print(symbol_c *symbol); |
51 |
50 static void print(const char *str); |
52 protected: |
|
53 void fcall(symbol_c *symbol); |
|
54 /* AST symbols with extra data have their own specialised methods for printing that data */ |
|
55 void *visit(il_instruction_c *symbol); |
|
56 |
51 |
57 private: |
52 /* print the AST from this point downwards */ |
58 static print_symbol_c *singleton; |
53 static void print_ast(symbol_c *root_symbol); |
59 |
|
60 void dump_symbol(symbol_c* symbol); |
|
61 }; |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 |
|
67 |
|
68 class print_ast_c: public fcall_iterator_visitor_c { |
|
69 public: |
|
70 static void print(symbol_c *symbol); |
|
71 |
|
72 protected: |
|
73 void prefix_fcall(symbol_c *symbol); |
|
74 void suffix_fcall(symbol_c *symbol); |
|
75 |
|
76 private: |
|
77 static print_ast_c *singleton; |
|
78 }; |
54 }; |
79 |
55 |
80 |
56 |
81 |
57 |
82 |
58 |
90 |
66 |
91 |
67 |
92 |
68 |
93 |
69 |
94 |
70 |
|
71 |
|
72 |