sassc 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +5 -0
  4. data/ext/libsass/VERSION +1 -1
  5. data/ext/libsass/include/sass/context.h +3 -0
  6. data/ext/libsass/src/MurmurHash2.hpp +91 -0
  7. data/ext/libsass/src/ast.cpp +117 -117
  8. data/ext/libsass/src/ast.hpp +160 -162
  9. data/ext/libsass/src/ast_def_macros.hpp +10 -10
  10. data/ext/libsass/src/ast_fwd_decl.cpp +2 -2
  11. data/ext/libsass/src/ast_fwd_decl.hpp +61 -52
  12. data/ext/libsass/src/ast_helpers.hpp +5 -5
  13. data/ext/libsass/src/ast_sel_cmp.cpp +18 -18
  14. data/ext/libsass/src/ast_sel_super.cpp +52 -52
  15. data/ext/libsass/src/ast_sel_unify.cpp +16 -16
  16. data/ext/libsass/src/ast_sel_weave.cpp +62 -62
  17. data/ext/libsass/src/ast_selectors.cpp +87 -77
  18. data/ext/libsass/src/ast_selectors.hpp +72 -62
  19. data/ext/libsass/src/ast_supports.cpp +35 -35
  20. data/ext/libsass/src/ast_supports.hpp +29 -29
  21. data/ext/libsass/src/ast_values.cpp +58 -58
  22. data/ext/libsass/src/ast_values.hpp +75 -75
  23. data/ext/libsass/src/backtrace.cpp +9 -9
  24. data/ext/libsass/src/backtrace.hpp +5 -5
  25. data/ext/libsass/src/base64vlq.cpp +2 -2
  26. data/ext/libsass/src/base64vlq.hpp +1 -1
  27. data/ext/libsass/src/bind.cpp +17 -17
  28. data/ext/libsass/src/bind.hpp +1 -1
  29. data/ext/libsass/src/c2ast.cpp +3 -3
  30. data/ext/libsass/src/c2ast.hpp +1 -1
  31. data/ext/libsass/src/check_nesting.cpp +36 -36
  32. data/ext/libsass/src/check_nesting.hpp +2 -2
  33. data/ext/libsass/src/color_maps.cpp +5 -5
  34. data/ext/libsass/src/color_maps.hpp +1 -1
  35. data/ext/libsass/src/context.cpp +63 -60
  36. data/ext/libsass/src/context.hpp +33 -33
  37. data/ext/libsass/src/cssize.cpp +30 -29
  38. data/ext/libsass/src/cssize.hpp +13 -13
  39. data/ext/libsass/src/dart_helpers.hpp +5 -5
  40. data/ext/libsass/src/debugger.hpp +127 -128
  41. data/ext/libsass/src/emitter.cpp +12 -12
  42. data/ext/libsass/src/emitter.hpp +10 -10
  43. data/ext/libsass/src/environment.cpp +27 -27
  44. data/ext/libsass/src/environment.hpp +24 -24
  45. data/ext/libsass/src/error_handling.cpp +42 -42
  46. data/ext/libsass/src/error_handling.hpp +38 -50
  47. data/ext/libsass/src/eval.cpp +138 -132
  48. data/ext/libsass/src/eval.hpp +17 -17
  49. data/ext/libsass/src/eval_selectors.cpp +3 -3
  50. data/ext/libsass/src/expand.cpp +70 -64
  51. data/ext/libsass/src/expand.hpp +12 -12
  52. data/ext/libsass/src/extender.cpp +55 -53
  53. data/ext/libsass/src/extender.hpp +14 -14
  54. data/ext/libsass/src/file.cpp +66 -58
  55. data/ext/libsass/src/file.hpp +23 -25
  56. data/ext/libsass/src/fn_colors.cpp +9 -9
  57. data/ext/libsass/src/fn_lists.cpp +18 -18
  58. data/ext/libsass/src/fn_maps.cpp +3 -3
  59. data/ext/libsass/src/fn_miscs.cpp +15 -15
  60. data/ext/libsass/src/fn_numbers.cpp +7 -7
  61. data/ext/libsass/src/fn_selectors.cpp +8 -8
  62. data/ext/libsass/src/fn_strings.cpp +34 -22
  63. data/ext/libsass/src/fn_utils.cpp +29 -26
  64. data/ext/libsass/src/fn_utils.hpp +10 -10
  65. data/ext/libsass/src/inspect.cpp +35 -34
  66. data/ext/libsass/src/inspect.hpp +21 -21
  67. data/ext/libsass/src/lexer.cpp +3 -1
  68. data/ext/libsass/src/listize.cpp +2 -2
  69. data/ext/libsass/src/mapping.hpp +1 -0
  70. data/ext/libsass/src/memory.hpp +12 -0
  71. data/ext/libsass/src/memory/allocator.cpp +48 -0
  72. data/ext/libsass/src/memory/allocator.hpp +138 -0
  73. data/ext/libsass/src/memory/config.hpp +20 -0
  74. data/ext/libsass/src/memory/memory_pool.hpp +186 -0
  75. data/ext/libsass/src/memory/{SharedPtr.cpp → shared_ptr.cpp} +2 -2
  76. data/ext/libsass/src/memory/{SharedPtr.hpp → shared_ptr.hpp} +18 -6
  77. data/ext/libsass/src/operation.hpp +44 -44
  78. data/ext/libsass/src/operators.cpp +18 -18
  79. data/ext/libsass/src/operators.hpp +11 -11
  80. data/ext/libsass/src/ordered_map.hpp +18 -18
  81. data/ext/libsass/src/output.cpp +16 -16
  82. data/ext/libsass/src/output.hpp +5 -5
  83. data/ext/libsass/src/parser.cpp +327 -345
  84. data/ext/libsass/src/parser.hpp +77 -87
  85. data/ext/libsass/src/parser_selectors.cpp +6 -6
  86. data/ext/libsass/src/permutate.hpp +39 -15
  87. data/ext/libsass/src/plugins.cpp +7 -7
  88. data/ext/libsass/src/plugins.hpp +8 -8
  89. data/ext/libsass/src/position.cpp +7 -26
  90. data/ext/libsass/src/position.hpp +44 -21
  91. data/ext/libsass/src/remove_placeholders.cpp +4 -4
  92. data/ext/libsass/src/remove_placeholders.hpp +3 -3
  93. data/ext/libsass/src/sass.cpp +16 -15
  94. data/ext/libsass/src/sass.hpp +9 -5
  95. data/ext/libsass/src/sass_context.cpp +52 -34
  96. data/ext/libsass/src/sass_values.cpp +8 -10
  97. data/ext/libsass/src/settings.hpp +19 -0
  98. data/ext/libsass/src/source.cpp +69 -0
  99. data/ext/libsass/src/source.hpp +95 -0
  100. data/ext/libsass/src/source_data.hpp +32 -0
  101. data/ext/libsass/src/source_map.cpp +22 -18
  102. data/ext/libsass/src/source_map.hpp +12 -9
  103. data/ext/libsass/src/units.cpp +19 -19
  104. data/ext/libsass/src/units.hpp +8 -8
  105. data/ext/libsass/src/utf8_string.cpp +9 -10
  106. data/ext/libsass/src/utf8_string.hpp +7 -6
  107. data/ext/libsass/src/util.cpp +38 -38
  108. data/ext/libsass/src/util.hpp +18 -18
  109. data/ext/libsass/src/util_string.cpp +13 -13
  110. data/ext/libsass/src/util_string.hpp +9 -8
  111. data/ext/libsass/src/values.cpp +12 -12
  112. data/lib/sassc/native.rb +3 -5
  113. data/lib/sassc/version.rb +1 -1
  114. data/test/native_test.rb +4 -4
  115. metadata +14 -5
  116. data/lib/sassc/native/lib_c.rb +0 -21
