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
@@ -5,7 +5,7 @@
5
5
 
6
6
  namespace Sass {
7
7
 
8
- void str_rtrim(std::string& str, const std::string& delimiters = " \f\n\r\t\v")
8
+ void str_rtrim(sass::string& str, const sass::string& delimiters = " \f\n\r\t\v")
9
9
  {
10
10
  str.erase( str.find_last_not_of( delimiters ) + 1 );
11
11
  }
@@ -13,7 +13,7 @@ namespace Sass {
13
13
  /////////////////////////////////////////////////////////////////////////
14
14
  /////////////////////////////////////////////////////////////////////////
15
15
 
16
- PreValue::PreValue(ParserState pstate, bool d, bool e, bool i, Type ct)
16
+ PreValue::PreValue(SourceSpan pstate, bool d, bool e, bool i, Type ct)
17
17
  : Expression(pstate, d, e, i, ct)
18
18
  { }
19
19
  PreValue::PreValue(const PreValue* ptr)
@@ -23,7 +23,7 @@ namespace Sass {
23
23
  /////////////////////////////////////////////////////////////////////////
24
24
  /////////////////////////////////////////////////////////////////////////
25
25
 
26
- Value::Value(ParserState pstate, bool d, bool e, bool i, Type ct)
26
+ Value::Value(SourceSpan pstate, bool d, bool e, bool i, Type ct)
27
27
  : PreValue(pstate, d, e, i, ct)
28
28
  { }
29
29
  Value::Value(const Value* ptr)
@@ -33,9 +33,9 @@ namespace Sass {
33
33
  /////////////////////////////////////////////////////////////////////////
34
34
  /////////////////////////////////////////////////////////////////////////
35
35
 
36
- List::List(ParserState pstate, size_t size, enum Sass_Separator sep, bool argl, bool bracket)
36
+ List::List(SourceSpan pstate, size_t size, enum Sass_Separator sep, bool argl, bool bracket)
37
37
  : Value(pstate),
38
- Vectorized<Expression_Obj>(size),
38
+ Vectorized<ExpressionObj>(size),
39
39
  separator_(sep),
40
40
  is_arglist_(argl),
41
41
  is_bracketed_(bracket),
@@ -44,7 +44,7 @@ namespace Sass {
44
44
 
45
45
  List::List(const List* ptr)
46
46
  : Value(ptr),
47
- Vectorized<Expression_Obj>(*ptr),
47
+ Vectorized<ExpressionObj>(*ptr),
48
48
  separator_(ptr->separator_),
49
49
  is_arglist_(ptr->is_arglist_),
50
50
  is_bracketed_(ptr->is_bracketed_),
@@ -54,7 +54,7 @@ namespace Sass {
54
54
  size_t List::hash() const
55
55
  {
56
56
  if (hash_ == 0) {
57
- hash_ = std::hash<std::string>()(sep_string());
57
+ hash_ = std::hash<sass::string>()(sep_string());
58
58
  hash_combine(hash_, std::hash<bool>()(is_bracketed()));
59
59
  for (size_t i = 0, L = length(); i < L; ++i)
60
60
  hash_combine(hash_, (elements()[i])->hash());
@@ -109,7 +109,7 @@ namespace Sass {
109
109
  // arglist expects a list of arguments
110
110
  // so we need to break before keywords
111
111
  for (size_t i = 0, L = length(); i < L; ++i) {
112
- Expression_Obj obj = this->at(i);
112
+ ExpressionObj obj = this->at(i);
113
113
  if (Argument* arg = Cast<Argument>(obj)) {
114
114
  if (!arg->name().empty()) return i;
115
115
  }
@@ -118,8 +118,8 @@ namespace Sass {
118
118
  }
119
119
 
120
120
 
121
- Expression_Obj List::value_at_index(size_t i) {
122
- Expression_Obj obj = this->at(i);
121
+ ExpressionObj List::value_at_index(size_t i) {
122
+ ExpressionObj obj = this->at(i);
123
123
  if (is_arglist_) {
124
124
  if (Argument* arg = Cast<Argument>(obj)) {
125
125
  return arg->value();
@@ -134,7 +134,7 @@ namespace Sass {
134
134
  /////////////////////////////////////////////////////////////////////////
135
135
  /////////////////////////////////////////////////////////////////////////
136
136
 
137
- Map::Map(ParserState pstate, size_t size)
137
+ Map::Map(SourceSpan pstate, size_t size)
138
138
  : Value(pstate),
139
139
  Hashed(size)
140
140
  { concrete_type(MAP); }
@@ -185,7 +185,7 @@ namespace Sass {
185
185
  return false;
186
186
  }
187
187
 
188
- List_Obj Map::to_list(ParserState& pstate) {
188
+ List_Obj Map::to_list(SourceSpan& pstate) {
189
189
  List_Obj ret = SASS_MEMORY_NEW(List, pstate, length(), SASS_COMMA);
190
190
 
191
191
  for (auto key : keys()) {
@@ -213,8 +213,8 @@ namespace Sass {
213
213
  /////////////////////////////////////////////////////////////////////////
214
214
  /////////////////////////////////////////////////////////////////////////
215
215
 
216
- Binary_Expression::Binary_Expression(ParserState pstate,
217
- Operand op, Expression_Obj lhs, Expression_Obj rhs)
216
+ Binary_Expression::Binary_Expression(SourceSpan pstate,
217
+ Operand op, ExpressionObj lhs, ExpressionObj rhs)
218
218
  : PreValue(pstate), op_(op), left_(lhs), right_(rhs), hash_(0)
219
219
  { }
220
220
 
@@ -235,12 +235,12 @@ namespace Sass {
235
235
  return is_interpolant() || (right() && right()->is_right_interpolant());
236
236
  }
237
237
 
238
- const std::string Binary_Expression::type_name()
238
+ const sass::string Binary_Expression::type_name()
239
239
  {
240
240
  return sass_op_to_name(optype());
241
241
  }
242
242
 
243
- const std::string Binary_Expression::separator()
243
+ const sass::string Binary_Expression::separator()
244
244
  {
245
245
  return sass_op_separator(optype());
246
246
  }
@@ -292,7 +292,7 @@ namespace Sass {
292
292
  /////////////////////////////////////////////////////////////////////////
293
293
  /////////////////////////////////////////////////////////////////////////
294
294
 
295
- Function::Function(ParserState pstate, Definition_Obj def, bool css)
295
+ Function::Function(SourceSpan pstate, Definition_Obj def, bool css)
296
296
  : Value(pstate), definition_(def), is_css_(css)
297
297
  { concrete_type(FUNCTION_VAL); }
298
298
 
@@ -326,7 +326,7 @@ namespace Sass {
326
326
  return false;
327
327
  }
328
328
 
329
- std::string Function::name() {
329
+ sass::string Function::name() {
330
330
  if (definition_) {
331
331
  return definition_->name();
332
332
  }
@@ -336,23 +336,23 @@ namespace Sass {
336
336
  /////////////////////////////////////////////////////////////////////////
337
337
  /////////////////////////////////////////////////////////////////////////
338
338
 
339
- Function_Call::Function_Call(ParserState pstate, String_Obj n, Arguments_Obj args, void* cookie)
339
+ Function_Call::Function_Call(SourceSpan pstate, String_Obj n, Arguments_Obj args, void* cookie)
340
340
  : PreValue(pstate), sname_(n), arguments_(args), func_(), via_call_(false), cookie_(cookie), hash_(0)
341
341
  { concrete_type(FUNCTION); }
342
- Function_Call::Function_Call(ParserState pstate, String_Obj n, Arguments_Obj args, Function_Obj func)
342
+ Function_Call::Function_Call(SourceSpan pstate, String_Obj n, Arguments_Obj args, Function_Obj func)
343
343
  : PreValue(pstate), sname_(n), arguments_(args), func_(func), via_call_(false), cookie_(0), hash_(0)
344
344
  { concrete_type(FUNCTION); }
345
- Function_Call::Function_Call(ParserState pstate, String_Obj n, Arguments_Obj args)
345
+ Function_Call::Function_Call(SourceSpan pstate, String_Obj n, Arguments_Obj args)
346
346
  : PreValue(pstate), sname_(n), arguments_(args), via_call_(false), cookie_(0), hash_(0)
347
347
  { concrete_type(FUNCTION); }
348
348
 
349
- Function_Call::Function_Call(ParserState pstate, std::string n, Arguments_Obj args, void* cookie)
349
+ Function_Call::Function_Call(SourceSpan pstate, sass::string n, Arguments_Obj args, void* cookie)
350
350
  : PreValue(pstate), sname_(SASS_MEMORY_NEW(String_Constant, pstate, n)), arguments_(args), func_(), via_call_(false), cookie_(cookie), hash_(0)
351
351
  { concrete_type(FUNCTION); }
352
- Function_Call::Function_Call(ParserState pstate, std::string n, Arguments_Obj args, Function_Obj func)
352
+ Function_Call::Function_Call(SourceSpan pstate, sass::string n, Arguments_Obj args, Function_Obj func)
353
353
  : PreValue(pstate), sname_(SASS_MEMORY_NEW(String_Constant, pstate, n)), arguments_(args), func_(func), via_call_(false), cookie_(0), hash_(0)
354
354
  { concrete_type(FUNCTION); }
355
- Function_Call::Function_Call(ParserState pstate, std::string n, Arguments_Obj args)
355
+ Function_Call::Function_Call(SourceSpan pstate, sass::string n, Arguments_Obj args)
356
356
  : PreValue(pstate), sname_(SASS_MEMORY_NEW(String_Constant, pstate, n)), arguments_(args), via_call_(false), cookie_(0), hash_(0)
357
357
  { concrete_type(FUNCTION); }
358
358
 
@@ -381,14 +381,14 @@ namespace Sass {
381
381
  size_t Function_Call::hash() const
382
382
  {
383
383
  if (hash_ == 0) {
384
- hash_ = std::hash<std::string>()(name());
384
+ hash_ = std::hash<sass::string>()(name());
385
385
  for (auto argument : arguments()->elements())
386
386
  hash_combine(hash_, argument->hash());
387
387
  }
388
388
  return hash_;
389
389
  }
390
390
 
391
- std::string Function_Call::name() const
391
+ sass::string Function_Call::name() const
392
392
  {
393
393
  return sname();
394
394
  }
@@ -401,7 +401,7 @@ namespace Sass {
401
401
  /////////////////////////////////////////////////////////////////////////
402
402
  /////////////////////////////////////////////////////////////////////////
403
403
 
404
- Variable::Variable(ParserState pstate, std::string n)
404
+ Variable::Variable(SourceSpan pstate, sass::string n)
405
405
  : PreValue(pstate), name_(n)
406
406
  { concrete_type(VARIABLE); }
407
407
 
@@ -419,13 +419,13 @@ namespace Sass {
419
419
 
420
420
  size_t Variable::hash() const
421
421
  {
422
- return std::hash<std::string>()(name());
422
+ return std::hash<sass::string>()(name());
423
423
  }
424
424
 
425
425
  /////////////////////////////////////////////////////////////////////////
426
426
  /////////////////////////////////////////////////////////////////////////
427
427
 
428
- Number::Number(ParserState pstate, double val, std::string u, bool zero)
428
+ Number::Number(SourceSpan pstate, double val, sass::string u, bool zero)
429
429
  : Value(pstate),
430
430
  Units(),
431
431
  value_(val),
@@ -438,12 +438,12 @@ namespace Sass {
438
438
  bool nominator = true;
439
439
  while (true) {
440
440
  r = u.find_first_of("*/", l);
441
- std::string unit(u.substr(l, r == std::string::npos ? r : r - l));
441
+ sass::string unit(u.substr(l, r == sass::string::npos ? r : r - l));
442
442
  if (!unit.empty()) {
443
443
  if (nominator) numerators.push_back(unit);
444
444
  else denominators.push_back(unit);
445
445
  }
446
- if (r == std::string::npos) break;
446
+ if (r == sass::string::npos) break;
447
447
  // ToDo: should error for multiple slashes
448
448
  // if (!nominator && u[r] == '/') error(...)
449
449
  if (u[r] == '/')
@@ -482,9 +482,9 @@ namespace Sass {
482
482
  if (hash_ == 0) {
483
483
  hash_ = std::hash<double>()(value_);
484
484
  for (const auto numerator : numerators)
485
- hash_combine(hash_, std::hash<std::string>()(numerator));
485
+ hash_combine(hash_, std::hash<sass::string>()(numerator));
486
486
  for (const auto denominator : denominators)
487
- hash_combine(hash_, std::hash<std::string>()(denominator));
487
+ hash_combine(hash_, std::hash<sass::string>()(denominator));
488
488
  }
489
489
  return hash_;
490
490
  }
@@ -549,7 +549,7 @@ namespace Sass {
549
549
  /////////////////////////////////////////////////////////////////////////
550
550
  /////////////////////////////////////////////////////////////////////////
551
551
 
552
- Color::Color(ParserState pstate, double a, const std::string disp)
552
+ Color::Color(SourceSpan pstate, double a, const sass::string disp)
553
553
  : Value(pstate),
554
554
  disp_(disp), a_(a),
555
555
  hash_(0)
@@ -595,7 +595,7 @@ namespace Sass {
595
595
  /////////////////////////////////////////////////////////////////////////
596
596
  /////////////////////////////////////////////////////////////////////////
597
597
 
598
- Color_RGBA::Color_RGBA(ParserState pstate, double r, double g, double b, double a, const std::string disp)
598
+ Color_RGBA::Color_RGBA(SourceSpan pstate, double r, double g, double b, double a, const sass::string disp)
599
599
  : Color(pstate, a, disp),
600
600
  r_(r), g_(g), b_(b)
601
601
  { concrete_type(COLOR); }
@@ -638,7 +638,7 @@ namespace Sass {
638
638
  size_t Color_RGBA::hash() const
639
639
  {
640
640
  if (hash_ == 0) {
641
- hash_ = std::hash<std::string>()("RGBA");
641
+ hash_ = std::hash<sass::string>()("RGBA");
642
642
  hash_combine(hash_, std::hash<double>()(a_));
643
643
  hash_combine(hash_, std::hash<double>()(r_));
644
644
  hash_combine(hash_, std::hash<double>()(g_));
@@ -693,7 +693,7 @@ namespace Sass {
693
693
  /////////////////////////////////////////////////////////////////////////
694
694
  /////////////////////////////////////////////////////////////////////////
695
695
 
696
- Color_HSLA::Color_HSLA(ParserState pstate, double h, double s, double l, double a, const std::string disp)
696
+ Color_HSLA::Color_HSLA(SourceSpan pstate, double h, double s, double l, double a, const sass::string disp)
697
697
  : Color(pstate, a, disp),
698
698
  h_(absmod(h, 360.0)),
699
699
  s_(clip(s, 0.0, 100.0)),
@@ -740,7 +740,7 @@ namespace Sass {
740
740
  size_t Color_HSLA::hash() const
741
741
  {
742
742
  if (hash_ == 0) {
743
- hash_ = std::hash<std::string>()("HSLA");
743
+ hash_ = std::hash<sass::string>()("HSLA");
744
744
  hash_combine(hash_, std::hash<double>()(a_));
745
745
  hash_combine(hash_, std::hash<double>()(h_));
746
746
  hash_combine(hash_, std::hash<double>()(s_));
@@ -789,7 +789,7 @@ namespace Sass {
789
789
  /////////////////////////////////////////////////////////////////////////
790
790
  /////////////////////////////////////////////////////////////////////////
791
791
 
792
- Custom_Error::Custom_Error(ParserState pstate, std::string msg)
792
+ Custom_Error::Custom_Error(SourceSpan pstate, sass::string msg)
793
793
  : Value(pstate), message_(msg)
794
794
  { concrete_type(C_ERROR); }
795
795
 
@@ -817,7 +817,7 @@ namespace Sass {
817
817
  /////////////////////////////////////////////////////////////////////////
818
818
  /////////////////////////////////////////////////////////////////////////
819
819
 
820
- Custom_Warning::Custom_Warning(ParserState pstate, std::string msg)
820
+ Custom_Warning::Custom_Warning(SourceSpan pstate, sass::string msg)
821
821
  : Value(pstate), message_(msg)
822
822
  { concrete_type(C_WARNING); }
823
823
 
@@ -845,7 +845,7 @@ namespace Sass {
845
845
  /////////////////////////////////////////////////////////////////////////
846
846
  /////////////////////////////////////////////////////////////////////////
847
847
 
848
- Boolean::Boolean(ParserState pstate, bool val)
848
+ Boolean::Boolean(SourceSpan pstate, bool val)
849
849
  : Value(pstate), value_(val),
850
850
  hash_(0)
851
851
  { concrete_type(BOOLEAN); }
@@ -883,7 +883,7 @@ namespace Sass {
883
883
  /////////////////////////////////////////////////////////////////////////
884
884
  /////////////////////////////////////////////////////////////////////////
885
885
 
886
- String::String(ParserState pstate, bool delayed)
886
+ String::String(SourceSpan pstate, bool delayed)
887
887
  : Value(pstate, delayed)
888
888
  { concrete_type(STRING); }
889
889
  String::String(const String* ptr)
@@ -893,13 +893,13 @@ namespace Sass {
893
893
  /////////////////////////////////////////////////////////////////////////
894
894
  /////////////////////////////////////////////////////////////////////////
895
895
 
896
- String_Schema::String_Schema(ParserState pstate, size_t size, bool css)
897
- : String(pstate), Vectorized<PreValue_Obj>(size), css_(css), hash_(0)
896
+ String_Schema::String_Schema(SourceSpan pstate, size_t size, bool css)
897
+ : String(pstate), Vectorized<PreValueObj>(size), css_(css), hash_(0)
898
898
  { concrete_type(STRING); }
899
899
 
900
900
  String_Schema::String_Schema(const String_Schema* ptr)
901
901
  : String(ptr),
902
- Vectorized<PreValue_Obj>(*ptr),
902
+ Vectorized<PreValueObj>(*ptr),
903
903
  css_(ptr->css_),
904
904
  hash_(ptr->hash_)
905
905
  { concrete_type(STRING); }
@@ -976,17 +976,17 @@ namespace Sass {
976
976
  /////////////////////////////////////////////////////////////////////////
977
977
  /////////////////////////////////////////////////////////////////////////
978
978
 
979
- String_Constant::String_Constant(ParserState pstate, std::string val, bool css)
979
+ String_Constant::String_Constant(SourceSpan pstate, sass::string val, bool css)
980
980
  : String(pstate), quote_mark_(0), value_(read_css_string(val, css)), hash_(0)
981
981
  { }
982
- String_Constant::String_Constant(ParserState pstate, const char* beg, bool css)
983
- : String(pstate), quote_mark_(0), value_(read_css_string(std::string(beg), css)), hash_(0)
982
+ String_Constant::String_Constant(SourceSpan pstate, const char* beg, bool css)
983
+ : String(pstate), quote_mark_(0), value_(read_css_string(sass::string(beg), css)), hash_(0)
984
984
  { }
985
- String_Constant::String_Constant(ParserState pstate, const char* beg, const char* end, bool css)
986
- : String(pstate), quote_mark_(0), value_(read_css_string(std::string(beg, end-beg), css)), hash_(0)
985
+ String_Constant::String_Constant(SourceSpan pstate, const char* beg, const char* end, bool css)
986
+ : String(pstate), quote_mark_(0), value_(read_css_string(sass::string(beg, end-beg), css)), hash_(0)
987
987
  { }
988
- String_Constant::String_Constant(ParserState pstate, const Token& tok, bool css)
989
- : String(pstate), quote_mark_(0), value_(read_css_string(std::string(tok.begin, tok.end), css)), hash_(0)
988
+ String_Constant::String_Constant(SourceSpan pstate, const Token& tok, bool css)
989
+ : String(pstate), quote_mark_(0), value_(read_css_string(sass::string(tok.begin, tok.end), css)), hash_(0)
990
990
  { }
991
991
 
992
992
  String_Constant::String_Constant(const String_Constant* ptr)
@@ -1023,7 +1023,7 @@ namespace Sass {
1023
1023
  return false;
1024
1024
  }
1025
1025
 
1026
- std::string String_Constant::inspect() const
1026
+ sass::string String_Constant::inspect() const
1027
1027
  {
1028
1028
  return quote(value_, '*');
1029
1029
  }
@@ -1036,7 +1036,7 @@ namespace Sass {
1036
1036
  size_t String_Constant::hash() const
1037
1037
  {
1038
1038
  if (hash_ == 0) {
1039
- hash_ = std::hash<std::string>()(value_);
1039
+ hash_ = std::hash<sass::string>()(value_);
1040
1040
  }
1041
1041
  return hash_;
1042
1042
  }
@@ -1044,7 +1044,7 @@ namespace Sass {
1044
1044
  /////////////////////////////////////////////////////////////////////////
1045
1045
  /////////////////////////////////////////////////////////////////////////
1046
1046
 
1047
- String_Quoted::String_Quoted(ParserState pstate, std::string val, char q,
1047
+ String_Quoted::String_Quoted(SourceSpan pstate, sass::string val, char q,
1048
1048
  bool keep_utf8_escapes, bool skip_unquoting,
1049
1049
  bool strict_unquoting, bool css)
1050
1050
  : String_Constant(pstate, val, css)
@@ -1082,7 +1082,7 @@ namespace Sass {
1082
1082
  return false;
1083
1083
  }
1084
1084
 
1085
- std::string String_Quoted::inspect() const
1085
+ sass::string String_Quoted::inspect() const
1086
1086
  {
1087
1087
  return quote(value_, '*');
1088
1088
  }
@@ -1090,7 +1090,7 @@ namespace Sass {
1090
1090
  /////////////////////////////////////////////////////////////////////////
1091
1091
  /////////////////////////////////////////////////////////////////////////
1092
1092
 
1093
- Null::Null(ParserState pstate)
1093
+ Null::Null(SourceSpan pstate)
1094
1094
  : Value(pstate)
1095
1095
  { concrete_type(NULL_VAL); }
1096
1096
 
@@ -1119,7 +1119,7 @@ namespace Sass {
1119
1119
  /////////////////////////////////////////////////////////////////////////
1120
1120
  /////////////////////////////////////////////////////////////////////////
1121
1121
 
1122
- Parent_Reference::Parent_Reference(ParserState pstate)
1122
+ Parent_Reference::Parent_Reference(SourceSpan pstate)
1123
1123
  : Value(pstate)
1124
1124
  { concrete_type(PARENT); }
1125
1125
 
@@ -13,7 +13,7 @@ namespace Sass {
13
13
  //////////////////////////////////////////////////////////////////////
14
14
  class PreValue : public Expression {
15
15
  public:
16
- PreValue(ParserState pstate, bool d = false, bool e = false, bool i = false, Type ct = NONE);
16
+ PreValue(SourceSpan pstate, bool d = false, bool e = false, bool i = false, Type ct = NONE);
17
17
  ATTACH_VIRTUAL_AST_OPERATIONS(PreValue);
18
18
  virtual ~PreValue() { }
19
19
  };
@@ -23,7 +23,7 @@ namespace Sass {
23
23
  //////////////////////////////////////////////////////////////////////
24
24
  class Value : public PreValue {
25
25
  public:
26
- Value(ParserState pstate, bool d = false, bool e = false, bool i = false, Type ct = NONE);
26
+ Value(SourceSpan pstate, bool d = false, bool e = false, bool i = false, Type ct = NONE);
27
27
 
28
28
  // Some obects are not meant to be compared
29
29
  // ToDo: maybe fallback to pointer comparison?
@@ -47,23 +47,23 @@ namespace Sass {
47
47
  // Lists of values, both comma- and space-separated (distinguished by a
48
48
  // type-tag.) Also used to represent variable-length argument lists.
49
49
  ///////////////////////////////////////////////////////////////////////
50
- class List : public Value, public Vectorized<Expression_Obj> {
51
- void adjust_after_pushing(Expression_Obj e) override { is_expanded(false); }
50
+ class List : public Value, public Vectorized<ExpressionObj> {
51
+ void adjust_after_pushing(ExpressionObj e) override { is_expanded(false); }
52
52
  private:
53
53
  ADD_PROPERTY(enum Sass_Separator, separator)
54
54
  ADD_PROPERTY(bool, is_arglist)
55
55
  ADD_PROPERTY(bool, is_bracketed)
56
56
  ADD_PROPERTY(bool, from_selector)
57
57
  public:
58
- List(ParserState pstate, size_t size = 0, enum Sass_Separator sep = SASS_SPACE, bool argl = false, bool bracket = false);
59
- std::string type() const override { return is_arglist_ ? "arglist" : "list"; }
60
- static std::string type_name() { return "list"; }
58
+ List(SourceSpan pstate, size_t size = 0, enum Sass_Separator sep = SASS_SPACE, bool argl = false, bool bracket = false);
59
+ sass::string type() const override { return is_arglist_ ? "arglist" : "list"; }
60
+ static sass::string type_name() { return "list"; }
61
61
  const char* sep_string(bool compressed = false) const {
62
62
  return separator() == SASS_SPACE ?
63
63
  " " : (compressed ? "," : ", ");
64
64
  }
65
65
  bool is_invisible() const override { return empty() && !is_bracketed(); }
66
- Expression_Obj value_at_index(size_t i);
66
+ ExpressionObj value_at_index(size_t i);
67
67
 
68
68
  virtual size_t hash() const override;
69
69
  virtual size_t size() const;
@@ -79,14 +79,14 @@ namespace Sass {
79
79
  ///////////////////////////////////////////////////////////////////////
80
80
  // Key value paris.
81
81
  ///////////////////////////////////////////////////////////////////////
82
- class Map : public Value, public Hashed<Expression_Obj, Expression_Obj, Map_Obj> {
83
- void adjust_after_pushing(std::pair<Expression_Obj, Expression_Obj> p) override { is_expanded(false); }
82
+ class Map : public Value, public Hashed<ExpressionObj, ExpressionObj, Map_Obj> {
83
+ void adjust_after_pushing(std::pair<ExpressionObj, ExpressionObj> p) override { is_expanded(false); }
84
84
  public:
85
- Map(ParserState pstate, size_t size = 0);
86
- std::string type() const override { return "map"; }
87
- static std::string type_name() { return "map"; }
85
+ Map(SourceSpan pstate, size_t size = 0);
86
+ sass::string type() const override { return "map"; }
87
+ static sass::string type_name() { return "map"; }
88
88
  bool is_invisible() const override { return empty(); }
89
- List_Obj to_list(ParserState& pstate);
89
+ List_Obj to_list(SourceSpan& pstate);
90
90
 
91
91
  virtual size_t hash() const override;
92
92
 
@@ -106,15 +106,15 @@ namespace Sass {
106
106
  class Binary_Expression : public PreValue {
107
107
  private:
108
108
  HASH_PROPERTY(Operand, op)
109
- HASH_PROPERTY(Expression_Obj, left)
110
- HASH_PROPERTY(Expression_Obj, right)
109
+ HASH_PROPERTY(ExpressionObj, left)
110
+ HASH_PROPERTY(ExpressionObj, right)
111
111
  mutable size_t hash_;
112
112
  public:
113
- Binary_Expression(ParserState pstate,
114
- Operand op, Expression_Obj lhs, Expression_Obj rhs);
113
+ Binary_Expression(SourceSpan pstate,
114
+ Operand op, ExpressionObj lhs, ExpressionObj rhs);
115
115
 
116
- const std::string type_name();
117
- const std::string separator();
116
+ const sass::string type_name();
117
+ const sass::string separator();
118
118
  bool is_left_interpolant(void) const override;
119
119
  bool is_right_interpolant(void) const override;
120
120
  bool has_interpolant() const override;
@@ -138,13 +138,13 @@ namespace Sass {
138
138
  ADD_PROPERTY(Definition_Obj, definition)
139
139
  ADD_PROPERTY(bool, is_css)
140
140
  public:
141
- Function(ParserState pstate, Definition_Obj def, bool css);
141
+ Function(SourceSpan pstate, Definition_Obj def, bool css);
142
142
 
143
- std::string type() const override { return "function"; }
144
- static std::string type_name() { return "function"; }
143
+ sass::string type() const override { return "function"; }
144
+ static sass::string type_name() { return "function"; }
145
145
  bool is_invisible() const override { return true; }
146
146
 
147
- std::string name();
147
+ sass::string name();
148
148
 
149
149
  bool operator< (const Expression& rhs) const override;
150
150
  bool operator== (const Expression& rhs) const override;
@@ -164,15 +164,15 @@ namespace Sass {
164
164
  ADD_PROPERTY(void*, cookie)
165
165
  mutable size_t hash_;
166
166
  public:
167
- Function_Call(ParserState pstate, std::string n, Arguments_Obj args, void* cookie);
168
- Function_Call(ParserState pstate, std::string n, Arguments_Obj args, Function_Obj func);
169
- Function_Call(ParserState pstate, std::string n, Arguments_Obj args);
167
+ Function_Call(SourceSpan pstate, sass::string n, Arguments_Obj args, void* cookie);
168
+ Function_Call(SourceSpan pstate, sass::string n, Arguments_Obj args, Function_Obj func);
169
+ Function_Call(SourceSpan pstate, sass::string n, Arguments_Obj args);
170
170
 
171
- Function_Call(ParserState pstate, String_Obj n, Arguments_Obj args, void* cookie);
172
- Function_Call(ParserState pstate, String_Obj n, Arguments_Obj args, Function_Obj func);
173
- Function_Call(ParserState pstate, String_Obj n, Arguments_Obj args);
171
+ Function_Call(SourceSpan pstate, String_Obj n, Arguments_Obj args, void* cookie);
172
+ Function_Call(SourceSpan pstate, String_Obj n, Arguments_Obj args, Function_Obj func);
173
+ Function_Call(SourceSpan pstate, String_Obj n, Arguments_Obj args);
174
174
 
175
- std::string name() const;
175
+ sass::string name() const;
176
176
  bool is_css();
177
177
 
178
178
  bool operator==(const Expression& rhs) const override;
@@ -187,9 +187,9 @@ namespace Sass {
187
187
  // Variable references.
188
188
  ///////////////////////
189
189
  class Variable final : public PreValue {
190
- ADD_CONSTREF(std::string, name)
190
+ ADD_CONSTREF(sass::string, name)
191
191
  public:
192
- Variable(ParserState pstate, std::string n);
192
+ Variable(SourceSpan pstate, sass::string n);
193
193
  virtual bool operator==(const Expression& rhs) const override;
194
194
  virtual size_t hash() const override;
195
195
  ATTACH_AST_OPERATIONS(Variable)
@@ -204,12 +204,12 @@ namespace Sass {
204
204
  ADD_PROPERTY(bool, zero)
205
205
  mutable size_t hash_;
206
206
  public:
207
- Number(ParserState pstate, double val, std::string u = "", bool zero = true);
207
+ Number(SourceSpan pstate, double val, sass::string u = "", bool zero = true);
208
208
 
209
209
  bool zero() { return zero_; }
210
210
 
211
- std::string type() const override { return "number"; }
212
- static std::string type_name() { return "number"; }
211
+ sass::string type() const override { return "number"; }
212
+ static sass::string type_name() { return "number"; }
213
213
 
214
214
  // cancel out unnecessary units
215
215
  // result will be in input units
@@ -233,15 +233,15 @@ namespace Sass {
233
233
  // Colors.
234
234
  //////////
235
235
  class Color : public Value {
236
- ADD_CONSTREF(std::string, disp)
236
+ ADD_CONSTREF(sass::string, disp)
237
237
  HASH_PROPERTY(double, a)
238
238
  protected:
239
239
  mutable size_t hash_;
240
240
  public:
241
- Color(ParserState pstate, double a = 1, const std::string disp = "");
241
+ Color(SourceSpan pstate, double a = 1, const sass::string disp = "");
242
242
 
243
- std::string type() const override { return "color"; }
244
- static std::string type_name() { return "color"; }
243
+ sass::string type() const override { return "color"; }
244
+ static sass::string type_name() { return "color"; }
245
245
 
246
246
  virtual size_t hash() const override = 0;
247
247
 
@@ -265,10 +265,10 @@ namespace Sass {
265
265
  HASH_PROPERTY(double, g)
266
266
  HASH_PROPERTY(double, b)
267
267
  public:
268
- Color_RGBA(ParserState pstate, double r, double g, double b, double a = 1, const std::string disp = "");
268
+ Color_RGBA(SourceSpan pstate, double r, double g, double b, double a = 1, const sass::string disp = "");
269
269
 
270
- std::string type() const override { return "color"; }
271
- static std::string type_name() { return "color"; }
270
+ sass::string type() const override { return "color"; }
271
+ static sass::string type_name() { return "color"; }
272
272
 
273
273
  size_t hash() const override;
274
274
 
@@ -294,10 +294,10 @@ namespace Sass {
294
294
  HASH_PROPERTY(double, s)
295
295
  HASH_PROPERTY(double, l)
296
296
  public:
297
- Color_HSLA(ParserState pstate, double h, double s, double l, double a = 1, const std::string disp = "");
297
+ Color_HSLA(SourceSpan pstate, double h, double s, double l, double a = 1, const sass::string disp = "");
298
298
 
299
- std::string type() const override { return "color"; }
300
- static std::string type_name() { return "color"; }
299
+ sass::string type() const override { return "color"; }
300
+ static sass::string type_name() { return "color"; }
301
301
 
302
302
  size_t hash() const override;
303
303
 
@@ -318,9 +318,9 @@ namespace Sass {
318
318
  // Errors from Sass_Values.
319
319
  //////////////////////////////
320
320
  class Custom_Error final : public Value {
321
- ADD_CONSTREF(std::string, message)
321
+ ADD_CONSTREF(sass::string, message)
322
322
  public:
323
- Custom_Error(ParserState pstate, std::string msg);
323
+ Custom_Error(SourceSpan pstate, sass::string msg);
324
324
  bool operator< (const Expression& rhs) const override;
325
325
  bool operator== (const Expression& rhs) const override;
326
326
  ATTACH_AST_OPERATIONS(Custom_Error)
@@ -331,9 +331,9 @@ namespace Sass {
331
331
  // Warnings from Sass_Values.
332
332
  //////////////////////////////
333
333
  class Custom_Warning final : public Value {
334
- ADD_CONSTREF(std::string, message)
334
+ ADD_CONSTREF(sass::string, message)
335
335
  public:
336
- Custom_Warning(ParserState pstate, std::string msg);
336
+ Custom_Warning(SourceSpan pstate, sass::string msg);
337
337
  bool operator< (const Expression& rhs) const override;
338
338
  bool operator== (const Expression& rhs) const override;
339
339
  ATTACH_AST_OPERATIONS(Custom_Warning)
@@ -347,11 +347,11 @@ namespace Sass {
347
347
  HASH_PROPERTY(bool, value)
348
348
  mutable size_t hash_;
349
349
  public:
350
- Boolean(ParserState pstate, bool val);
350
+ Boolean(SourceSpan pstate, bool val);
351
351
  operator bool() override { return value_; }
352
352
 
353
- std::string type() const override { return "bool"; }
354
- static std::string type_name() { return "bool"; }
353
+ sass::string type() const override { return "bool"; }
354
+ static sass::string type_name() { return "bool"; }
355
355
 
356
356
  size_t hash() const override;
357
357
 
@@ -370,8 +370,8 @@ namespace Sass {
370
370
  ////////////////////////////////////////////////////////////////////////
371
371
  class String : public Value {
372
372
  public:
373
- String(ParserState pstate, bool delayed = false);
374
- static std::string type_name() { return "string"; }
373
+ String(SourceSpan pstate, bool delayed = false);
374
+ static sass::string type_name() { return "string"; }
375
375
  virtual ~String() = 0;
376
376
  virtual void rtrim() = 0;
377
377
  virtual bool operator<(const Expression& rhs) const override {
@@ -389,14 +389,14 @@ namespace Sass {
389
389
  // Interpolated strings. Meant to be reduced to flat strings during the
390
390
  // evaluation phase.
391
391
  ///////////////////////////////////////////////////////////////////////
392
- class String_Schema final : public String, public Vectorized<PreValue_Obj> {
392
+ class String_Schema final : public String, public Vectorized<PreValueObj> {
393
393
  ADD_PROPERTY(bool, css)
394
394
  mutable size_t hash_;
395
395
  public:
396
- String_Schema(ParserState pstate, size_t size = 0, bool css = true);
396
+ String_Schema(SourceSpan pstate, size_t size = 0, bool css = true);
397
397
 
398
- std::string type() const override { return "string"; }
399
- static std::string type_name() { return "string"; }
398
+ sass::string type() const override { return "string"; }
399
+ static sass::string type_name() { return "string"; }
400
400
 
401
401
  bool is_left_interpolant(void) const override;
402
402
  bool is_right_interpolant(void) const override;
@@ -417,23 +417,23 @@ namespace Sass {
417
417
  ////////////////////////////////////////////////////////
418
418
  class String_Constant : public String {
419
419
  ADD_PROPERTY(char, quote_mark)
420
- HASH_CONSTREF(std::string, value)
420
+ HASH_CONSTREF(sass::string, value)
421
421
  protected:
422
422
  mutable size_t hash_;
423
423
  public:
424
- String_Constant(ParserState pstate, std::string val, bool css = true);
425
- String_Constant(ParserState pstate, const char* beg, bool css = true);
426
- String_Constant(ParserState pstate, const char* beg, const char* end, bool css = true);
427
- String_Constant(ParserState pstate, const Token& tok, bool css = true);
428
- std::string type() const override { return "string"; }
429
- static std::string type_name() { return "string"; }
424
+ String_Constant(SourceSpan pstate, sass::string val, bool css = true);
425
+ String_Constant(SourceSpan pstate, const char* beg, bool css = true);
426
+ String_Constant(SourceSpan pstate, const char* beg, const char* end, bool css = true);
427
+ String_Constant(SourceSpan pstate, const Token& tok, bool css = true);
428
+ sass::string type() const override { return "string"; }
429
+ static sass::string type_name() { return "string"; }
430
430
  bool is_invisible() const override;
431
431
  virtual void rtrim() override;
432
432
  size_t hash() const override;
433
433
  bool operator< (const Expression& rhs) const override;
434
434
  bool operator==(const Expression& rhs) const override;
435
435
  // quotes are forced on inspection
436
- virtual std::string inspect() const override;
436
+ virtual sass::string inspect() const override;
437
437
  ATTACH_AST_OPERATIONS(String_Constant)
438
438
  ATTACH_CRTP_PERFORM_METHODS()
439
439
  };
@@ -443,13 +443,13 @@ namespace Sass {
443
443
  ////////////////////////////////////////////////////////
444
444
  class String_Quoted final : public String_Constant {
445
445
  public:
446
- String_Quoted(ParserState pstate, std::string val, char q = 0,
446
+ String_Quoted(SourceSpan pstate, sass::string val, char q = 0,
447
447
  bool keep_utf8_escapes = false, bool skip_unquoting = false,
448
448
  bool strict_unquoting = true, bool css = true);
449
449
  bool operator< (const Expression& rhs) const override;
450
450
  bool operator==(const Expression& rhs) const override;
451
451
  // quotes are forced on inspection
452
- std::string inspect() const override;
452
+ sass::string inspect() const override;
453
453
  ATTACH_AST_OPERATIONS(String_Quoted)
454
454
  ATTACH_CRTP_PERFORM_METHODS()
455
455
  };
@@ -459,9 +459,9 @@ namespace Sass {
459
459
  //////////////////
460
460
  class Null final : public Value {
461
461
  public:
462
- Null(ParserState pstate);
463
- std::string type() const override { return "null"; }
464
- static std::string type_name() { return "null"; }
462
+ Null(SourceSpan pstate);
463
+ sass::string type() const override { return "null"; }
464
+ static sass::string type_name() { return "null"; }
465
465
  bool is_invisible() const override { return true; }
466
466
  operator bool() override { return false; }
467
467
  bool is_false() override { return true; }
@@ -480,9 +480,9 @@ namespace Sass {
480
480
  //////////////////////////////////
481
481
  class Parent_Reference final : public Value {
482
482
  public:
483
- Parent_Reference(ParserState pstate);
484
- std::string type() const override { return "parent"; }
485
- static std::string type_name() { return "parent"; }
483
+ Parent_Reference(SourceSpan pstate);
484
+ sass::string type() const override { return "parent"; }
485
+ static sass::string type_name() { return "parent"; }
486
486
  bool operator< (const Expression& rhs) const override {
487
487
  return false; // they are always equal
488
488
  }