public static function extractExpression($selector, $accessPrivate = false)
{
if (!is_string($selector)) {
return $selector;
} elseif (strpos($selector, '()') !== false || strpos($selector, '->') !== false) {
return Functions::extractFieldRecursively($selector, $accessPrivate);
} else {
return Functions::extractField($selector, $accessPrivate);
}
}