Initial commit
[yaffs-website] / node_modules / node-sass / src / libsass / src / inspect.hpp
1 #ifndef SASS_INSPECT_H
2 #define SASS_INSPECT_H
3
4 #include "position.hpp"
5 #include "operation.hpp"
6 #include "emitter.hpp"
7
8 namespace Sass {
9   class Context;
10
11   class Inspect : public Operation_CRTP<void, Inspect>, public Emitter {
12   protected:
13     // import all the class-specific methods and override as desired
14     using Operation_CRTP<void, Inspect>::operator();
15
16     void fallback_impl(AST_Node_Ptr n);
17
18   public:
19
20     Inspect(Emitter emi);
21     virtual ~Inspect();
22
23     // statements
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);
49     // expressions
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);
82     // selectors
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);
94
95     virtual std::string lbracket(List_Ptr);
96     virtual std::string rbracket(List_Ptr);
97
98     // template <typename U>
99     // void fallback(U x) { fallback_impl(reinterpret_cast<AST_Node_Ptr>(x)); }
100   };
101
102 }
103 #endif