Neos\Eel\EelParser::match_ObjectPath PHP Method

match_ObjectPath() public method

public match_ObjectPath ( $stack = [] )
    function match_ObjectPath($stack = array())
    {
        $matchrule = "ObjectPath";
        $result = $this->construct($matchrule, $matchrule, null);
        $_44 = NULL;
        do {
            $_26 = NULL;
            do {
                $_24 = NULL;
                do {
                    $res_21 = $result;
                    $pos_21 = $this->pos;
                    $matcher = 'match_' . 'MethodCall';
                    $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);
                        $_24 = TRUE;
                        break;
                    }
                    $result = $res_21;
                    $this->pos = $pos_21;
                    $matcher = 'match_' . 'Identifier';
                    $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);
                        $_24 = TRUE;
                        break;
                    }
                    $result = $res_21;
                    $this->pos = $pos_21;
                    $_24 = FALSE;
                    break;
                } while (0);
                if ($_24 === FALSE) {
                    $_26 = FALSE;
                    break;
                }
                $_26 = TRUE;
                break;
            } while (0);
            if ($_26 === FALSE) {
                $_44 = FALSE;
                break;
            }
            while (true) {
                $res_43 = $result;
                $pos_43 = $this->pos;
                $_42 = NULL;
                do {
                    $_40 = NULL;
                    do {
                        $res_28 = $result;
                        $pos_28 = $this->pos;
                        $_37 = NULL;
                        do {
                            if (substr($this->string, $this->pos, 1) == '.') {
                                $this->pos += 1;
                                $result["text"] .= '.';
                            } else {
                                $_37 = FALSE;
                                break;
                            }
                            $_35 = NULL;
                            do {
                                $_33 = NULL;
                                do {
                                    $res_30 = $result;
                                    $pos_30 = $this->pos;
                                    $matcher = 'match_' . 'MethodCall';
                                    $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);
                                        $_33 = TRUE;
                                        break;
                                    }
                                    $result = $res_30;
                                    $this->pos = $pos_30;
                                    $matcher = 'match_' . 'Identifier';
                                    $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);
                                        $_33 = TRUE;
                                        break;
                                    }
                                    $result = $res_30;
                                    $this->pos = $pos_30;
                                    $_33 = FALSE;
                                    break;
                                } while (0);
                                if ($_33 === FALSE) {
                                    $_35 = FALSE;
                                    break;
                                }
                                $_35 = TRUE;
                                break;
                            } while (0);
                            if ($_35 === FALSE) {
                                $_37 = FALSE;
                                break;
                            }
                            $_37 = TRUE;
                            break;
                        } while (0);
                        if ($_37 === TRUE) {
                            $_40 = TRUE;
                            break;
                        }
                        $result = $res_28;
                        $this->pos = $pos_28;
                        $matcher = 'match_' . 'OffsetAccess';
                        $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);
                            $_40 = TRUE;
                            break;
                        }
                        $result = $res_28;
                        $this->pos = $pos_28;
                        $_40 = FALSE;
                        break;
                    } while (0);
                    if ($_40 === FALSE) {
                        $_42 = FALSE;
                        break;
                    }
                    $_42 = TRUE;
                    break;
                } while (0);
                if ($_42 === FALSE) {
                    $result = $res_43;
                    $this->pos = $pos_43;
                    unset($res_43);
                    unset($pos_43);
                    break;
                }
            }
            $_44 = TRUE;
            break;
        } while (0);
        if ($_44 === TRUE) {
            return $this->finalise($result);
        }
        if ($_44 === FALSE) {
            return FALSE;
        }
    }