@@ -15,25 +15,25 @@ namespace Sass {
15
15
  bool compoundIsSuperselector(
16
16
  const CompoundSelectorObj& compound1,
17
17
  const CompoundSelectorObj& compound2,
18
- const std::vector<SelectorComponentObj>& parents);
18
+ const sass::vector<SelectorComponentObj>& parents);
19
19
 
20
20
  bool complexIsParentSuperselector(
21
- const std::vector<SelectorComponentObj>& complex1,
22
- const std::vector<SelectorComponentObj>& complex2);
21
+ const sass::vector<SelectorComponentObj>& complex1,
22
+ const sass::vector<SelectorComponentObj>& complex2);
23
23
 
24
- std::vector<std::vector<SelectorComponentObj>> weave(
25
- const std::vector<std::vector<SelectorComponentObj>>& complexes);
24
+ sass::vector<sass::vector<SelectorComponentObj>> weave(
25
+ const sass::vector<sass::vector<SelectorComponentObj>>& complexes);
26
26
 
27
- std::vector<std::vector<SelectorComponentObj>> weaveParents(
28
- std::vector<SelectorComponentObj> parents1,
29
- std::vector<SelectorComponentObj> parents2);
27
+ sass::vector<sass::vector<SelectorComponentObj>> weaveParents(
28
+ sass::vector<SelectorComponentObj> parents1,
29
+ sass::vector<SelectorComponentObj> parents2);
30
30
 
31
- std::vector<SimpleSelectorObj> unifyCompound(
32
- const std::vector<SimpleSelectorObj>& compound1,
33
- const std::vector<SimpleSelectorObj>& compound2);
31
+ sass::vector<SimpleSelectorObj> unifyCompound(
32
+ const sass::vector<SimpleSelectorObj>& compound1,
33
+ const sass::vector<SimpleSelectorObj>& compound2);
34
34
 
35
- std::vector<std::vector<SelectorComponentObj>> unifyComplex(
36
- const std::vector<std::vector<SelectorComponentObj>>& complexes);
35
+ sass::vector<sass::vector<SelectorComponentObj>> unifyComplex(
36
+ const sass::vector<sass::vector<SelectorComponentObj>>& complexes);
37
37
 
