Exemple #1
0
 /**
  * @param array $args
  *
  * @return Input|false
  */
 public function parse($args = null)
 {
     $fsm = new BacktrackingRunner($this->usageDefinition->getInitialState(), new UsageParserContext());
     $symbols = $this->getInputSequence($args);
     if (!$symbols) {
         return false;
     }
     $result = $fsm->input($symbols);
     return $result === false ? false : new Input($result, $this->optionRepository);
 }
 /**
  * @test
  */
 public function it_must_end_on_a_terminal_state_to_return_result()
 {
     $this->assertEquals(['S3', 'S5'], $this->fsm->input(['t1', 't2']));
     $this->assertEquals(false, $this->fsm->input(['t1']));
 }