public static function subexpression($expression, &$context) {
        $context['usedFeature']['subexp']++;
        $vars = static::analyze(substr($expression, 1, -1), $context);
        $avars = static::advancedVariable($vars, $context, $expression);
        if (isset($avars[0][0]) && !$context['flags']['exhlp']) {
            if (!Validator::helper($context, $avars, true)) {
                $context['error'][] = "Can not find custom helper function defination {$avars[0][0]}() !";
            }
        }
        return array(static::SUBEXP, $avars, $expression);
    }
public static function subexpression($expression, &$context) {
        $context['usedFeature']['subexp']++;
        $vars = static::analyze(substr($expression, 1, -1), $context);
        $avars = static::advancedVariable($vars, $context, $expression);
        if (isset($avars[0][0]) && !$context['flags']['exhlp']) {
            if (!Validator::helper($context, $avars, true)) {
                $context['error'][] = "Can not find custom helper function defination {$avars[0][0]}() !";
            }
        }
        return array(static::SUBEXP, $avars, $expression);
    }
public static function subexpression ( $ expression , & $ context ) { $ context [ 'usedFeature' ] [ 'subexp' ] ++ ; $ vars = static :: analyze ( substr ( $ expression , 1 , - 1 ) , $ context ) ; $ avars = static :: advancedVariable ( $ vars , $ context , $ expression ) ; if ( isset ( $ avars [ 0 ] [ 0 ] ) && ! $ context [ 'flags' ] [ 'exhlp' ] ) { if ( ! Validator :: helper ( $ context , $ avars , true ) ) { $ context [ 'error' ] [ ] = "Can not find custom helper function defination {$avars[0][0]}() !" ; } } return array ( static :: SUBEXP , $ avars , $ expression ) ; }
Parse a subexpression then return parsed result.

@param string $expression the full string of a sub expression
@param array<string,array|string|integer> $context current compile context

@return array<boolean|integer|array> Return parsed result

@expect array(\LightnCandy\Parser::SUBEXP, array(array('a'), array('b')), '(a b)') when input '(a b)', array('usedFeature' => array('subexp' => 0), 'flags' => array('advar' => 0, 'namev' => 0, 'this' => 0, 'exhlp' => 1, 'strpar' => 0))
Parse a subexpression then return parsed result .