@Override
public Expression evaluate(List<Expression> parameters, ProblemsHandler problemsHandler, FunctionExpression call, Expression evaluatedParameter) {
if (parameters.isEmpty())
problemsHandler.errFormatWrongFirstParameter(call.getParameter());
Expression format = parameters.get(0);
if (format.getType() == ASTCssNodeType.STRING_EXPRESSION)
return evaluate((CssString) format, parameters.subList(1, parameters.size()), problemsHandler, call.getUnderlyingStructure());
if (format.getType() == ASTCssNodeType.ESCAPED_VALUE)
return evaluate((EscapedValue) format, parameters.subList(1, parameters.size()), problemsHandler, call.getUnderlyingStructure());
if (!format.isFaulty())
problemsHandler.errFormatWrongFirstParameter(call.getParameter());
return new FaultyExpression(call);
}