$this->position = -1;
// find all token starts in one go
preg_match_all($this->regexes
['lex_tokens_start'
],
$this->code,
$matches, \PREG_OFFSET_CAPTURE
);
$this->positions =
$matches;
while ($this->cursor <
$this->end
) { // dispatch to the lexing functions depending
// on the current state
switch ($this->state
) { case self::STATE_DATA:
$this->
lexData();
break;
case self::STATE_BLOCK:
$this->
lexBlock();
break;
case self::STATE_VAR:
$this->
lexVar();
break;
case self::STATE_STRING: