@@ -22,6 +22,40 @@ namespace Sass {
22
22
// ///////////////////////////////////////////////////////////////////////
23
23
// ///////////////////////////////////////////////////////////////////////
24
24
25
+ void AST_Node::update_pstate (const ParserState& pstate)
26
+ {
27
+ pstate_.offset += pstate - pstate_ + pstate.offset ;
28
+ }
29
+
30
+ const std::string AST_Node::to_string (Sass_Inspect_Options opt) const
31
+ {
32
+ Sass_Output_Options out (opt);
33
+ Emitter emitter (out);
34
+ Inspect i (emitter);
35
+ i.in_declaration = true ;
36
+ // ToDo: inspect should be const
37
+ const_cast <AST_Node_Ptr>(this )->perform (&i);
38
+ return i.get_buffer ();
39
+ }
40
+
41
+ const std::string AST_Node::to_string () const
42
+ {
43
+ return to_string ({ NESTED, 5 });
44
+ }
45
+
46
+ // ///////////////////////////////////////////////////////////////////////
47
+ // ///////////////////////////////////////////////////////////////////////
48
+
49
+ Expression_Obj Hashed::at (Expression_Obj k) const
50
+ {
51
+ if (elements_.count (k))
52
+ { return elements_.at (k); }
53
+ else { return {}; }
54
+ }
55
+
56
+ // ///////////////////////////////////////////////////////////////////////
57
+ // ///////////////////////////////////////////////////////////////////////
58
+
25
59
Statement::Statement (ParserState pstate, Type st, size_t t)
26
60
: AST_Node(pstate), statement_type_(st), tabs_(t), group_end_(false )
27
61
{ }
@@ -143,6 +177,14 @@ namespace Sass {
143
177
: Has_Block(ptr), media_queries_(ptr->media_queries_)
144
178
{ statement_type (MEDIA); }
145
179
180
+ bool Media_Block::is_invisible () const {
181
+ for (size_t i = 0 , L = block ()->length (); i < L; ++i) {
182
+ Statement_Obj stm = block ()->at (i);
183
+ if (!stm->is_invisible ()) return false ;
184
+ }
185
+ return true ;
186
+ }
187
+
146
188
bool Media_Block::bubbles ()
147
189
{
148
190
return true ;
@@ -767,18 +809,6 @@ namespace Sass {
767
809
// ///////////////////////////////////////////////////////////////////////
768
810
// ///////////////////////////////////////////////////////////////////////
769
811
770
- Thunk::Thunk (ParserState pstate, Expression_Obj exp, Env* env)
771
- : Expression(pstate), expression_(exp), environment_(env)
772
- { }
773
- Thunk::Thunk (const Thunk* ptr)
774
- : Expression(ptr->pstate_),
775
- expression_(ptr->expression_),
776
- environment_(ptr->environment_)
777
- { }
778
-
779
- // ///////////////////////////////////////////////////////////////////////
780
- // ///////////////////////////////////////////////////////////////////////
781
-
782
812
Parameter::Parameter (ParserState pstate, std::string n, Expression_Obj def, bool rest)
783
813
: AST_Node(pstate), name_(n), default_value_(def), is_rest_parameter_(rest)
784
814
{ }
@@ -832,80 +862,6 @@ namespace Sass {
832
862
// ///////////////////////////////////////////////////////////////////////
833
863
// ///////////////////////////////////////////////////////////////////////
834
864
835
- // ///////////////////////////////////////////////////////////////////////
836
- // ///////////////////////////////////////////////////////////////////////
837
-
838
- // ///////////////////////////////////////////////////////////////////////
839
- // ///////////////////////////////////////////////////////////////////////
840
-
841
- // ///////////////////////////////////////////////////////////////////////
842
- // ///////////////////////////////////////////////////////////////////////
843
-
844
-
845
- void AST_Node::update_pstate (const ParserState& pstate)
846
- {
847
- pstate_.offset += pstate - pstate_ + pstate.offset ;
848
- }
849
-
850
- bool Media_Block::is_invisible () const {
851
- for (size_t i = 0 , L = block ()->length (); i < L; ++i) {
852
- Statement_Obj stm = block ()->at (i);
853
- if (!stm->is_invisible ()) return false ;
854
- }
855
- return true ;
856
- }
857
-
858
- Expression_Obj Hashed::at (Expression_Obj k) const
859
- {
860
- if (elements_.count (k))
861
- { return elements_.at (k); }
862
- else { return {}; }
863
- }
864
-
865
- bool Binary_Expression::is_left_interpolant (void ) const
866
- {
867
- return is_interpolant () || (left () && left ()->is_left_interpolant ());
868
- }
869
- bool Binary_Expression::is_right_interpolant (void ) const
870
- {
871
- return is_interpolant () || (right () && right ()->is_right_interpolant ());
872
- }
873
-
874
- const std::string AST_Node::to_string (Sass_Inspect_Options opt) const
875
- {
876
- Sass_Output_Options out (opt);
877
- Emitter emitter (out);
878
- Inspect i (emitter);
879
- i.in_declaration = true ;
880
- // ToDo: inspect should be const
881
- const_cast <AST_Node_Ptr>(this )->perform (&i);
882
- return i.get_buffer ();
883
- }
884
-
885
- const std::string AST_Node::to_string () const
886
- {
887
- return to_string ({ NESTED, 5 });
888
- }
889
-
890
- // ////////////////////////////////////////////////////////////////////////////////////////
891
- // Additional method on Lists to retrieve values directly or from an encompassed Argument.
892
- // ////////////////////////////////////////////////////////////////////////////////////////
893
- Expression_Obj List::value_at_index (size_t i) {
894
- Expression_Obj obj = this ->at (i);
895
- if (is_arglist_) {
896
- if (Argument_Ptr arg = Cast<Argument>(obj)) {
897
- return arg->value ();
898
- } else {
899
- return obj;
900
- }
901
- } else {
902
- return obj;
903
- }
904
- }
905
-
906
- // ///////////////////////////////////////////////////////////////////////
907
- // ///////////////////////////////////////////////////////////////////////
908
-
909
865
IMPLEMENT_AST_OPERATORS (Ruleset);
910
866
IMPLEMENT_AST_OPERATORS (Media_Block);
911
867
IMPLEMENT_AST_OPERATORS (Import);
0 commit comments