You are here

public function ClassParser::parse in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/css-selector/Parser/Shortcut/ClassParser.php \Symfony\Component\CssSelector\Parser\Shortcut\ClassParser::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/ClassParser.php, line 32

Class

ClassParser
CSS selector class parser shortcut.

Namespace

Symfony\Component\CssSelector\Parser\Shortcut

Code

public function parse($source) {

  // Matches an optional namespace, optional element, and required class
  // $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 ClassNode(new ElementNode($matches[1] ?: null, $matches[2] ?: null), $matches[3])),
    );
  }
  return array();
}