Neos\Eel\EelParser::match_ObjectLiteral PHP Method

match_ObjectLiteral() public method

public match_ObjectLiteral ( $stack = [] )
    function match_ObjectLiteral($stack = array())
    {
        $matchrule = "ObjectLiteral";
        $result = $this->construct($matchrule, $matchrule, null);
        $_188 = NULL;
        do {
            if (substr($this->string, $this->pos, 1) == '{') {
                $this->pos += 1;
                $result["text"] .= '{';
            } else {
                $_188 = FALSE;
                break;
            }
            $res_179 = $result;
            $pos_179 = $this->pos;
            $matcher = 'match_' . 'ObjectLiteralProperty';
            $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);
            } else {
                $result = $res_179;
                $this->pos = $pos_179;
                unset($res_179);
                unset($pos_179);
            }
            while (true) {
                $res_185 = $result;
                $pos_185 = $this->pos;
                $_184 = NULL;
                do {
                    if (($subres = $this->whitespace()) !== FALSE) {
                        $result["text"] .= $subres;
                    }
                    if (substr($this->string, $this->pos, 1) == ',') {
                        $this->pos += 1;
                        $result["text"] .= ',';
                    } else {
                        $_184 = FALSE;
                        break;
                    }
                    if (($subres = $this->whitespace()) !== FALSE) {
                        $result["text"] .= $subres;
                    }
                    $matcher = 'match_' . 'ObjectLiteralProperty';
                    $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);
                    } else {
                        $_184 = FALSE;
                        break;
                    }
                    $_184 = TRUE;
                    break;
                } while (0);
                if ($_184 === FALSE) {
                    $result = $res_185;
                    $this->pos = $pos_185;
                    unset($res_185);
                    unset($pos_185);
                    break;
                }
            }
            if (($subres = $this->whitespace()) !== FALSE) {
                $result["text"] .= $subres;
            }
            if (substr($this->string, $this->pos, 1) == '}') {
                $this->pos += 1;
                $result["text"] .= '}';
            } else {
                $_188 = FALSE;
                break;
            }
            $_188 = TRUE;
            break;
        } while (0);
        if ($_188 === TRUE) {
            return $this->finalise($result);
        }
        if ($_188 === FALSE) {
            return FALSE;
        }
    }