protected function compileSelectorPart($piece) { foreach ($piece as &$p) { if (!is_array($p)) { continue; } switch ($p[0]) { case "self": $p = "&"; break; default: $p = $this->compileValue($p); break; } } return implode($piece); }