public SelType evaluate(String expr, Map<String, Object> varsMap, Extension ext)
      throws Exception {
    checkExprLength(expr);
    selParser.ReInit(new ByteArrayInputStream(expr.getBytes()));
    ASTExecute n = selParser.Execute();
    try {
      selEvaluator.resetWithInput(varsMap, ext);
      return (SelType) n.jjtAccept(selEvaluator, null);
    } finally {
      selEvaluator.clearState();
    }
  }
@Test(expected = IllegalArgumentException.class)
  public void testEvaluateExpressionTooLong() throws Exception {
    t1.evaluate("x.IsInvalidExpression();", new HashMap<>(), null);
  }