sassc 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
  }