public LongMinAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
@UsedInGeneratedCode @Override public void exitFunctionExpr(ExprParser.FunctionExprContext ctx) { String fnName = ctx.getChild(0).getText(); final List<Expr> args = ctx.getChildCount() > 3 ? (List<Expr>) nodes.get(ctx.getChild(2)) : Collections.emptyList(); Expr expr = macroTable.get(fnName, args); if (expr == null) { // Built-in functions. final Function function = Parser.getFunction(fnName); if (function == null) { throw new RE("function '%s' is not defined.", fnName); } expr = new FunctionExpr(function, fnName, args); } nodes.put(ctx, expr); }
public static ExprMacroTable createExprMacroTable() { final List<ExprMacroTable.ExprMacro> exprMacros = new ArrayList<>(); for (Class<? extends ExprMacroTable.ExprMacro> clazz : ExpressionModule.EXPR_MACROS) { exprMacros.add(INJECTOR.getInstance(clazz)); } exprMacros.add(INJECTOR.getInstance(LookupExprMacro.class)); return new ExprMacroTable(exprMacros); }
private LookupEnabledTestExprMacroTable() { super( Lists.newArrayList( Iterables.concat( TestExprMacroTable.INSTANCE.getMacros(), Collections.singletonList( new LookupExprMacro(createTestLookupReferencesManager(ImmutableMap.of("foo", "xfoo"))) ) ) ) ); }
@UsedInGeneratedCode @Override public void exitFunctionExpr(ExprParser.FunctionExprContext ctx) { String fnName = ctx.getChild(0).getText(); final List<Expr> args = ctx.getChildCount() > 3 ? (List<Expr>) nodes.get(ctx.getChild(2)) : Collections.emptyList(); Expr expr = macroTable.get(fnName, args); if (expr == null) { // Built-in functions. final Function function = Parser.getFunction(fnName); if (function == null) { throw new RE("function '%s' is not defined.", fnName); } expr = new FunctionExpr(function, fnName, args); } nodes.put(ctx, expr); }
public DoubleMaxAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
public FloatSumAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
public LongMaxAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
public DoubleMinAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
public LongSumAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
public DoubleSumAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
public FloatMinAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
public FloatMaxAggregatorFactory(String name, String fieldName) { this(name, fieldName, null, ExprMacroTable.nil()); }
private void validateFlatten(String expression, String withoutFlatten, String withFlatten) { Assert.assertEquals(expression, withoutFlatten, Parser.parse(expression, ExprMacroTable.nil(), false).toString()); Assert.assertEquals(expression, withFlatten, Parser.parse(expression, ExprMacroTable.nil(), true).toString()); }
private ExprEval eval(String x, Expr.ObjectBinding bindings) { return Parser.parse(x, ExprMacroTable.nil()).eval(bindings); }
@Test public void testSimple() { String actual = Parser.parse("1", ExprMacroTable.nil()).toString(); String expected = "1"; Assert.assertEquals(expected, actual); }
private void validateParser(String expression, String expected, List<String> identifiers) { final Expr parsed = Parser.parse(expression, ExprMacroTable.nil()); Assert.assertEquals(expression, expected, parsed.toString()); Assert.assertEquals(expression, identifiers, Parser.findRequiredBindings(parsed)); }
private void validateConstantExpression(String expression, Object expected) { Assert.assertEquals( expression, expected, Parser.parse(expression, ExprMacroTable.nil()).eval(Parser.withMap(ImmutableMap.of())).value() ); } }
private void assertExpr(final String expression, final Object expectedResult) { final Expr expr = Parser.parse(expression, ExprMacroTable.nil()); Assert.assertEquals(expression, expectedResult, expr.eval(bindings).value()); }