code: function () {
                  var e, c, v, index = i;
  
                  c = this.combinator();
  
                  e = $re(/^(?:\d+\.\d+|\d+)%/) || $re(/^(?:[.#]?|:*)(?:[\w-]|[^\x00-\x9f]|\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/) ||
                      $char('*') || $char('&') || this.attribute() || $re(/^\([^()@]+\)/) || $re(/^[\.#](?=@)/) ||
                      this.entities.variableCurly();
  
                  if (! e) {
                      if ($char('(')) {
                          if ((v = this.selector()) && $char(')')) {
                              e = new(tree.Paren)(v);
                          }
                      }
                  }
  
                  if (e) { return new(tree.Element)(c, e, index, env.currentFileInfo); }
              }
docs: A Selector Element  div + h1 #socks input[type="text"]  Elements are the building blocks for Selectors, they are made out of a `Combinator` (see combinator rule), and an element name, such as a tag a class, or `*`.