/** * @param int $index * * @return mixed */ public function readAt($index) { if ($index > 0 && $this->lexer->getStream()->cursor() - $this->cursor < $index) { $i = 0; while (($token = $this->lexer->nextToken()) && $i < $index) { $this->input[] = $token; ++$i; } } return parent::readAt($index); }
/** * @param string $input */ public function __construct($input) { $strlen = mb_strlen($input); $array = array(); while ($strlen) { $array[] = mb_substr($input, 0, 1); $input = mb_substr($input, 1, $strlen); $strlen = mb_strlen($input); } parent::__construct($array); }