code: public Expression evaluateFunction(FunctionCall call) {
          try {
              return (Expression) Functions.class.getDeclaredMethod(call.getName()
                                                                        .toLowerCase()
                                                                        .replaceAll("[^a-z0-9]", ""),
                                                                    Generator.class,
                                                                    FunctionCall.class).invoke(null, this, call);
          } catch (NoSuchMethodException ignored) {
              return new Value(call.toString());
          } catch (InvocationTargetException e) {
              warn("Cannot execute function: " + call + " - " + e.getCause().getMessage());
          } catch (Exception e) {
              warn("Cannot execute function: " + call + " - " + e.getMessage());
          }
          return new Value(call.toString());
      }
docs: Evaluates the given function.
  <p>
  Can be overridden by subclasses. If no matching function is found, the raw sources are output to handle
  {@code url('..')} etc.
  
  @param call the function to evaluate
  @return the result of the evaluation