code: function (isLess) {
                  var index = i, $re = _$re, elements, extendList, c, e, extend, when, condition;
  
                  while ((isLess && (extend = this.extend())) || (isLess && (when = $re(/^when/))) || (e = this.element())) {
                      if (when) {
                          condition = expect(this.conditions, 'expected condition');
                      } else if (condition) {
                          error("CSS guard can only be used at the end of selector");
                      } else if (extend) {
                          if (extendList) { extendList.push(extend); } else { extendList = [ extend ]; }
                      } else {
                          if (extendList) { error("Extend can only be used at the end of selector"); }
                          c = input.charAt(i);
                          if (elements) { elements.push(e); } else { elements = [ e ]; }
                          e = null;
                      }
                      if (c === '{' || c === '}' || c === ';' || c === ',' || c === ')') {
                          break;
                      }
                  }
  
                  if (elements) { return new(tree.Selector)(elements, extendList, condition, index, env.currentFileInfo); }
                  if (extendList) { error("Extend must be used to extend a selector, it cannot be used on its own"); }
              }
docs: A CSS Selector  .class > div + h1 li a:hover  Selectors are made out of one or more Elements, see above.