/**
  * @return boolean
  */
 public function execute()
 {
     if ($this->executed) {
         return false;
     }
     $this->visitor->endVisitConcatenation($this->expression);
     $this->executed = true;
     return true;
 }
 /**
  * @param Repetition $expression
  *
  * @return EndRepetitionAction
  */
 public function dispatchVisitRepetition(Repetition $expression)
 {
     $this->visitor->startVisitRepetition($expression);
     $nextVisitAction = new EndRepetitionAction($expression, $this->visitor);
     return $nextVisitAction;
 }