Example #1
0
 public function parse(Input $input)
 {
     if (!$input->match($this->expression, $matches)) {
         return $input->errorHere("Expected regex '{$this->expression}' to match '{$input->get()}', it does not.")->addParser($this);
     }
     $output = $input->getAndConsume(strlen($matches[0]));
     if (!$this->capturing) {
         return $input->nonCapturingMatchHere($output)->addParser($this);
     } else {
         return $input->matchHere($output)->addParser($this);
     }
 }
 public function getAndConsume($bytes)
 {
     $this->log(Parser::getInlineParserStack() . " - consume({$bytes}, '{$this->get($bytes)}')");
     $this->getParserData()['consumed'] += $bytes;
     return parent::getAndConsume($bytes);
 }