Lines Matching refs:endAt
47 * @psalm-var null|array<0|positive-int, array{startAt?: int, endAt: null|int}>
139 $endAt = $this->containers[$this->depth]['endAt'] ?? 0;
143 return [$endAt, $this->getNotFilterObject($startAt, $endAt)];
148 while ($endAt !== ($startAt + 1)) {
153 return [$endAt, $filter];
168 $endAt = !$parenthesis && $isRoot ? $this->length : $this->nextClosingParenthesis($startAt) + 1;
173 for ($i = $startAt; $i < $endAt; $i++) {
177 } elseif (($i + 1) < $endAt && $this->filter[$i] . $this->filter[$i + 1] === $op) {
190 $this->validateParsedFilter($filterType, $startAt, $valueStartsAt, $endAt);
200 $endAt - (int) $valueStartsAt - ($parenthesis ? 1 : 0)
210 return [$endAt, $this->getComparisonFilterObject((string) $filterType, $attribute, $value)];
254 * @param int $endAt
257 protected function validateParsedFilter(?string $filterType, ?int $startsAt, ?int $startValue, $endAt): void
266 if ($startValue === null || $startValue === $endAt - 1) {
379 * @param int $endAt
384 protected function getNotFilterObject(int $startAt, int $endAt): FilterInterface
393 if (($info[0] + 1) !== $endAt) {
396 substr($this->filter, $info[0] + 1, $endAt - ((int) $info[0] + 1))
441 if ($info['endAt'] === null) {
488 $this->containers[$child] = ['startAt' => $i, 'endAt' => null];
527 if ($info['endAt'] === null) {
528 $this->containers[$ci]['endAt'] = $i + 1;