Ejemplo n.º 1
0
 /**
  * @return Parser
  */
 protected function buildParser()
 {
     $expanderInitializer = new Parser\ExpanderInitializer();
     $expanderInitializer->setExpanderDefinition('length', Length::class);
     $expanderInitializer->setExpanderDefinition('minLength', MinLength::class);
     $expanderInitializer->setExpanderDefinition('maxLength', MaxLength::class);
     return new Parser(new Lexer(), $expanderInitializer);
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }