Flow\JSONPath\JSONPathLexer::createToken PHP Метод

createToken() защищенный Метод

protected createToken ( $value ) : string
$value
Результат string
    protected function createToken($value)
    {
        if (preg_match('/^(' . static::MATCH_INDEX . ')$/x', $value, $matches)) {
            return new JSONPathToken(JSONPathToken::T_INDEX, $value);
        }
        if (preg_match('/^' . static::MATCH_INDEXES . '$/x', $value, $matches)) {
            $value = explode(',', $value);
            foreach ($value as $i => $v) {
                $value[$i] = (int) trim($v);
            }
            return new JSONPathToken(JSONPathToken::T_INDEXES, $value);
        }
        if (preg_match('/^' . static::MATCH_SLICE . '$/x', $value, $matches)) {
            $parts = explode(':', $value);
            $value = ['start' => isset($parts[0]) && $parts[0] !== "" ? (int) $parts[0] : null, 'end' => isset($parts[1]) && $parts[1] !== "" ? (int) $parts[1] : null, 'step' => isset($parts[2]) && $parts[2] !== "" ? (int) $parts[2] : null];
            return new JSONPathToken(JSONPathToken::T_SLICE, $value);
        }
        if (preg_match('/^' . static::MATCH_QUERY_RESULT . '$/x', $value)) {
            $value = substr($value, 1, -1);
            return new JSONPathToken(JSONPathToken::T_QUERY_RESULT, $value);
        }
        if (preg_match('/^' . static::MATCH_QUERY_MATCH . '$/x', $value)) {
            $value = substr($value, 2, -1);
            return new JSONPathToken(JSONPathToken::T_QUERY_MATCH, $value);
        }
        if (preg_match('/^' . static::MATCH_INDEX_IN_SINGLE_QUOTES . '$/x', $value, $matches)) {
            $value = $matches[1];
            $value = trim($value);
            return new JSONPathToken(JSONPathToken::T_INDEX, $value);
        }
        if (preg_match('/^' . static::MATCH_INDEX_IN_DOUBLE_QUOTES . '$/x', $value, $matches)) {
            $value = $matches[1];
            $value = trim($value);
            return new JSONPathToken(JSONPathToken::T_INDEX, $value);
        }
        throw new JSONPathException("Unable to parse token {$value} in expression: {$this->expression}");
    }