Neos\Eel\FlowQuery\FizzleParser::match_Filter PHP Method

match_Filter() public method

public match_Filter ( $stack = [] )
    function match_Filter($stack = array())
    {
        $matchrule = "Filter";
        $result = $this->construct($matchrule, $matchrule, null);
        $_24 = NULL;
        do {
            $res_20 = $result;
            $pos_20 = $this->pos;
            $_19 = NULL;
            do {
                $_17 = NULL;
                do {
                    $res_10 = $result;
                    $pos_10 = $this->pos;
                    $matcher = 'match_' . 'PathFilter';
                    $key = $matcher;
                    $pos = $this->pos;
                    $subres = $this->packhas($key, $pos) ? $this->packread($key, $pos) : $this->packwrite($key, $pos, $this->{$matcher}(array_merge($stack, array($result))));
                    if ($subres !== FALSE) {
                        $this->store($result, $subres);
                        $_17 = TRUE;
                        break;
                    }
                    $result = $res_10;
                    $this->pos = $pos_10;
                    $_15 = NULL;
                    do {
                        $res_12 = $result;
                        $pos_12 = $this->pos;
                        $matcher = 'match_' . 'IdentifierFilter';
                        $key = $matcher;
                        $pos = $this->pos;
                        $subres = $this->packhas($key, $pos) ? $this->packread($key, $pos) : $this->packwrite($key, $pos, $this->{$matcher}(array_merge($stack, array($result))));
                        if ($subres !== FALSE) {
                            $this->store($result, $subres);
                            $_15 = TRUE;
                            break;
                        }
                        $result = $res_12;
                        $this->pos = $pos_12;
                        $matcher = 'match_' . 'PropertyNameFilter';
                        $key = $matcher;
                        $pos = $this->pos;
                        $subres = $this->packhas($key, $pos) ? $this->packread($key, $pos) : $this->packwrite($key, $pos, $this->{$matcher}(array_merge($stack, array($result))));
                        if ($subres !== FALSE) {
                            $this->store($result, $subres);
                            $_15 = TRUE;
                            break;
                        }
                        $result = $res_12;
                        $this->pos = $pos_12;
                        $_15 = FALSE;
                        break;
                    } while (0);
                    if ($_15 === TRUE) {
                        $_17 = TRUE;
                        break;
                    }
                    $result = $res_10;
                    $this->pos = $pos_10;
                    $_17 = FALSE;
                    break;
                } while (0);
                if ($_17 === FALSE) {
                    $_19 = FALSE;
                    break;
                }
                $_19 = TRUE;
                break;
            } while (0);
            if ($_19 === FALSE) {
                $result = $res_20;
                $this->pos = $pos_20;
                unset($res_20);
                unset($pos_20);
            }
            while (true) {
                $res_23 = $result;
                $pos_23 = $this->pos;
                $_22 = NULL;
                do {
                    $matcher = 'match_' . 'AttributeFilter';
                    $key = $matcher;
                    $pos = $this->pos;
                    $subres = $this->packhas($key, $pos) ? $this->packread($key, $pos) : $this->packwrite($key, $pos, $this->{$matcher}(array_merge($stack, array($result))));
                    if ($subres !== FALSE) {
                        $this->store($result, $subres, "AttributeFilters");
                    } else {
                        $_22 = FALSE;
                        break;
                    }
                    $_22 = TRUE;
                    break;
                } while (0);
                if ($_22 === FALSE) {
                    $result = $res_23;
                    $this->pos = $pos_23;
                    unset($res_23);
                    unset($pos_23);
                    break;
                }
            }
            $_24 = TRUE;
            break;
        } while (0);
        if ($_24 === TRUE) {
            return $this->finalise($result);
        }
        if ($_24 === FALSE) {
            return FALSE;
        }
    }