class StandardExpressionParser implements IStandardExpressionParser {


    
    
    public StandardExpressionParser() {
        super();
    }





    public Expression parseExpression(
            final IExpressionContext context,
            final String input) {
        Validate.notNull(context, "Context cannot be null");
        Validate.notNull(input, "Input cannot be null");
        return (Expression) parseExpression(context, input, true);
    }




    public AssignationSequence parseAssignationSequence(
            final IExpressionContext context,
            final String input, final boolean allowParametersWithoutValue) {
        Validate.notNull(context, "Context cannot be null");
        Validate.notNull(input, "Input cannot be null");
        return AssignationUtils.parseAssignationSequence(context, input, allowParametersWithoutValue);
    }




    public ExpressionSequence parseExpressionSequence(
            final IExpressionContext context,
            final String input) {
        Validate.notNull(context, "Context cannot be null");
        Validate.notNull(input, "Input cannot be null");
        return ExpressionSequenceUtils.parseExpressionSequence(context, input);
    }




    public Each parseEach(
            final IExpressionContext context,
            final String input) {<FILL_FUNCTION_BODY>}




    public FragmentSignature parseFragmentSignature(final IEngineConfiguration configuration, final String input) {
        Validate.notNull(configuration, "Configuration cannot be null");
        Validate.notNull(input, "Input cannot be null");
        return FragmentSignatureUtils.parseFragmentSignature(configuration, input);
    }







    static IStandardExpression parseExpression(
            final IExpressionContext context,
            final String input, final boolean preprocess) {

        final IEngineConfiguration configuration = context.getConfiguration();

        final String preprocessedInput =
            (preprocess? StandardExpressionPreprocessor.preprocess(context, input) : input);

        final IStandardExpression cachedExpression =
                ExpressionCache.getExpressionFromCache(configuration, preprocessedInput);
        if (cachedExpression != null) {
            return cachedExpression;
        }

        final Expression expression = Expression.parse(preprocessedInput.trim());
        
        if (expression == null) {
            throw new TemplateProcessingException("Could not parse as expression: \"" + input + "\"");
        }
        
        ExpressionCache.putExpressionIntoCache(configuration, preprocessedInput, expression);

        return expression;
        
    }







    
    
    @Override
    public String toString() {
        return "Standard Expression Parser";
    }
    
    
}

        Validate.notNull(context, "Context cannot be null");
        Validate.notNull(input, "Input cannot be null");
        return EachUtils.parseEach(context, input);
    
<no_super_class>