/** * @param string $pattern * @throws UnknownExpanderException * @return Pattern\TypePattern */ public function parse($pattern) { $AST = $this->getAST($pattern); $pattern = new Pattern\TypePattern((string) $AST->getType()); foreach ($AST->getExpanders() as $expander) { $pattern->addExpander($this->expanderInitializer->initialize($expander)); } return $pattern; }