Beispiel #1
0
 Statement* Expand::operator()(Extension* e)
 {
   Selector_List* extender = static_cast<Selector_List*>(selector_stack.back());
   if (!extender) return 0;
   Selector_List* extendee = static_cast<Selector_List*>(e->selector()->perform(contextualize->with(0, env, backtrace)));
   if (extendee->length() != 1) {
     error("selector groups may not be extended", extendee->path(), extendee->line(), backtrace);
   }
   Complex_Selector* c = (*extendee)[0];
   if (!c->head() || c->tail()) {
     error("nested selectors may not be extended", c->path(), c->line(), backtrace);
   }
   Compound_Selector* s = c->head();
   for (size_t i = 0, L = extender->length(); i < L; ++i) {
     extensions.insert(make_pair(*s, (*extender)[i]));
     To_String to_string;
   }
   return 0;
 }