4 #include "position.hpp"
5 #include "operation.hpp"
11 class Inspect : public Operation_CRTP<void, Inspect>, public Emitter {
13 // import all the class-specific methods and override as desired
14 using Operation_CRTP<void, Inspect>::operator();
16 void fallback_impl(AST_Node_Ptr n);
24 virtual void operator()(Block_Ptr);
25 virtual void operator()(Ruleset_Ptr);
26 virtual void operator()(Bubble_Ptr);
27 virtual void operator()(Supports_Block_Ptr);
28 virtual void operator()(Media_Block_Ptr);
29 virtual void operator()(At_Root_Block_Ptr);
30 virtual void operator()(Directive_Ptr);
31 virtual void operator()(Keyframe_Rule_Ptr);
32 virtual void operator()(Declaration_Ptr);
33 virtual void operator()(Assignment_Ptr);
34 virtual void operator()(Import_Ptr);
35 virtual void operator()(Import_Stub_Ptr);
36 virtual void operator()(Warning_Ptr);
37 virtual void operator()(Error_Ptr);
38 virtual void operator()(Debug_Ptr);
39 virtual void operator()(Comment_Ptr);
40 virtual void operator()(If_Ptr);
41 virtual void operator()(For_Ptr);
42 virtual void operator()(Each_Ptr);
43 virtual void operator()(While_Ptr);
44 virtual void operator()(Return_Ptr);
45 virtual void operator()(Extension_Ptr);
46 virtual void operator()(Definition_Ptr);
47 virtual void operator()(Mixin_Call_Ptr);
48 virtual void operator()(Content_Ptr);
50 virtual void operator()(Map_Ptr);
51 virtual void operator()(List_Ptr);
52 virtual void operator()(Binary_Expression_Ptr);
53 virtual void operator()(Unary_Expression_Ptr);
54 virtual void operator()(Function_Call_Ptr);
55 virtual void operator()(Function_Call_Schema_Ptr);
56 // virtual void operator()(Custom_Warning_Ptr);
57 // virtual void operator()(Custom_Error_Ptr);
58 virtual void operator()(Variable_Ptr);
59 virtual void operator()(Textual_Ptr);
60 virtual void operator()(Number_Ptr);
61 virtual void operator()(Color_Ptr);
62 virtual void operator()(Boolean_Ptr);
63 virtual void operator()(String_Schema_Ptr);
64 virtual void operator()(String_Constant_Ptr);
65 virtual void operator()(String_Quoted_Ptr);
66 virtual void operator()(Custom_Error_Ptr);
67 virtual void operator()(Custom_Warning_Ptr);
68 virtual void operator()(Supports_Operator_Ptr);
69 virtual void operator()(Supports_Negation_Ptr);
70 virtual void operator()(Supports_Declaration_Ptr);
71 virtual void operator()(Supports_Interpolation_Ptr);
72 virtual void operator()(Media_Query_Ptr);
73 virtual void operator()(Media_Query_Expression_Ptr);
74 virtual void operator()(At_Root_Query_Ptr);
75 virtual void operator()(Null_Ptr);
76 virtual void operator()(Parent_Selector_Ptr p);
77 // parameters and arguments
78 virtual void operator()(Parameter_Ptr);
79 virtual void operator()(Parameters_Ptr);
80 virtual void operator()(Argument_Ptr);
81 virtual void operator()(Arguments_Ptr);
83 virtual void operator()(Selector_Schema_Ptr);
84 virtual void operator()(Placeholder_Selector_Ptr);
85 virtual void operator()(Element_Selector_Ptr);
86 virtual void operator()(Class_Selector_Ptr);
87 virtual void operator()(Id_Selector_Ptr);
88 virtual void operator()(Attribute_Selector_Ptr);
89 virtual void operator()(Pseudo_Selector_Ptr);
90 virtual void operator()(Wrapped_Selector_Ptr);
91 virtual void operator()(Compound_Selector_Ptr);
92 virtual void operator()(Complex_Selector_Ptr);
93 virtual void operator()(Selector_List_Ptr);
95 virtual std::string lbracket(List_Ptr);
96 virtual std::string rbracket(List_Ptr);
98 // template <typename U>
99 // void fallback(U x) { fallback_impl(reinterpret_cast<AST_Node_Ptr>(x)); }