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;
}
}