You are here

public function HashParser::parse in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/css-selector/Parser/Shortcut/HashParser.php \Symfony\Component\CssSelector\Parser\Shortcut\HashParser::parse()

Parses given selector source into an array of tokens.

Parameters

string $source:

Return value

SelectorNode[]

Overrides ParserInterface::parse

File

vendor/symfony/css-selector/Parser/Shortcut/HashParser.php, line 32

Class

HashParser
CSS selector hash parser shortcut.

Namespace

Symfony\Component\CssSelector\Parser\Shortcut

Code

public function parse($source) {

  // Matches an optional namespace, optional element, and required id
  // $source = 'test|input#ab6bd_field';
  // $matches = array (size=4)
  //     0 => string 'test|input#ab6bd_field' (length=22)
  //     1 => string 'test' (length=4)
  //     2 => string 'input' (length=5)
  //     3 => string 'ab6bd_field' (length=11)
  if (preg_match('/^(?:([a-z]++)\\|)?+([\\w-]++|\\*)?+#([\\w-]++)$/i', trim($source), $matches)) {
    return array(
      new SelectorNode(new HashNode(new ElementNode($matches[1] ?: null, $matches[2] ?: null), $matches[3])),
    );
  }
  return array();
}