/** * @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; }
public function toRegex(TypePattern $typePattern) { switch ($typePattern->getType()) { case 'string': case 'wildcard': case '*': return "(.+)"; case 'number': return "(\\-?[0-9]*[\\.|\\,]?[0-9]*)"; case 'integer': return "(\\-?[0-9]*)"; case 'double': return "(\\-?[0-9]*[\\.|\\,][0-9]*)"; default: throw new UnknownTypeException($typePattern->getType()); } }