Skip to content

Commit ad6f0cb

Browse files
committed
Rename Selector_List AST node to CommaSequence_Selector
This better matches the Ruby Sass implementation.
1 parent 2ba1263 commit ad6f0cb

25 files changed

+168
-168
lines changed

src/ast.cpp

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -319,18 +319,18 @@ namespace Sass {
319319
return ns() < rhs.ns();
320320
}
321321

322-
bool Selector_List::operator== (const Selector& rhs) const
322+
bool CommaSequence_Selector::operator== (const Selector& rhs) const
323323
{
324324
// solve the double dispatch problem by using RTTI information via dynamic cast
325-
if (const Selector_List* ls = dynamic_cast<const Selector_List*>(&rhs)) { return *this == *ls; }
325+
if (const CommaSequence_Selector* ls = dynamic_cast<const CommaSequence_Selector*>(&rhs)) { return *this == *ls; }
326326
else if (const Complex_Selector* ls = dynamic_cast<const Complex_Selector*>(&rhs)) { return *this == *ls; }
327327
else if (const Compound_Selector* ls = dynamic_cast<const Compound_Selector*>(&rhs)) { return *this == *ls; }
328328
// no compare method
329329
return this == &rhs;
330330
}
331331

332332
// Selector lists can be compared to comma lists
333-
bool Selector_List::operator==(const Expression& rhs) const
333+
bool CommaSequence_Selector::operator==(const Expression& rhs) const
334334
{
335335
// solve the double dispatch problem by using RTTI information via dynamic cast
336336
if (const List* ls = dynamic_cast<const List*>(&rhs)) { return *this == *ls; }
@@ -339,7 +339,7 @@ namespace Sass {
339339
return false;
340340
}
341341

342-
bool Selector_List::operator== (const Selector_List& rhs) const
342+
bool CommaSequence_Selector::operator== (const CommaSequence_Selector& rhs) const
343343
{
344344
// for array access
345345
size_t i = 0, n = 0;
@@ -660,18 +660,18 @@ namespace Sass {
660660
{
661661
if (this->name() != sub->name()) return false;
662662
if (this->name() == ":current") return false;
663-
if (Selector_List* rhs_list = dynamic_cast<Selector_List*>(sub->selector())) {
664-
if (Selector_List* lhs_list = dynamic_cast<Selector_List*>(selector())) {
663+
if (CommaSequence_Selector* rhs_list = dynamic_cast<CommaSequence_Selector*>(sub->selector())) {
664+
if (CommaSequence_Selector* lhs_list = dynamic_cast<CommaSequence_Selector*>(selector())) {
665665
return lhs_list->is_superselector_of(rhs_list);
666666
}
667-
error("is_superselector expected a Selector_List", sub->pstate());
667+
error("is_superselector expected a CommaSequence_Selector", sub->pstate());
668668
} else {
669-
error("is_superselector expected a Selector_List", sub->pstate());
669+
error("is_superselector expected a CommaSequence_Selector", sub->pstate());
670670
}
671671
return false;
672672
}
673673

674-
bool Compound_Selector::is_superselector_of(Selector_List* rhs, std::string wrapped)
674+
bool Compound_Selector::is_superselector_of(CommaSequence_Selector* rhs, std::string wrapped)
675675
{
676676
for (Complex_Selector* item : rhs->elements()) {
677677
if (is_superselector_of(item, wrapped)) return true;
@@ -734,15 +734,15 @@ namespace Sass {
734734
// very special case for wrapped matches selector
735735
if (Wrapped_Selector* wrapped = dynamic_cast<Wrapped_Selector*>(lhs)) {
736736
if (wrapped->name() == ":not") {
737-
if (Selector_List* not_list = dynamic_cast<Selector_List*>(wrapped->selector())) {
737+
if (CommaSequence_Selector* not_list = dynamic_cast<CommaSequence_Selector*>(wrapped->selector())) {
738738
if (not_list->is_superselector_of(rhs, wrapped->name())) return false;
739739
} else {
740740
throw std::runtime_error("wrapped not selector is not a list");
741741
}
742742
}
743743
if (wrapped->name() == ":matches" || wrapped->name() == ":-moz-any") {
744744
lhs = wrapped->selector();
745-
if (Selector_List* list = dynamic_cast<Selector_List*>(wrapped->selector())) {
745+
if (CommaSequence_Selector* list = dynamic_cast<CommaSequence_Selector*>(wrapped->selector())) {
746746
if (Compound_Selector* comp = dynamic_cast<Compound_Selector*>(rhs)) {
747747
if (!wrapping.empty() && wrapping != wrapped->name()) return false;
748748
if (wrapping.empty() || wrapping != wrapped->name()) {;
@@ -770,7 +770,7 @@ namespace Sass {
770770
auto r = (*rhs)[n];
771771
if (Wrapped_Selector* wrapped = dynamic_cast<Wrapped_Selector*>(r)) {
772772
if (wrapped->name() == ":not") {
773-
if (Selector_List* ls = dynamic_cast<Selector_List*>(wrapped->selector())) {
773+
if (CommaSequence_Selector* ls = dynamic_cast<CommaSequence_Selector*>(wrapped->selector())) {
774774
ls->remove_parent_selectors();
775775
if (is_superselector_of(ls, wrapped->name())) return false;
776776
}
@@ -779,7 +779,7 @@ namespace Sass {
779779
if (!wrapping.empty()) {
780780
if (wrapping != wrapped->name()) return false;
781781
}
782-
if (Selector_List* ls = dynamic_cast<Selector_List*>(wrapped->selector())) {
782+
if (CommaSequence_Selector* ls = dynamic_cast<CommaSequence_Selector*>(wrapped->selector())) {
783783
ls->remove_parent_selectors();
784784
return (is_superselector_of(ls, wrapped->name()));
785785
}
@@ -808,7 +808,7 @@ namespace Sass {
808808
0);
809809
}
810810

811-
Selector_List* Complex_Selector::unify_with(Complex_Selector* other, Context& ctx)
811+
CommaSequence_Selector* Complex_Selector::unify_with(Complex_Selector* other, Context& ctx)
812812
{
813813

814814
// get last tails (on the right side)
@@ -866,7 +866,7 @@ namespace Sass {
866866

867867
// do some magic we inherit from node and extend
868868
Node node = Extend::subweave(lhsNode, rhsNode, ctx);
869-
Selector_List* result = SASS_MEMORY_NEW(ctx.mem, Selector_List, pstate());
869+
CommaSequence_Selector* result = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, pstate());
870870
NodeDequePtr col = node.collection(); // move from collection to list
871871
for (NodeDeque::iterator it = col->begin(), end = col->end(); it != end; it++)
872872
{ (*result) << nodeToComplexSelector(Node::naiveTrim(*it, ctx), ctx); }
@@ -1084,12 +1084,12 @@ namespace Sass {
10841084

10851085
}
10861086

1087-
Selector_List* Selector_List::resolve_parent_refs(Context& ctx, Selector_List* ps, bool implicit_parent)
1087+
CommaSequence_Selector* CommaSequence_Selector::resolve_parent_refs(Context& ctx, CommaSequence_Selector* ps, bool implicit_parent)
10881088
{
10891089
if (!this->has_parent_ref()/* && !implicit_parent*/) return this;
1090-
Selector_List* ss = SASS_MEMORY_NEW(ctx.mem, Selector_List, pstate());
1090+
CommaSequence_Selector* ss = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, pstate());
10911091
for (size_t pi = 0, pL = ps->length(); pi < pL; ++pi) {
1092-
Selector_List* list = SASS_MEMORY_NEW(ctx.mem, Selector_List, pstate());
1092+
CommaSequence_Selector* list = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, pstate());
10931093
*list << (*ps)[pi];
10941094
for (size_t si = 0, sL = this->length(); si < sL; ++si) {
10951095
*ss += (*this)[si]->resolve_parent_refs(ctx, list, implicit_parent);
@@ -1098,21 +1098,21 @@ namespace Sass {
10981098
return ss;
10991099
}
11001100

1101-
Selector_List* Complex_Selector::resolve_parent_refs(Context& ctx, Selector_List* parents, bool implicit_parent)
1101+
CommaSequence_Selector* Complex_Selector::resolve_parent_refs(Context& ctx, CommaSequence_Selector* parents, bool implicit_parent)
11021102
{
11031103
Complex_Selector* tail = this->tail();
11041104
Compound_Selector* head = this->head();
11051105

11061106
// first resolve_parent_refs the tail (which may return an expanded list)
1107-
Selector_List* tails = tail ? tail->resolve_parent_refs(ctx, parents, implicit_parent) : 0;
1107+
CommaSequence_Selector* tails = tail ? tail->resolve_parent_refs(ctx, parents, implicit_parent) : 0;
11081108

11091109
if (head && head->length() > 0) {
11101110

1111-
Selector_List* retval = 0;
1111+
CommaSequence_Selector* retval = 0;
11121112
// we have a parent selector in a simple compound list
11131113
// mix parent complex selector into the compound list
11141114
if (dynamic_cast<Parent_Selector*>((*head)[0])) {
1115-
retval = SASS_MEMORY_NEW(ctx.mem, Selector_List, pstate());
1115+
retval = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, pstate());
11161116
if (parents && parents->length()) {
11171117
if (tails && tails->length() > 0) {
11181118
for (size_t n = 0, nL = tails->length(); n < nL; ++n) {
@@ -1184,7 +1184,7 @@ namespace Sass {
11841184

11851185
for (Simple_Selector* ss : *head) {
11861186
if (Wrapped_Selector* ws = dynamic_cast<Wrapped_Selector*>(ss)) {
1187-
if (Selector_List* sl = dynamic_cast<Selector_List*>(ws->selector())) {
1187+
if (CommaSequence_Selector* sl = dynamic_cast<CommaSequence_Selector*>(ws->selector())) {
11881188
if (parents) ws->selector(sl->resolve_parent_refs(ctx, parents, implicit_parent));
11891189
}
11901190
}
@@ -1202,9 +1202,9 @@ namespace Sass {
12021202
return 0;
12031203
}
12041204

1205-
Selector_List* Complex_Selector::tails(Context& ctx, Selector_List* tails)
1205+
CommaSequence_Selector* Complex_Selector::tails(Context& ctx, CommaSequence_Selector* tails)
12061206
{
1207-
Selector_List* rv = SASS_MEMORY_NEW(ctx.mem, Selector_List, pstate_);
1207+
CommaSequence_Selector* rv = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, pstate_);
12081208
if (tails && tails->length()) {
12091209
for (size_t i = 0, iL = tails->length(); i < iL; ++i) {
12101210
Complex_Selector* pr = this->clone(ctx);
@@ -1331,17 +1331,17 @@ namespace Sass {
13311331
return cpy;
13321332
}
13331333

1334-
Selector_List* Selector_List::clone(Context& ctx) const
1334+
CommaSequence_Selector* CommaSequence_Selector::clone(Context& ctx) const
13351335
{
1336-
Selector_List* cpy = SASS_MEMORY_NEW(ctx.mem, Selector_List, *this);
1336+
CommaSequence_Selector* cpy = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, *this);
13371337
cpy->is_optional(this->is_optional());
13381338
cpy->media_block(this->media_block());
13391339
return cpy;
13401340
}
13411341

1342-
Selector_List* Selector_List::cloneFully(Context& ctx) const
1342+
CommaSequence_Selector* CommaSequence_Selector::cloneFully(Context& ctx) const
13431343
{
1344-
Selector_List* cpy = SASS_MEMORY_NEW(ctx.mem, Selector_List, pstate());
1344+
CommaSequence_Selector* cpy = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, pstate());
13451345
cpy->is_optional(this->is_optional());
13461346
cpy->media_block(this->media_block());
13471347
for (size_t i = 0, L = length(); i < L; ++i) {
@@ -1358,7 +1358,7 @@ namespace Sass {
13581358

13591359
// remove parent selector references
13601360
// basically unwraps parsed selectors
1361-
void Selector_List::remove_parent_selectors()
1361+
void CommaSequence_Selector::remove_parent_selectors()
13621362
{
13631363
// Check every rhs selector against left hand list
13641364
for(size_t i = 0, L = length(); i < L; ++i) {
@@ -1381,7 +1381,7 @@ namespace Sass {
13811381
}
13821382
}
13831383

1384-
bool Selector_List::has_parent_ref()
1384+
bool CommaSequence_Selector::has_parent_ref()
13851385
{
13861386
for (Complex_Selector* s : *this) {
13871387
if (s && s->has_parent_ref()) return true;
@@ -1397,14 +1397,14 @@ namespace Sass {
13971397
return false;
13981398
}
13991399

1400-
void Selector_List::adjust_after_pushing(Complex_Selector* c)
1400+
void CommaSequence_Selector::adjust_after_pushing(Complex_Selector* c)
14011401
{
14021402
// if (c->has_reference()) has_reference(true);
14031403
}
14041404

14051405
// it's a superselector if every selector of the right side
14061406
// list is a superselector of the given left side selector
1407-
bool Complex_Selector::is_superselector_of(Selector_List *sub, std::string wrapping)
1407+
bool Complex_Selector::is_superselector_of(CommaSequence_Selector *sub, std::string wrapping)
14081408
{
14091409
// Check every rhs selector against left hand list
14101410
for(size_t i = 0, L = sub->length(); i < L; ++i) {
@@ -1415,7 +1415,7 @@ namespace Sass {
14151415

14161416
// it's a superselector if every selector of the right side
14171417
// list is a superselector of the given left side selector
1418-
bool Selector_List::is_superselector_of(Selector_List *sub, std::string wrapping)
1418+
bool CommaSequence_Selector::is_superselector_of(CommaSequence_Selector *sub, std::string wrapping)
14191419
{
14201420
// Check every rhs selector against left hand list
14211421
for(size_t i = 0, L = sub->length(); i < L; ++i) {
@@ -1426,7 +1426,7 @@ namespace Sass {
14261426

14271427
// it's a superselector if every selector on the right side
14281428
// is a superselector of any one of the left side selectors
1429-
bool Selector_List::is_superselector_of(Compound_Selector *sub, std::string wrapping)
1429+
bool CommaSequence_Selector::is_superselector_of(Compound_Selector *sub, std::string wrapping)
14301430
{
14311431
// Check every lhs selector against right hand
14321432
for(size_t i = 0, L = length(); i < L; ++i) {
@@ -1437,7 +1437,7 @@ namespace Sass {
14371437

14381438
// it's a superselector if every selector on the right side
14391439
// is a superselector of any one of the left side selectors
1440-
bool Selector_List::is_superselector_of(Complex_Selector *sub, std::string wrapping)
1440+
bool CommaSequence_Selector::is_superselector_of(Complex_Selector *sub, std::string wrapping)
14411441
{
14421442
// Check every lhs selector against right hand
14431443
for(size_t i = 0, L = length(); i < L; ++i) {
@@ -1446,15 +1446,15 @@ namespace Sass {
14461446
return false;
14471447
}
14481448

1449-
Selector_List* Selector_List::unify_with(Selector_List* rhs, Context& ctx) {
1449+
CommaSequence_Selector* CommaSequence_Selector::unify_with(CommaSequence_Selector* rhs, Context& ctx) {
14501450
std::vector<Complex_Selector*> unified_complex_selectors;
14511451
// Unify all of children with RHS's children, storing the results in `unified_complex_selectors`
14521452
for (size_t lhs_i = 0, lhs_L = length(); lhs_i < lhs_L; ++lhs_i) {
14531453
Complex_Selector* seq1 = (*this)[lhs_i];
14541454
for(size_t rhs_i = 0, rhs_L = rhs->length(); rhs_i < rhs_L; ++rhs_i) {
14551455
Complex_Selector* seq2 = (*rhs)[rhs_i];
14561456

1457-
Selector_List* result = seq1->unify_with(seq2, ctx);
1457+
CommaSequence_Selector* result = seq1->unify_with(seq2, ctx);
14581458
if( result ) {
14591459
for(size_t i = 0, L = result->length(); i < L; ++i) {
14601460
unified_complex_selectors.push_back( (*result)[i] );
@@ -1463,18 +1463,18 @@ namespace Sass {
14631463
}
14641464
}
14651465

1466-
// Creates the final Selector_List by combining all the complex selectors
1467-
Selector_List* final_result = SASS_MEMORY_NEW(ctx.mem, Selector_List, pstate());
1466+
// Creates the final CommaSequence_Selector by combining all the complex selectors
1467+
CommaSequence_Selector* final_result = SASS_MEMORY_NEW(ctx.mem, CommaSequence_Selector, pstate());
14681468
for (auto itr = unified_complex_selectors.begin(); itr != unified_complex_selectors.end(); ++itr) {
14691469
*final_result << *itr;
14701470
}
14711471
return final_result;
14721472
}
14731473

1474-
void Selector_List::populate_extends(Selector_List* extendee, Context& ctx, ExtensionSubsetMap& extends)
1474+
void CommaSequence_Selector::populate_extends(CommaSequence_Selector* extendee, Context& ctx, ExtensionSubsetMap& extends)
14751475
{
14761476

1477-
Selector_List* extender = this;
1477+
CommaSequence_Selector* extender = this;
14781478
for (auto complex_sel : extendee->elements()) {
14791479
Complex_Selector* c = complex_sel;
14801480

@@ -1608,7 +1608,7 @@ namespace Sass {
16081608
}
16091609

16101610
bool Ruleset::is_invisible() const {
1611-
Selector_List* sl = static_cast<Selector_List*>(selector());
1611+
CommaSequence_Selector* sl = static_cast<CommaSequence_Selector*>(selector());
16121612
for (size_t i = 0, L = sl->length(); i < L; ++i)
16131613
if (!(*sl)[i]->has_placeholder()) return false;
16141614
return true;

src/ast.hpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2281,7 +2281,7 @@ namespace Sass {
22812281
}
22822282
virtual bool is_superselector_of(Compound_Selector* sub, std::string wrapped = "");
22832283
virtual bool is_superselector_of(Complex_Selector* sub, std::string wrapped = "");
2284-
virtual bool is_superselector_of(Selector_List* sub, std::string wrapped = "");
2284+
virtual bool is_superselector_of(CommaSequence_Selector* sub, std::string wrapped = "");
22852285
virtual size_t hash()
22862286
{
22872287
if (Selector::hash_ == 0) {
@@ -2393,7 +2393,7 @@ namespace Sass {
23932393
// last returns the last real tail
23942394
const Complex_Selector* last() const;
23952395

2396-
Selector_List* tails(Context& ctx, Selector_List* tails);
2396+
CommaSequence_Selector* tails(Context& ctx, CommaSequence_Selector* tails);
23972397

23982398
// unconstant accessors
23992399
Complex_Selector* first();
@@ -2404,12 +2404,12 @@ namespace Sass {
24042404
Complex_Selector* innermost() { return last(); };
24052405

24062406
size_t length() const;
2407-
Selector_List* resolve_parent_refs(Context& ctx, Selector_List* parents, bool implicit_parent);
2407+
CommaSequence_Selector* resolve_parent_refs(Context& ctx, CommaSequence_Selector* parents, bool implicit_parent);
24082408
virtual bool is_superselector_of(Compound_Selector* sub, std::string wrapping = "");
24092409
virtual bool is_superselector_of(Complex_Selector* sub, std::string wrapping = "");
2410-
virtual bool is_superselector_of(Selector_List* sub, std::string wrapping = "");
2410+
virtual bool is_superselector_of(CommaSequence_Selector* sub, std::string wrapping = "");
24112411
// virtual Placeholder_Selector* find_placeholder();
2412-
Selector_List* unify_with(Complex_Selector* rhs, Context& ctx);
2412+
CommaSequence_Selector* unify_with(Complex_Selector* rhs, Context& ctx);
24132413
Combinator clear_innermost();
24142414
void append(Context&, Complex_Selector*);
24152415
void set_innermost(Complex_Selector*, Combinator);
@@ -2503,12 +2503,12 @@ namespace Sass {
25032503
///////////////////////////////////
25042504
// Comma-separated selector groups.
25052505
///////////////////////////////////
2506-
class Selector_List : public Selector, public Vectorized<Complex_Selector*> {
2506+
class CommaSequence_Selector : public Selector, public Vectorized<Complex_Selector*> {
25072507
ADD_PROPERTY(std::vector<std::string>, wspace)
25082508
protected:
25092509
void adjust_after_pushing(Complex_Selector* c);
25102510
public:
2511-
Selector_List(ParserState pstate, size_t s = 0)
2511+
CommaSequence_Selector(ParserState pstate, size_t s = 0)
25122512
: Selector(pstate), Vectorized<Complex_Selector*>(s), wspace_(0)
25132513
{ }
25142514
std::string type() { return "list"; }
@@ -2517,12 +2517,12 @@ namespace Sass {
25172517
virtual bool has_parent_ref();
25182518
void remove_parent_selectors();
25192519
// virtual Placeholder_Selector* find_placeholder();
2520-
Selector_List* resolve_parent_refs(Context& ctx, Selector_List* parents, bool implicit_parent = true);
2520+
CommaSequence_Selector* resolve_parent_refs(Context& ctx, CommaSequence_Selector* parents, bool implicit_parent = true);
25212521
virtual bool is_superselector_of(Compound_Selector* sub, std::string wrapping = "");
25222522
virtual bool is_superselector_of(Complex_Selector* sub, std::string wrapping = "");
2523-
virtual bool is_superselector_of(Selector_List* sub, std::string wrapping = "");
2524-
Selector_List* unify_with(Selector_List*, Context&);
2525-
void populate_extends(Selector_List*, Context&, ExtensionSubsetMap&);
2523+
virtual bool is_superselector_of(CommaSequence_Selector* sub, std::string wrapping = "");
2524+
CommaSequence_Selector* unify_with(CommaSequence_Selector*, Context&);
2525+
void populate_extends(CommaSequence_Selector*, Context&, ExtensionSubsetMap&);
25262526
virtual size_t hash()
25272527
{
25282528
if (Selector::hash_ == 0) {
@@ -2554,10 +2554,10 @@ namespace Sass {
25542554
}
25552555
return false;
25562556
}
2557-
Selector_List* clone(Context&) const; // does not clone Compound_Selector*s
2558-
Selector_List* cloneFully(Context&) const; // clones Compound_Selector*s
2557+
CommaSequence_Selector* clone(Context&) const; // does not clone Compound_Selector*s
2558+
CommaSequence_Selector* cloneFully(Context&) const; // clones Compound_Selector*s
25592559
virtual bool operator==(const Selector& rhs) const;
2560-
virtual bool operator==(const Selector_List& rhs) const;
2560+
virtual bool operator==(const CommaSequence_Selector& rhs) const;
25612561
// Selector Lists can be compared to comma lists
25622562
virtual bool operator==(const Expression& rhs) const;
25632563
ATTACH_OPERATIONS()

src/ast_factory.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ namespace Sass {
8585
Wrapped_Selector* new_Wrapped_Selector(std::string p, size_t l, std::string n, Simple_Base* sel);
8686
Compound_Selector* new_Compound_Selector(std::string p, size_t l, size_t s = 0);
8787
Complex_Selector* new_Complex_Selector(std::string p, size_t l, Complex_Selector::Combinator c, Complex_Selector* ctx, Compound_Selector* sel);
88-
Selector_List* new_Selector_List(std::string p, size_t l, size_t s = 0);
88+
CommaSequence_Selector* new_CommaSequence_Selector(std::string p, size_t l, size_t s = 0);
8989
};
9090
}
9191

0 commit comments

Comments
 (0)