Jade\Compiler\CodeHandler::parseSeparator PHP Method

parseSeparator() protected method

protected parseSeparator ( $sep, &$separators, &$result, &$varname, $subCodeHandler, $innerName )
    protected function parseSeparator($sep, &$separators, &$result, &$varname, $subCodeHandler, $innerName)
    {
        $handleCodeInbetween = $subCodeHandler->handleCodeInbetween($separators, $result);
        $var = '$__' . $this->name;
        switch ($sep[0]) {
            // translate the javascript's obj.attr into php's obj->attr or obj['attr']
            /*
                        case '.':
                            $result[] = sprintf("%s=is_array(%s)?%s['%s']:%s->%s",
                                $var, $varname, $varname, $innerName, $varname, $innerName
                            );
                            $varname = $var;
                            break;
                        //*/
            // funcall
            case '(':
                $arguments = $handleCodeInbetween();
                $call = $varname . '(' . implode(', ', $arguments) . ')';
                $call = static::addDollarIfNeeded($call);
                $varname = $var;
                array_push($result, "{$var}={$call}");
                break;
            case '[':
                if (preg_match('/[a-zA-Z0-9\\\\_\\x7f-\\xff]$/', $varname)) {
                    $varname .= $sep[0] . $innerName;
                    break;
                }
            case '{':
                $varname .= $this->parseArray($handleCodeInbetween(), $subCodeHandler);
                break;
            case '=':
                $varname .= '=' . $this->parseEqual($sep, $separators, $result, $innerName, $subCodeHandler);
                break;
            default:
                if ($innerName !== false && $innerName !== '' || $sep[0] !== ')') {
                    $varname .= $sep[0] . $innerName;
                }
                break;
        }
    }