Example #1
0
 /**
  * Process
  */
 public function process()
 {
     $situation = new Situation($this->table, $this->table->getStartRule());
     $this->addState($situation->closure());
     while (!$this->stateQueue->isEmpty()) {
         /** @var State $state */
         $state = $this->stateQueue->dequeue();
         foreach ($state->getSituationSet()->getNextTokens() as $next) {
             $transition = $this->addState($state->getSituationSet()->transition($next));
             $state->addTransition($next, $transition);
         }
     }
 }