@@ -52,25 +52,6 @@ namespace Sass {
52
52
}
53
53
}
54
54
55
- Sass_OP sass_name_to_op (std::string op)
56
- {
57
- if (op == " &&" ) return AND;
58
- if (op == " ||" ) return OR;
59
- if (op == " ==" ) return EQ;
60
- if (op == " !=" ) return NEQ;
61
- if (op == " >" ) return GT;
62
- if (op == " >=" ) return GTE;
63
- if (op == " <" ) return LT;
64
- if (op == " <=" ) return LTE;
65
- if (op == " +" ) return ADD;
66
- if (op == " ." ) return SUB;
67
- if (op == " *" ) return MUL;
68
- if (op == " /" ) return DIV;
69
- if (op == " &" ) return MOD;
70
- if (op == " =" ) return IESEQ;
71
- return NUM_OPS;
72
- }
73
-
74
55
const char * sass_op_separator (enum Sass_OP op) {
75
56
switch (op) {
76
57
case AND: return " &&" ;
@@ -285,36 +266,34 @@ namespace Sass {
285
266
// ///////////////////////////////////////////////////////////////////////
286
267
// ///////////////////////////////////////////////////////////////////////
287
268
288
- Directive::Directive (ParserState pstate, std::string kwd, SelectorListObj sel , Block_Obj b, Expression_Obj val)
289
- : Has_Block(pstate, b), keyword_(kwd), selector_(sel), interpolation_(), selSchema_ (), value_(val), name2_(), value2_() // set value manually if needed
269
+ AtRule::AtRule (ParserState pstate, std::string kwd, Block_Obj b, Expression_Obj val)
270
+ : Has_Block(pstate, b), keyword_(kwd), interpolation_(), value_(val), name2_(), value2_() // set value manually if needed
290
271
{ statement_type (DIRECTIVE); }
291
272
292
- Directive::Directive (ParserState pstate, InterpolationObj itpl, SelectorListObj sel , Block_Obj b, Expression_Obj val)
293
- : Has_Block(pstate, b), keyword_(), selector_(sel), interpolation_(itpl), selSchema_( ), value_(val), name2_(), value2_() // set value manually if needed
273
+ AtRule::AtRule (ParserState pstate, InterpolationObj itpl, Block_Obj b, Expression_Obj val)
274
+ : Has_Block(pstate, b), keyword_(), interpolation_(itpl), value_(val), name2_(), value2_() // set value manually if needed
294
275
{
295
276
statement_type (DIRECTIVE);
296
277
}
297
278
298
- Directive::Directive (const Directive * ptr)
279
+ AtRule::AtRule (const AtRule * ptr)
299
280
: Has_Block(ptr),
300
281
keyword_(ptr->keyword_),
301
- selector_(ptr->selector_),
302
282
interpolation_(ptr->interpolation_),
303
- selSchema_(ptr->selSchema_),
304
283
value_(ptr->value_),
305
284
name2_(ptr->name2_),
306
285
value2_(ptr->value2_) // set value manually if needed
307
286
{ statement_type (DIRECTIVE); }
308
287
309
- bool Directive ::bubbles () { return is_keyframes () || is_media (); }
288
+ bool AtRule ::bubbles () { return is_keyframes () || is_media (); }
310
289
311
- bool Directive ::is_media () {
290
+ bool AtRule ::is_media () {
312
291
return keyword_.compare (" @-webkit-media" ) == 0 ||
313
292
keyword_.compare (" @-moz-media" ) == 0 ||
314
293
keyword_.compare (" @-o-media" ) == 0 ||
315
294
keyword_.compare (" @media" ) == 0 ;
316
295
}
317
- bool Directive ::is_keyframes () {
296
+ bool AtRule ::is_keyframes () {
318
297
return keyword_.compare (" @-webkit-keyframes" ) == 0 ||
319
298
keyword_.compare (" @-moz-keyframes" ) == 0 ||
320
299
keyword_.compare (" @-o-keyframes" ) == 0 ||
@@ -354,22 +333,6 @@ namespace Sass {
354
333
}
355
334
356
335
357
- Declaration2::Declaration2 (const Declaration2* ptr) :
358
- Has_Block(ptr),
359
- name_(ptr->name_),
360
- value_(ptr->value_)
361
- {
362
- statement_type (DECLARATION);
363
- }
364
-
365
- CssDeclaration::CssDeclaration (const CssDeclaration* ptr) :
366
- Statement(ptr),
367
- name_(ptr->name_),
368
- value_(ptr->value_)
369
- {
370
- statement_type (DECLARATION);
371
- }
372
-
373
336
// ///////////////////////////////////////////////////////////////////////
374
337
// ///////////////////////////////////////////////////////////////////////
375
338
@@ -408,15 +371,17 @@ namespace Sass {
408
371
ImportBase(pstate),
409
372
url_(url),
410
373
supports_(supports),
411
- media_(media)
374
+ media_(media),
375
+ outOfOrder_(true )
412
376
{}
413
377
414
378
StaticImport::StaticImport (
415
379
const StaticImport* ptr) :
416
380
ImportBase(ptr),
417
381
url_(ptr->url_),
418
382
supports_(ptr->supports_),
419
- media_(ptr->media_)
383
+ media_(ptr->media_),
384
+ outOfOrder_(ptr->outOfOrder_)
420
385
{}
421
386
422
387
// ///////////////////////////////////////////////////////////////////////
@@ -482,13 +447,14 @@ namespace Sass {
482
447
// ///////////////////////////////////////////////////////////////////////
483
448
// ///////////////////////////////////////////////////////////////////////
484
449
485
- Import_Stub::Import_Stub (ParserState pstate, Include res)
486
- : ImportBase(pstate), resource_(res)
450
+ Import_Stub::Import_Stub (ParserState pstate, Include res/* , Sass_Import_Entry imp */ )
451
+ : ImportBase(pstate), resource_(res)// , import_(imp)
487
452
{ statement_type (IMPORT_STUB); }
488
453
Import_Stub::Import_Stub (const Import_Stub* ptr)
489
- : ImportBase(ptr), resource_(ptr->resource_)
454
+ : ImportBase(ptr), resource_(ptr->resource_)// , import_(ptr->import_)
490
455
{ statement_type (IMPORT_STUB); }
491
456
Include Import_Stub::resource () { return resource_; };
457
+ // Sass_Import_Entry Import_Stub::import() { return import_; };
492
458
std::string Import_Stub::imp_path () { return resource_.imp_path ; };
493
459
std::string Import_Stub::abs_path () { return resource_.abs_path ; };
494
460
@@ -542,6 +508,36 @@ namespace Sass {
542
508
// ///////////////////////////////////////////////////////////////////////
543
509
// ///////////////////////////////////////////////////////////////////////
544
510
511
+ LoudComment::LoudComment (ParserState pstate, InterpolationObj itpl)
512
+ : Statement(pstate), text_(itpl)
513
+ {
514
+ statement_type (COMMENT);
515
+ }
516
+ LoudComment::LoudComment (const LoudComment* ptr)
517
+ : Statement(ptr),
518
+ text_(ptr->text_)
519
+ {
520
+ statement_type (COMMENT);
521
+ }
522
+
523
+ // ///////////////////////////////////////////////////////////////////////
524
+ // ///////////////////////////////////////////////////////////////////////
525
+
526
+ SilentComment::SilentComment (ParserState pstate, std::string text)
527
+ : Statement(pstate), text_(text)
528
+ {
529
+ statement_type (COMMENT);
530
+ }
531
+ SilentComment::SilentComment (const SilentComment* ptr)
532
+ : Statement(ptr),
533
+ text_(ptr->text_)
534
+ {
535
+ statement_type (COMMENT);
536
+ }
537
+
538
+ // ///////////////////////////////////////////////////////////////////////
539
+ // ///////////////////////////////////////////////////////////////////////
540
+
545
541
If::If (ParserState pstate, Expression_Obj pred, Block_Obj con, Block_Obj alt)
546
542
: Has_Block(pstate, con), predicate_(pred), alternative_(alt)
547
543
{ statement_type (IF); }
@@ -804,9 +800,6 @@ namespace Sass {
804
800
Argument::Argument (ParserState pstate, Expression_Obj val, std::string n, bool rest, bool keyword)
805
801
: Expression(pstate), value_(val), name_(n), is_rest_argument_(rest), is_keyword_argument_(keyword), hash_(0 )
806
802
{
807
- if (!name_.empty () && is_rest_argument_) {
808
- coreError (" variable-length argument may not be passed by name" , pstate_);
809
- }
810
803
}
811
804
Argument::Argument (const Argument* ptr)
812
805
: Expression(ptr),
@@ -816,9 +809,6 @@ namespace Sass {
816
809
is_keyword_argument_(ptr->is_keyword_argument_),
817
810
hash_(ptr->hash_)
818
811
{
819
- if (!name_.empty () && is_rest_argument_) {
820
- coreError (" variable-length argument may not be passed by name" , pstate_);
821
- }
822
812
}
823
813
824
814
void Argument::set_delayed (bool delayed)
@@ -904,68 +894,19 @@ namespace Sass {
904
894
void Arguments::adjust_after_pushing (Argument_Obj a)
905
895
{
906
896
if (!a->name ().empty ()) {
907
- if (has_keyword_argument ()) {
908
- coreError (" named arguments must precede variable-length argument" , a->pstate ());
909
- }
910
897
has_named_arguments (true );
911
898
}
912
899
else if (a->is_rest_argument ()) {
913
- if (has_rest_argument ()) {
914
- coreError (" functions and mixins may only be called with one variable-length argument" , a->pstate ());
915
- }
916
- if (has_keyword_argument_) {
917
- coreError (" only keyword arguments may follow variable arguments" , a->pstate ());
918
- }
919
900
has_rest_argument (true );
920
901
}
921
902
else if (a->is_keyword_argument ()) {
922
- if (has_keyword_argument ()) {
923
- coreError (" functions and mixins may only be called with one keyword argument" , a->pstate ());
924
- }
925
903
has_keyword_argument (true );
926
904
}
927
- else {
928
- if (has_rest_argument ()) {
929
- coreError (" ordinal arguments must precede variable-length arguments" , a->pstate ());
930
- }
931
- if (has_named_arguments ()) {
932
- coreError (" ordinal arguments must precede named arguments" , a->pstate ());
933
- }
934
- }
935
905
}
936
906
937
907
// ///////////////////////////////////////////////////////////////////////
938
908
// ///////////////////////////////////////////////////////////////////////
939
909
940
- Media_Query::Media_Query (ParserState pstate, String_Obj t, size_t s, bool n, bool r)
941
- : Expression(pstate), Vectorized<Media_Query_Expression_Obj>(s),
942
- media_type_(t), is_negated_(n), is_restricted_(r)
943
- { }
944
- Media_Query::Media_Query (const Media_Query* ptr)
945
- : Expression(ptr),
946
- Vectorized<Media_Query_Expression_Obj>(*ptr),
947
- media_type_(ptr->media_type_),
948
- is_negated_(ptr->is_negated_),
949
- is_restricted_(ptr->is_restricted_)
950
- { }
951
-
952
- // ///////////////////////////////////////////////////////////////////////
953
- // ///////////////////////////////////////////////////////////////////////
954
-
955
- Media_Query_Expression::Media_Query_Expression (ParserState pstate,
956
- Expression_Obj f, Expression_Obj v, bool i)
957
- : Expression(pstate), feature_(f), value_(v), is_interpolated_(i)
958
- { }
959
- Media_Query_Expression::Media_Query_Expression (const Media_Query_Expression* ptr)
960
- : Expression(ptr),
961
- feature_(ptr->feature_),
962
- value_(ptr->value_),
963
- is_interpolated_(ptr->is_interpolated_)
964
- { }
965
-
966
- // ///////////////////////////////////////////////////////////////////////
967
- // ///////////////////////////////////////////////////////////////////////
968
-
969
910
At_Root_Query::At_Root_Query (ParserState pstate, Expression_Obj f, Expression_Obj v, bool i)
970
911
: Expression(pstate), feature_(f), value_(v)
971
912
{ }
@@ -1027,7 +968,7 @@ namespace Sass {
1027
968
1028
969
if (s->statement_type () == Statement::DIRECTIVE)
1029
970
{
1030
- if (Directive_Obj dir = Cast<Directive >(s))
971
+ if (AtRuleObj dir = Cast<AtRule >(s))
1031
972
{
1032
973
std::string keyword (dir->keyword ());
1033
974
if (keyword.length () > 0 ) keyword.erase (0 , 1 );
@@ -1046,7 +987,7 @@ namespace Sass {
1046
987
{
1047
988
return expression ()->exclude (" supports" );
1048
989
}
1049
- if (Directive_Obj dir = Cast<Directive >(s))
990
+ if (AtRuleObj dir = Cast<AtRule >(s))
1050
991
{
1051
992
if (dir->is_keyframes ()) return expression ()->exclude (" keyframes" );
1052
993
}
@@ -1085,25 +1026,11 @@ namespace Sass {
1085
1026
void Parameters::adjust_after_pushing (Parameter_Obj p)
1086
1027
{
1087
1028
if (p->default_value ()) {
1088
- if (has_rest_parameter ()) {
1089
- coreError (" optional parameters may not be combined with variable-length parameters" , p->pstate ());
1090
- }
1091
1029
has_optional_parameters (true );
1092
1030
}
1093
1031
else if (p->is_rest_parameter ()) {
1094
- if (has_rest_parameter ()) {
1095
- coreError (" functions and mixins cannot have more than one variable-length parameter" , p->pstate ());
1096
- }
1097
1032
has_rest_parameter (true );
1098
1033
}
1099
- else {
1100
- if (has_rest_parameter ()) {
1101
- coreError (" required parameters must precede variable-length parameters" , p->pstate ());
1102
- }
1103
- if (has_optional_parameters ()) {
1104
- coreError (" required parameters must precede optional parameters" , p->pstate ());
1105
- }
1106
- }
1107
1034
}
1108
1035
1109
1036
// ///////////////////////////////////////////////////////////////////////
@@ -1115,29 +1042,28 @@ namespace Sass {
1115
1042
IMPLEMENT_AST_OPERATORS (Ruleset);
1116
1043
IMPLEMENT_AST_OPERATORS (MediaRule);
1117
1044
IMPLEMENT_AST_OPERATORS (CssMediaRule);
1118
- IMPLEMENT_AST_OPERATORS (CssMediaQuery);
1119
1045
IMPLEMENT_AST_OPERATORS (Import);
1120
1046
IMPLEMENT_AST_OPERATORS (Import_Stub);
1121
1047
IMPLEMENT_AST_OPERATORS (ImportRule);
1122
1048
IMPLEMENT_AST_OPERATORS (StaticImport);
1123
1049
IMPLEMENT_AST_OPERATORS (DynamicImport);
1124
- IMPLEMENT_AST_OPERATORS (Directive );
1050
+ IMPLEMENT_AST_OPERATORS (AtRule );
1125
1051
IMPLEMENT_AST_OPERATORS (At_Root_Block);
1126
1052
IMPLEMENT_AST_OPERATORS (While);
1127
1053
IMPLEMENT_AST_OPERATORS (Each);
1128
1054
IMPLEMENT_AST_OPERATORS (For);
1129
1055
IMPLEMENT_AST_OPERATORS (If);
1130
1056
IMPLEMENT_AST_OPERATORS (Mixin_Call);
1131
1057
IMPLEMENT_AST_OPERATORS (ExtendRule);
1132
- IMPLEMENT_AST_OPERATORS (Media_Query);
1133
- IMPLEMENT_AST_OPERATORS (Media_Query_Expression);
1134
1058
IMPLEMENT_AST_OPERATORS (Debug);
1135
1059
IMPLEMENT_AST_OPERATORS (Error);
1136
1060
IMPLEMENT_AST_OPERATORS (Warning);
1137
1061
IMPLEMENT_AST_OPERATORS (Assignment);
1138
1062
IMPLEMENT_AST_OPERATORS (Return);
1139
1063
IMPLEMENT_AST_OPERATORS (At_Root_Query);
1140
1064
IMPLEMENT_AST_OPERATORS (Comment);
1065
+ IMPLEMENT_AST_OPERATORS (LoudComment);
1066
+ IMPLEMENT_AST_OPERATORS (SilentComment);
1141
1067
IMPLEMENT_AST_OPERATORS (Parameters);
1142
1068
IMPLEMENT_AST_OPERATORS (Parameter);
1143
1069
IMPLEMENT_AST_OPERATORS (Arguments);
@@ -1151,8 +1077,6 @@ namespace Sass {
1151
1077
IMPLEMENT_AST_OPERATORS (Bubble);
1152
1078
IMPLEMENT_AST_OPERATORS (Definition);
1153
1079
IMPLEMENT_AST_OPERATORS (Declaration);
1154
- IMPLEMENT_AST_OPERATORS (Declaration2);
1155
- IMPLEMENT_AST_OPERATORS (CssDeclaration);
1156
1080
1157
1081
// ///////////////////////////////////////////////////////////////////////
1158
1082
// ///////////////////////////////////////////////////////////////////////
0 commit comments