public function parse($source, &$offset = 0)
    {
        $tokens = $this->lexer->tokens($source, $offset);
        $type = $this->parseTokens($tokens, $index);
        $offset += self::offset($tokens, $index);

        return $type;
    }