sassc 2.3.0 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +5 -0
- data/ext/libsass/VERSION +1 -1
- data/ext/libsass/include/sass/context.h +3 -0
- data/ext/libsass/src/MurmurHash2.hpp +91 -0
- data/ext/libsass/src/ast.cpp +117 -117
- data/ext/libsass/src/ast.hpp +160 -162
- data/ext/libsass/src/ast_def_macros.hpp +10 -10
- data/ext/libsass/src/ast_fwd_decl.cpp +2 -2
- data/ext/libsass/src/ast_fwd_decl.hpp +61 -52
- data/ext/libsass/src/ast_helpers.hpp +5 -5
- data/ext/libsass/src/ast_sel_cmp.cpp +18 -18
- data/ext/libsass/src/ast_sel_super.cpp +52 -52
- data/ext/libsass/src/ast_sel_unify.cpp +16 -16
- data/ext/libsass/src/ast_sel_weave.cpp +62 -62
- data/ext/libsass/src/ast_selectors.cpp +87 -77
- data/ext/libsass/src/ast_selectors.hpp +72 -62
- data/ext/libsass/src/ast_supports.cpp +35 -35
- data/ext/libsass/src/ast_supports.hpp +29 -29
- data/ext/libsass/src/ast_values.cpp +58 -58
- data/ext/libsass/src/ast_values.hpp +75 -75
- data/ext/libsass/src/backtrace.cpp +9 -9
- data/ext/libsass/src/backtrace.hpp +5 -5
- data/ext/libsass/src/base64vlq.cpp +2 -2
- data/ext/libsass/src/base64vlq.hpp +1 -1
- data/ext/libsass/src/bind.cpp +17 -17
- data/ext/libsass/src/bind.hpp +1 -1
- data/ext/libsass/src/c2ast.cpp +3 -3
- data/ext/libsass/src/c2ast.hpp +1 -1
- data/ext/libsass/src/check_nesting.cpp +36 -36
- data/ext/libsass/src/check_nesting.hpp +2 -2
- data/ext/libsass/src/color_maps.cpp +5 -5
- data/ext/libsass/src/color_maps.hpp +1 -1
- data/ext/libsass/src/context.cpp +63 -60
- data/ext/libsass/src/context.hpp +33 -33
- data/ext/libsass/src/cssize.cpp +30 -29
- data/ext/libsass/src/cssize.hpp +13 -13
- data/ext/libsass/src/dart_helpers.hpp +5 -5
- data/ext/libsass/src/debugger.hpp +127 -128
- data/ext/libsass/src/emitter.cpp +12 -12
- data/ext/libsass/src/emitter.hpp +10 -10
- data/ext/libsass/src/environment.cpp +27 -27
- data/ext/libsass/src/environment.hpp +24 -24
- data/ext/libsass/src/error_handling.cpp +42 -42
- data/ext/libsass/src/error_handling.hpp +38 -50
- data/ext/libsass/src/eval.cpp +138 -132
- data/ext/libsass/src/eval.hpp +17 -17
- data/ext/libsass/src/eval_selectors.cpp +3 -3
- data/ext/libsass/src/expand.cpp +70 -64
- data/ext/libsass/src/expand.hpp +12 -12
- data/ext/libsass/src/extender.cpp +55 -53
- data/ext/libsass/src/extender.hpp +14 -14
- data/ext/libsass/src/file.cpp +66 -58
- data/ext/libsass/src/file.hpp +23 -25
- data/ext/libsass/src/fn_colors.cpp +9 -9
- data/ext/libsass/src/fn_lists.cpp +18 -18
- data/ext/libsass/src/fn_maps.cpp +3 -3
- data/ext/libsass/src/fn_miscs.cpp +15 -15
- data/ext/libsass/src/fn_numbers.cpp +7 -7
- data/ext/libsass/src/fn_selectors.cpp +8 -8
- data/ext/libsass/src/fn_strings.cpp +34 -22
- data/ext/libsass/src/fn_utils.cpp +29 -26
- data/ext/libsass/src/fn_utils.hpp +10 -10
- data/ext/libsass/src/inspect.cpp +35 -34
- data/ext/libsass/src/inspect.hpp +21 -21
- data/ext/libsass/src/lexer.cpp +3 -1
- data/ext/libsass/src/listize.cpp +2 -2
- data/ext/libsass/src/mapping.hpp +1 -0
- data/ext/libsass/src/memory.hpp +12 -0
- data/ext/libsass/src/memory/allocator.cpp +48 -0
- data/ext/libsass/src/memory/allocator.hpp +138 -0
- data/ext/libsass/src/memory/config.hpp +20 -0
- data/ext/libsass/src/memory/memory_pool.hpp +186 -0
- data/ext/libsass/src/memory/{SharedPtr.cpp → shared_ptr.cpp} +2 -2
- data/ext/libsass/src/memory/{SharedPtr.hpp → shared_ptr.hpp} +18 -6
- data/ext/libsass/src/operation.hpp +44 -44
- data/ext/libsass/src/operators.cpp +18 -18
- data/ext/libsass/src/operators.hpp +11 -11
- data/ext/libsass/src/ordered_map.hpp +18 -18
- data/ext/libsass/src/output.cpp +16 -16
- data/ext/libsass/src/output.hpp +5 -5
- data/ext/libsass/src/parser.cpp +327 -345
- data/ext/libsass/src/parser.hpp +77 -87
- data/ext/libsass/src/parser_selectors.cpp +6 -6
- data/ext/libsass/src/permutate.hpp +39 -15
- data/ext/libsass/src/plugins.cpp +7 -7
- data/ext/libsass/src/plugins.hpp +8 -8
- data/ext/libsass/src/position.cpp +7 -26
- data/ext/libsass/src/position.hpp +44 -21
- data/ext/libsass/src/remove_placeholders.cpp +4 -4
- data/ext/libsass/src/remove_placeholders.hpp +3 -3
- data/ext/libsass/src/sass.cpp +16 -15
- data/ext/libsass/src/sass.hpp +9 -5
- data/ext/libsass/src/sass_context.cpp +52 -34
- data/ext/libsass/src/sass_values.cpp +8 -10
- data/ext/libsass/src/settings.hpp +19 -0
- data/ext/libsass/src/source.cpp +69 -0
- data/ext/libsass/src/source.hpp +95 -0
- data/ext/libsass/src/source_data.hpp +32 -0
- data/ext/libsass/src/source_map.cpp +22 -18
- data/ext/libsass/src/source_map.hpp +12 -9
- data/ext/libsass/src/units.cpp +19 -19
- data/ext/libsass/src/units.hpp +8 -8
- data/ext/libsass/src/utf8_string.cpp +9 -10
- data/ext/libsass/src/utf8_string.hpp +7 -6
- data/ext/libsass/src/util.cpp +38 -38
- data/ext/libsass/src/util.hpp +18 -18
- data/ext/libsass/src/util_string.cpp +13 -13
- data/ext/libsass/src/util_string.hpp +9 -8
- data/ext/libsass/src/values.cpp +12 -12
- data/lib/sassc/native.rb +3 -5
- data/lib/sassc/version.rb +1 -1
- data/test/native_test.rb +4 -4
- metadata +14 -5
- 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(
|
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(
|
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(
|
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(
|
36
|
+
List::List(SourceSpan pstate, size_t size, enum Sass_Separator sep, bool argl, bool bracket)
|
37
37
|
: Value(pstate),
|
38
|
-
Vectorized<
|
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<
|
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<
|
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
|
-
|
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
|
-
|
122
|
-
|
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(
|
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(
|
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(
|
217
|
-
Operand op,
|
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
|
238
|
+
const sass::string Binary_Expression::type_name()
|
239
239
|
{
|
240
240
|
return sass_op_to_name(optype());
|
241
241
|
}
|
242
242
|
|
243
|
-
const
|
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(
|
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
|
-
|
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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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<
|
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
|
-
|
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(
|
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<
|
422
|
+
return std::hash<sass::string>()(name());
|
423
423
|
}
|
424
424
|
|
425
425
|
/////////////////////////////////////////////////////////////////////////
|
426
426
|
/////////////////////////////////////////////////////////////////////////
|
427
427
|
|
428
|
-
Number::Number(
|
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
|
-
|
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 ==
|
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<
|
485
|
+
hash_combine(hash_, std::hash<sass::string>()(numerator));
|
486
486
|
for (const auto denominator : denominators)
|
487
|
-
hash_combine(hash_, std::hash<
|
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(
|
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(
|
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<
|
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(
|
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<
|
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(
|
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(
|
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(
|
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(
|
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(
|
897
|
-
: String(pstate), Vectorized<
|
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<
|
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(
|
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(
|
983
|
-
: String(pstate), quote_mark_(0), value_(read_css_string(
|
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(
|
986
|
-
: String(pstate), quote_mark_(0), value_(read_css_string(
|
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(
|
989
|
-
: String(pstate), quote_mark_(0), value_(read_css_string(
|
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
|
-
|
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<
|
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(
|
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
|
-
|
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(
|
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(
|
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(
|
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(
|
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<
|
51
|
-
void adjust_after_pushing(
|
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(
|
59
|
-
|
60
|
-
static
|
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
|
-
|
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<
|
83
|
-
void adjust_after_pushing(std::pair<
|
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(
|
86
|
-
|
87
|
-
static
|
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(
|
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(
|
110
|
-
HASH_PROPERTY(
|
109
|
+
HASH_PROPERTY(ExpressionObj, left)
|
110
|
+
HASH_PROPERTY(ExpressionObj, right)
|
111
111
|
mutable size_t hash_;
|
112
112
|
public:
|
113
|
-
Binary_Expression(
|
114
|
-
Operand op,
|
113
|
+
Binary_Expression(SourceSpan pstate,
|
114
|
+
Operand op, ExpressionObj lhs, ExpressionObj rhs);
|
115
115
|
|
116
|
-
const
|
117
|
-
const
|
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(
|
141
|
+
Function(SourceSpan pstate, Definition_Obj def, bool css);
|
142
142
|
|
143
|
-
|
144
|
-
static
|
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
|
-
|
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(
|
168
|
-
Function_Call(
|
169
|
-
Function_Call(
|
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(
|
172
|
-
Function_Call(
|
173
|
-
Function_Call(
|
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
|
-
|
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(
|
190
|
+
ADD_CONSTREF(sass::string, name)
|
191
191
|
public:
|
192
|
-
Variable(
|
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(
|
207
|
+
Number(SourceSpan pstate, double val, sass::string u = "", bool zero = true);
|
208
208
|
|
209
209
|
bool zero() { return zero_; }
|
210
210
|
|
211
|
-
|
212
|
-
static
|
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(
|
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(
|
241
|
+
Color(SourceSpan pstate, double a = 1, const sass::string disp = "");
|
242
242
|
|
243
|
-
|
244
|
-
static
|
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(
|
268
|
+
Color_RGBA(SourceSpan pstate, double r, double g, double b, double a = 1, const sass::string disp = "");
|
269
269
|
|
270
|
-
|
271
|
-
static
|
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(
|
297
|
+
Color_HSLA(SourceSpan pstate, double h, double s, double l, double a = 1, const sass::string disp = "");
|
298
298
|
|
299
|
-
|
300
|
-
static
|
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(
|
321
|
+
ADD_CONSTREF(sass::string, message)
|
322
322
|
public:
|
323
|
-
Custom_Error(
|
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(
|
334
|
+
ADD_CONSTREF(sass::string, message)
|
335
335
|
public:
|
336
|
-
Custom_Warning(
|
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(
|
350
|
+
Boolean(SourceSpan pstate, bool val);
|
351
351
|
operator bool() override { return value_; }
|
352
352
|
|
353
|
-
|
354
|
-
static
|
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(
|
374
|
-
static
|
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<
|
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(
|
396
|
+
String_Schema(SourceSpan pstate, size_t size = 0, bool css = true);
|
397
397
|
|
398
|
-
|
399
|
-
static
|
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(
|
420
|
+
HASH_CONSTREF(sass::string, value)
|
421
421
|
protected:
|
422
422
|
mutable size_t hash_;
|
423
423
|
public:
|
424
|
-
String_Constant(
|
425
|
-
String_Constant(
|
426
|
-
String_Constant(
|
427
|
-
String_Constant(
|
428
|
-
|
429
|
-
static
|
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
|
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(
|
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
|
-
|
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(
|
463
|
-
|
464
|
-
static
|
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(
|
484
|
-
|
485
|
-
static
|
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
|
}
|