38
38
  /////////////////////////////////////////
39
39
  // Abstract base class for CSS selectors.
@@ -42,7 +42,7 @@ namespace Sass {
42
42
  protected:
43
43
  mutable size_t hash_;
44
44
  public:
45
- Selector(ParserState pstate);
45
+ Selector(SourceSpan pstate);
46
46
  virtual ~Selector() = 0;
47
47
  size_t hash() const override = 0;
48
48
  virtual bool has_real_parent_ref() const;
@@ -68,7 +68,7 @@ namespace Sass {
68
68
  // store computed hash
69
69
  mutable size_t hash_;
70
70
  public:
71
- Selector_Schema(ParserState pstate, String_Obj c);
71
+ Selector_Schema(SourceSpan pstate, String_Obj c);
72
72
 
73
73
  bool has_real_parent_ref() const;
74
74
  // selector schema is not yet a final selector, so we do not
@@ -93,13 +93,15 @@ namespace Sass {
93
93
  PLACEHOLDER_SEL,
94
94
  };
95
95
  public:
96
- HASH_CONSTREF(std::string, ns)
97
- HASH_CONSTREF(std::string, name)
96
+ HASH_CONSTREF(sass::string, ns)
97
+ HASH_CONSTREF(sass::string, name)
98
98
  ADD_PROPERTY(Simple_Type, simple_type)
99
99
  HASH_PROPERTY(bool, has_ns)
100
100
  public:
101
- SimpleSelector(ParserState pstate, std::string n = "");
102
- virtual std::string ns_name() const;
101
+ SimpleSelector(SourceSpan pstate, sass::string n = "");
102
+ // ordering within parent (peudos go last)
103
+ virtual int getSortOrder() const = 0;
104
+ virtual sass::string ns_name() const;
103
105
  size_t hash() const override;
104
106
  virtual bool empty() const;
105
107
  // namespace compare functions
@@ -117,9 +119,9 @@ namespace Sass {
117
119
  virtual CompoundSelector* unifyWith(CompoundSelector*);
118
120
 
119
121
  /* helper function for syntax sugar */
120
- virtual Id_Selector* getIdSelector() { return NULL; }
121
- virtual Type_Selector* getTypeSelector() { return NULL; }
122
- virtual Pseudo_Selector* getPseudoSelector() { return NULL; }
122
+ virtual IDSelector* getIdSelector() { return NULL; }
123
+ virtual TypeSelector* getTypeSelector() { return NULL; }
124
+ virtual PseudoSelector* getPseudoSelector() { return NULL; }
123
125
 
124
126
  ComplexSelectorObj wrapInComplex();
125
127
  CompoundSelectorObj wrapInCompound();
@@ -144,77 +146,82 @@ namespace Sass {
144
146
  /////////////////////////////////////////////////////////////////////////
145
147
  // Placeholder selectors (e.g., "%foo") for use in extend-only selectors.
146
148
  /////////////////////////////////////////////////////////////////////////
147
- class Placeholder_Selector final : public SimpleSelector {
149
+ class PlaceholderSelector final : public SimpleSelector {
148
150
  public:
149
- Placeholder_Selector(ParserState pstate, std::string n);
151
+ PlaceholderSelector(SourceSpan pstate, sass::string n);
152
+ int getSortOrder() const override final { return 0; }
150
153
  bool isInvisible() const override { return true; }
151
154
  virtual unsigned long specificity() const override;
152
155
  virtual bool has_placeholder() override;
153
156
  bool operator==(const SimpleSelector& rhs) const override;
154
- ATTACH_CMP_OPERATIONS(Placeholder_Selector)
155
- ATTACH_AST_OPERATIONS(Placeholder_Selector)
157
+ ATTACH_CMP_OPERATIONS(PlaceholderSelector)
158
+ ATTACH_AST_OPERATIONS(PlaceholderSelector)
156
159
  ATTACH_CRTP_PERFORM_METHODS()
157
160
  };
158
161
 
159
162
  /////////////////////////////////////////////////////////////////////
160
163
  // Type selectors (and the universal selector) -- e.g., div, span, *.
161
164
  /////////////////////////////////////////////////////////////////////
162
- class Type_Selector final : public SimpleSelector {
165
+ class TypeSelector final : public SimpleSelector {
163
166
  public:
164
- Type_Selector(ParserState pstate, std::string n);
167
+ TypeSelector(SourceSpan pstate, sass::string n);
168
+ int getSortOrder() const override final { return 1; }
165
169
  virtual unsigned long specificity() const override;
166
170
  SimpleSelector* unifyWith(const SimpleSelector*);
167
171
  CompoundSelector* unifyWith(CompoundSelector*) override;
168
- Type_Selector* getTypeSelector() override { return this; }
172
+ TypeSelector* getTypeSelector() override { return this; }
169
173
  bool operator==(const SimpleSelector& rhs) const final override;
170
- ATTACH_CMP_OPERATIONS(Type_Selector)
171
- ATTACH_AST_OPERATIONS(Type_Selector)
174
+ ATTACH_CMP_OPERATIONS(TypeSelector)
175
+ ATTACH_AST_OPERATIONS(TypeSelector)
172
176
  ATTACH_CRTP_PERFORM_METHODS()
173
177
  };
174
178
 
175
179
  ////////////////////////////////////////////////
176
180
  // Class selectors -- i.e., .foo.
177
181
  ////////////////////////////////////////////////
178
- class Class_Selector final : public SimpleSelector {
182
+ class ClassSelector final : public SimpleSelector {
179
183
  public:
180
- Class_Selector(ParserState pstate, std::string n);
184
+ ClassSelector(SourceSpan pstate, sass::string n);
185
+ int getSortOrder() const override final { return 3; }
181
186
  virtual unsigned long specificity() const override;
182
187
  bool operator==(const SimpleSelector& rhs) const final override;
183
- ATTACH_CMP_OPERATIONS(Class_Selector)
184
- ATTACH_AST_OPERATIONS(Class_Selector)
188
+ ATTACH_CMP_OPERATIONS(ClassSelector)
189
+ ATTACH_AST_OPERATIONS(ClassSelector)
185
190
  ATTACH_CRTP_PERFORM_METHODS()
186
191
  };
187
192
 
188
193
  ////////////////////////////////////////////////
189
194
  // ID selectors -- i.e., #foo.
190
195
  ////////////////////////////////////////////////
191
- class Id_Selector final : public SimpleSelector {
196
+ class IDSelector final : public SimpleSelector {
192
197
  public:
193
- Id_Selector(ParserState pstate, std::string n);
198
+ IDSelector(SourceSpan pstate, sass::string n);
199
+ int getSortOrder() const override final { return 2; }
194
200
  virtual unsigned long specificity() const override;
195
201
  CompoundSelector* unifyWith(CompoundSelector*) override;
196
- Id_Selector* getIdSelector() final override { return this; }
202
+ IDSelector* getIdSelector() final override { return this; }
197
203
  bool operator==(const SimpleSelector& rhs) const final override;
198
- ATTACH_CMP_OPERATIONS(Id_Selector)
199
- ATTACH_AST_OPERATIONS(Id_Selector)
204
+ ATTACH_CMP_OPERATIONS(IDSelector)
205
+ ATTACH_AST_OPERATIONS(IDSelector)
200
206
  ATTACH_CRTP_PERFORM_METHODS()
201
207
  };
202
208
 
203
209
  ///////////////////////////////////////////////////
204
210
  // Attribute selectors -- e.g., [src*=".jpg"], etc.
205
211
  ///////////////////////////////////////////////////
206
- class Attribute_Selector final : public SimpleSelector {
207
- ADD_CONSTREF(std::string, matcher)
212
+ class AttributeSelector final : public SimpleSelector {
213
+ ADD_CONSTREF(sass::string, matcher)
208
214
  // this cannot be changed to obj atm!!!!!!????!!!!!!!
209
215
  ADD_PROPERTY(String_Obj, value) // might be interpolated
210
216
  ADD_PROPERTY(char, modifier);
211
217
  public:
212
- Attribute_Selector(ParserState pstate, std::string n, std::string m, String_Obj v, char o = 0);
218
+ AttributeSelector(SourceSpan pstate, sass::string n, sass::string m, String_Obj v, char o = 0);
219
+ int getSortOrder() const override final { return 4; }
213
220
  size_t hash() const override;
214
221
  virtual unsigned long specificity() const override;
215
222
  bool operator==(const SimpleSelector& rhs) const final override;
216
- ATTACH_CMP_OPERATIONS(Attribute_Selector)
217
- ATTACH_AST_OPERATIONS(Attribute_Selector)
223
+ ATTACH_CMP_OPERATIONS(AttributeSelector)
224
+ ATTACH_AST_OPERATIONS(AttributeSelector)
218
225
  ATTACH_CRTP_PERFORM_METHODS()
219
226
  };
220
227
 
@@ -222,14 +229,15 @@ namespace Sass {
222
229
  // Pseudo selectors -- e.g., :first-child, :nth-of-type(...), etc.
223
230
  //////////////////////////////////////////////////////////////////
224
231
  // Pseudo Selector cannot have any namespace?
225
- class Pseudo_Selector final : public SimpleSelector {
226
- ADD_PROPERTY(std::string, normalized)
232
+ class PseudoSelector final : public SimpleSelector {
233
+ ADD_PROPERTY(sass::string, normalized)
227
234
  ADD_PROPERTY(String_Obj, argument)
228
235
  ADD_PROPERTY(SelectorListObj, selector)
229
236
  ADD_PROPERTY(bool, isSyntacticClass)
230
237
  ADD_PROPERTY(bool, isClass)
231
238
  public:
232
- Pseudo_Selector(ParserState pstate, std::string n, bool element = false);
239
+ PseudoSelector(SourceSpan pstate, sass::string n, bool element = false);
240
+ int getSortOrder() const override final { return 5; }
233
241
  virtual bool is_pseudo_element() const override;
234
242
  size_t hash() const override;
235
243
 
@@ -246,13 +254,13 @@ namespace Sass {
246
254
  bool isSyntacticElement() const { return !isSyntacticClass(); }
247
255
 
248
256
  virtual unsigned long specificity() const override;
249
- Pseudo_Selector_Obj withSelector(SelectorListObj selector);
257
+ PseudoSelectorObj withSelector(SelectorListObj selector);
250
258
 
251
259
  CompoundSelector* unifyWith(CompoundSelector*) override;
252
- Pseudo_Selector* getPseudoSelector() final override { return this; }
260
+ PseudoSelector* getPseudoSelector() final override { return this; }
253
261
  bool operator==(const SimpleSelector& rhs) const final override;
254
- ATTACH_CMP_OPERATIONS(Pseudo_Selector)
255
- ATTACH_AST_OPERATIONS(Pseudo_Selector)
262
+ ATTACH_CMP_OPERATIONS(PseudoSelector)
263
+ ATTACH_AST_OPERATIONS(PseudoSelector)
256
264
  void cloneChildren() override;
257
265
  ATTACH_CRTP_PERFORM_METHODS()
258
266
  };
@@ -269,7 +277,7 @@ namespace Sass {
269
277
  // line break before list separator
270
278
  ADD_PROPERTY(bool, hasPreLineFeed)
271
279
  public:
272
- ComplexSelector(ParserState pstate);
280
+ ComplexSelector(SourceSpan pstate);
273
281
 
274
282
  // Returns true if the first components
275
283
  // is a compound selector and fullfills
@@ -310,7 +318,7 @@ namespace Sass {
310
318
  // line break after list separator
311
319
  ADD_PROPERTY(bool, hasPostLineBreak)
312
320
  public:
313
- SelectorComponent(ParserState pstate, bool postLineBreak = false);
321
+ SelectorComponent(SourceSpan pstate, bool postLineBreak = false);
314
322
  size_t hash() const override = 0;
315
323
  void cloneChildren() override;
316
324
 
@@ -357,7 +365,7 @@ namespace Sass {
357
365
  HASH_CONSTREF(Combinator, combinator)
358
366
 
359
367
  public:
360
- SelectorCombinator(ParserState pstate, Combinator combinator, bool postLineBreak = false);
368
+ SelectorCombinator(SourceSpan pstate, Combinator combinator, bool postLineBreak = false);
361
369
 
362
370
  bool has_real_parent_ref() const override { return false; }
363
371
  bool has_placeholder() const override { return false; }
@@ -407,7 +415,7 @@ namespace Sass {
407
415
  ADD_PROPERTY(bool, hasRealParent)
408
416
  ADD_PROPERTY(bool, extended)
409
417
  public:
410
- CompoundSelector(ParserState pstate, bool postLineBreak = false);
418
+ CompoundSelector(SourceSpan pstate, bool postLineBreak = false);
411
419
 
412
420
  // Returns true if this compound selector
413
421
  // fullfills various criteria.
@@ -424,12 +432,12 @@ namespace Sass {
424
432
  CompoundSelector* getCompound() final override { return this; }
425
433
  const CompoundSelector* getCompound() const final override { return this; }
426
434
 
427
- bool isSuperselectorOf(const CompoundSelector* sub, std::string wrapped = "") const;
435
+ bool isSuperselectorOf(const CompoundSelector* sub, sass::string wrapped = "") const;
428
436
 
429
437
  void cloneChildren() override;
430
438
  bool has_real_parent_ref() const override;
431
439
  bool has_placeholder() const override;
432
- std::vector<ComplexSelectorObj> resolve_parent_refs(SelectorStack pstack, Backtraces& traces, bool implicit_parent = true);
440
+ sass::vector<ComplexSelectorObj> resolve_parent_refs(SelectorStack pstack, Backtraces& traces, bool implicit_parent = true);
433
441
 
434
442
  virtual bool isCompound() const override { return true; };
435
443
  virtual unsigned long specificity() const override;
@@ -445,6 +453,8 @@ namespace Sass {
445
453
  bool operator==(const ComplexSelector& rhs) const;
446
454
  bool operator==(const SimpleSelector& rhs) const;
447
455
 
456
+ void sortChildren();
457
+
448
458
  ATTACH_CMP_OPERATIONS(CompoundSelector)
449
459
  ATTACH_AST_OPERATIONS(CompoundSelector)
450
460
  ATTACH_CRTP_PERFORM_METHODS()
@@ -459,8 +469,8 @@ namespace Sass {
459
469
  // ToDo: should be at ExtendRule?
460
470
  ADD_PROPERTY(bool, is_optional)
461
471
  public:
462
- SelectorList(ParserState pstate, size_t s = 0);
463
- std::string type() const override { return "list"; }
472
+ SelectorList(SourceSpan pstate, size_t s = 0);
473
+ sass::string type() const override { return "list"; }
464
474
  size_t hash() const override;
465
475
 
466
476
  SelectorList* unifyWith(SelectorList*);
@@ -501,8 +511,8 @@ namespace Sass {
501
511
  ADD_PROPERTY(SelectorListObj, selector)
502
512
  ADD_PROPERTY(Selector_Schema_Obj, schema)
503
513
  public:
504
- ExtendRule(ParserState pstate, SelectorListObj s);
505
- ExtendRule(ParserState pstate, Selector_Schema_Obj s);
514
+ ExtendRule(SourceSpan pstate, SelectorListObj s);
515
+ ExtendRule(SourceSpan pstate, Selector_Schema_Obj s);
506
516
  ATTACH_AST_OPERATIONS(ExtendRule)
507
517
  ATTACH_CRTP_PERFORM_METHODS()
508
518
  };
@@ -9,75 +9,75 @@ namespace Sass {
9
9
  /////////////////////////////////////////////////////////////////////////
10
10
  /////////////////////////////////////////////////////////////////////////
11
11
 
12
- Supports_Block::Supports_Block(ParserState pstate, Supports_Condition_Obj condition, Block_Obj block)
13
- : Has_Block(pstate, block), condition_(condition)
12
+ SupportsRule::SupportsRule(SourceSpan pstate, SupportsConditionObj condition, Block_Obj block)
13
+ : ParentStatement(pstate, block), condition_(condition)
14
14
  { statement_type(SUPPORTS); }
15
- Supports_Block::Supports_Block(const Supports_Block* ptr)
16
- : Has_Block(ptr), condition_(ptr->condition_)
15
+ SupportsRule::SupportsRule(const SupportsRule* ptr)
16
+ : ParentStatement(ptr), condition_(ptr->condition_)
17
17
  { statement_type(SUPPORTS); }
18
- bool Supports_Block::bubbles() { return true; }
18
+ bool SupportsRule::bubbles() { return true; }
19
19
 
20
20
  /////////////////////////////////////////////////////////////////////////
21
21
  /////////////////////////////////////////////////////////////////////////
22
22
 
23
- Supports_Condition::Supports_Condition(ParserState pstate)
23
+ SupportsCondition::SupportsCondition(SourceSpan pstate)
24
24
  : Expression(pstate)
25
25
  { }
26
26
 
27
- Supports_Condition::Supports_Condition(const Supports_Condition* ptr)
27
+ SupportsCondition::SupportsCondition(const SupportsCondition* ptr)
28
28
  : Expression(ptr)
29
29
  { }
30
30
 
31
31
  /////////////////////////////////////////////////////////////////////////
32
32
  /////////////////////////////////////////////////////////////////////////
33
33
 
34
- Supports_Operator::Supports_Operator(ParserState pstate, Supports_Condition_Obj l, Supports_Condition_Obj r, Operand o)
35
- : Supports_Condition(pstate), left_(l), right_(r), operand_(o)
34
+ SupportsOperation::SupportsOperation(SourceSpan pstate, SupportsConditionObj l, SupportsConditionObj r, Operand o)
35
+ : SupportsCondition(pstate), left_(l), right_(r), operand_(o)
36
36
  { }
37
- Supports_Operator::Supports_Operator(const Supports_Operator* ptr)
38
- : Supports_Condition(ptr),
37
+ SupportsOperation::SupportsOperation(const SupportsOperation* ptr)
38
+ : SupportsCondition(ptr),
39
39
  left_(ptr->left_),
40
40
  right_(ptr->right_),
41
41
  operand_(ptr->operand_)
42
42
  { }
43
43
 
44
- bool Supports_Operator::needs_parens(Supports_Condition_Obj cond) const
44
+ bool SupportsOperation::needs_parens(SupportsConditionObj cond) const
45
45
  {
46
- if (Supports_Operator_Obj op = Cast<Supports_Operator>(cond)) {
46
+ if (SupportsOperationObj op = Cast<SupportsOperation>(cond)) {
47
47
  return op->operand() != operand();
48
48
  }
49
- return Cast<Supports_Negation>(cond) != NULL;
49
+ return Cast<SupportsNegation>(cond) != NULL;
50
50
  }
51
51
 
52
52
  /////////////////////////////////////////////////////////////////////////
53
53
  /////////////////////////////////////////////////////////////////////////
54
54
 
55
- Supports_Negation::Supports_Negation(ParserState pstate, Supports_Condition_Obj c)
56
- : Supports_Condition(pstate), condition_(c)
55
+ SupportsNegation::SupportsNegation(SourceSpan pstate, SupportsConditionObj c)
56
+ : SupportsCondition(pstate), condition_(c)
57
57
  { }
58
- Supports_Negation::Supports_Negation(const Supports_Negation* ptr)
59
- : Supports_Condition(ptr), condition_(ptr->condition_)
58
+ SupportsNegation::SupportsNegation(const SupportsNegation* ptr)
59
+ : SupportsCondition(ptr), condition_(ptr->condition_)
60
60
  { }
61
61
 
62
- bool Supports_Negation::needs_parens(Supports_Condition_Obj cond) const
62
+ bool SupportsNegation::needs_parens(SupportsConditionObj cond) const
63
63
  {
64
- return Cast<Supports_Negation>(cond) ||
65
- Cast<Supports_Operator>(cond);
64
+ return Cast<SupportsNegation>(cond) ||
65
+ Cast<SupportsOperation>(cond);
66
66
  }
67
67
 
68
68
  /////////////////////////////////////////////////////////////////////////
69
69
  /////////////////////////////////////////////////////////////////////////
70
70
 
71
- Supports_Declaration::Supports_Declaration(ParserState pstate, Expression_Obj f, Expression_Obj v)
72
- : Supports_Condition(pstate), feature_(f), value_(v)
71
+ SupportsDeclaration::SupportsDeclaration(SourceSpan pstate, ExpressionObj f, ExpressionObj v)
72
+ : SupportsCondition(pstate), feature_(f), value_(v)
73
73
  { }
74
- Supports_Declaration::Supports_Declaration(const Supports_Declaration* ptr)
75
- : Supports_Condition(ptr),
74
+ SupportsDeclaration::SupportsDeclaration(const SupportsDeclaration* ptr)
75
+ : SupportsCondition(ptr),
76
76
  feature_(ptr->feature_),
77
77
  value_(ptr->value_)
78
78
  { }
79
79
 
80
- bool Supports_Declaration::needs_parens(Supports_Condition_Obj cond) const
80
+ bool SupportsDeclaration::needs_parens(SupportsConditionObj cond) const
81
81
  {
82
82
  return false;
83
83
  }
@@ -85,15 +85,15 @@ namespace Sass {
85
85
  /////////////////////////////////////////////////////////////////////////
86
86
  /////////////////////////////////////////////////////////////////////////
87
87
 
88
- Supports_Interpolation::Supports_Interpolation(ParserState pstate, Expression_Obj v)
89
- : Supports_Condition(pstate), value_(v)
88
+ Supports_Interpolation::Supports_Interpolation(SourceSpan pstate, ExpressionObj v)
89
+ : SupportsCondition(pstate), value_(v)
90
90
  { }
91
91
  Supports_Interpolation::Supports_Interpolation(const Supports_Interpolation* ptr)
92
- : Supports_Condition(ptr),
92
+ : SupportsCondition(ptr),
93
93
  value_(ptr->value_)
94
94
  { }
95
95
 
96
- bool Supports_Interpolation::needs_parens(Supports_Condition_Obj cond) const
96
+ bool Supports_Interpolation::needs_parens(SupportsConditionObj cond) const
97
97
  {
98
98
  return false;
99
99
  }
@@ -101,11 +101,11 @@ namespace Sass {
101
101
  /////////////////////////////////////////////////////////////////////////
102
102
  /////////////////////////////////////////////////////////////////////////
103
103
 
104
- IMPLEMENT_AST_OPERATORS(Supports_Block);
105
- IMPLEMENT_AST_OPERATORS(Supports_Condition);
106
- IMPLEMENT_AST_OPERATORS(Supports_Operator);
107
- IMPLEMENT_AST_OPERATORS(Supports_Negation);
108
- IMPLEMENT_AST_OPERATORS(Supports_Declaration);
104
+ IMPLEMENT_AST_OPERATORS(SupportsRule);
105
+ IMPLEMENT_AST_OPERATORS(SupportsCondition);
106
+ IMPLEMENT_AST_OPERATORS(SupportsOperation);
107
+ IMPLEMENT_AST_OPERATORS(SupportsNegation);
108
+ IMPLEMENT_AST_OPERATORS(SupportsDeclaration);
109
109
  IMPLEMENT_AST_OPERATORS(Supports_Interpolation);
110
110
 
111
111
  /////////////////////////////////////////////////////////////////////////
@@ -39,79 +39,79 @@ namespace Sass {
39
39
  ////////////////////
40
40
  // `@supports` rule.
41
41
  ////////////////////
42
- class Supports_Block : public Has_Block {
43
- ADD_PROPERTY(Supports_Condition_Obj, condition)
42
+ class SupportsRule : public ParentStatement {
43
+ ADD_PROPERTY(SupportsConditionObj, condition)
44
44
  public:
45
- Supports_Block(ParserState pstate, Supports_Condition_Obj condition, Block_Obj block = {});
45
+ SupportsRule(SourceSpan pstate, SupportsConditionObj condition, Block_Obj block = {});
46
46
  bool bubbles() override;
47
- ATTACH_AST_OPERATIONS(Supports_Block)
47
+ ATTACH_AST_OPERATIONS(SupportsRule)
48
48
  ATTACH_CRTP_PERFORM_METHODS()
49
49
  };
50
50
 
51
51
  //////////////////////////////////////////////////////
52
52
  // The abstract superclass of all Supports conditions.
53
53
  //////////////////////////////////////////////////////
54
- class Supports_Condition : public Expression {
54
+ class SupportsCondition : public Expression {
55
55
  public:
56
- Supports_Condition(ParserState pstate);
57
- virtual bool needs_parens(Supports_Condition_Obj cond) const { return false; }
58
- ATTACH_AST_OPERATIONS(Supports_Condition)
56
+ SupportsCondition(SourceSpan pstate);
57
+ virtual bool needs_parens(SupportsConditionObj cond) const { return false; }
58
+ ATTACH_AST_OPERATIONS(SupportsCondition)
59
59
  ATTACH_CRTP_PERFORM_METHODS()
60
60
  };
61
61
 
62
62
  ////////////////////////////////////////////////////////////
63
63
  // An operator condition (e.g. `CONDITION1 and CONDITION2`).
64
64
  ////////////////////////////////////////////////////////////
65
- class Supports_Operator : public Supports_Condition {
65
+ class SupportsOperation : public SupportsCondition {
66
66
  public:
67
67
  enum Operand { AND, OR };
68
68
  private:
69
- ADD_PROPERTY(Supports_Condition_Obj, left);
70
- ADD_PROPERTY(Supports_Condition_Obj, right);
69
+ ADD_PROPERTY(SupportsConditionObj, left);
70
+ ADD_PROPERTY(SupportsConditionObj, right);
71
71
  ADD_PROPERTY(Operand, operand);
72
72
  public:
73
- Supports_Operator(ParserState pstate, Supports_Condition_Obj l, Supports_Condition_Obj r, Operand o);
74
- virtual bool needs_parens(Supports_Condition_Obj cond) const override;
75
- ATTACH_AST_OPERATIONS(Supports_Operator)
73
+ SupportsOperation(SourceSpan pstate, SupportsConditionObj l, SupportsConditionObj r, Operand o);
74
+ virtual bool needs_parens(SupportsConditionObj cond) const override;
75
+ ATTACH_AST_OPERATIONS(SupportsOperation)
76
76
  ATTACH_CRTP_PERFORM_METHODS()
77
77
  };
78
78
 
79
79
  //////////////////////////////////////////
80
80
  // A negation condition (`not CONDITION`).
81
81
  //////////////////////////////////////////
82
- class Supports_Negation : public Supports_Condition {
82
+ class SupportsNegation : public SupportsCondition {
83
83
  private:
84
- ADD_PROPERTY(Supports_Condition_Obj, condition);
84
+ ADD_PROPERTY(SupportsConditionObj, condition);
85
85
  public:
86
- Supports_Negation(ParserState pstate, Supports_Condition_Obj c);
87
- virtual bool needs_parens(Supports_Condition_Obj cond) const override;
88
- ATTACH_AST_OPERATIONS(Supports_Negation)
86
+ SupportsNegation(SourceSpan pstate, SupportsConditionObj c);
87
+ virtual bool needs_parens(SupportsConditionObj cond) const override;
88
+ ATTACH_AST_OPERATIONS(SupportsNegation)
89
89
  ATTACH_CRTP_PERFORM_METHODS()
90
90
  };
91
91
 
92
92
  /////////////////////////////////////////////////////
93
93
  // A declaration condition (e.g. `(feature: value)`).
94
94
  /////////////////////////////////////////////////////
95
- class Supports_Declaration : public Supports_Condition {
95
+ class SupportsDeclaration : public SupportsCondition {
96
96
  private:
97
- ADD_PROPERTY(Expression_Obj, feature);
98
- ADD_PROPERTY(Expression_Obj, value);
97
+ ADD_PROPERTY(ExpressionObj, feature);
98
+ ADD_PROPERTY(ExpressionObj, value);
99
99
  public:
100
- Supports_Declaration(ParserState pstate, Expression_Obj f, Expression_Obj v);
101
- virtual bool needs_parens(Supports_Condition_Obj cond) const override;
102
- ATTACH_AST_OPERATIONS(Supports_Declaration)
100
+ SupportsDeclaration(SourceSpan pstate, ExpressionObj f, ExpressionObj v);
101
+ virtual bool needs_parens(SupportsConditionObj cond) const override;
102
+ ATTACH_AST_OPERATIONS(SupportsDeclaration)
103
103
  ATTACH_CRTP_PERFORM_METHODS()
104
104
  };
105
105
 
106
106
  ///////////////////////////////////////////////
107
107
  // An interpolation condition (e.g. `#{$var}`).
108
108
  ///////////////////////////////////////////////
109
- class Supports_Interpolation : public Supports_Condition {
109
+ class Supports_Interpolation : public SupportsCondition {
110
110
  private:
111
- ADD_PROPERTY(Expression_Obj, value);
111
+ ADD_PROPERTY(ExpressionObj, value);
112
112
  public:
113
- Supports_Interpolation(ParserState pstate, Expression_Obj v);
114
- virtual bool needs_parens(Supports_Condition_Obj cond) const override;
113
+ Supports_Interpolation(SourceSpan pstate, ExpressionObj v);
114
+ virtual bool needs_parens(SupportsConditionObj cond) const override;
115
115
  ATTACH_AST_OPERATIONS(Supports_Interpolation)
116
116
  ATTACH_CRTP_PERFORM_METHODS()
117
117
  };