code: @Nonnull
    public static Value evalExpression(@Nonnull final String expression, @Nonnull final PreprocessorContext context) {
      try {
        final ExpressionTree tree = ExpressionParser.getInstance().parse(expression, context);
        return evalTree(tree, context);
      } catch (IOException unexpected) {
        throw context.makeException("[Expression]Wrong expression format detected [" + expression + ']', unexpected);
      }
    }
docs: Evaluate expression
  
  @param expression the expression as a String, must not be null
  @param context    a preprocessor context to be used for expression operations
  @return the result as a Value object, it can't be null