public static FieldDeclaration unaryTest(String name, LambdaExpr value) { return of(UnaryTestT, name, value); }
public static NamedLambda namedLambda(Expression expr, String text) { LambdaExpr lambda = Expressions.lambda(expr); String name = Constants.functionName(text); FieldDeclaration field = Constants.function(name, lambda); return new NamedLambda(new NameExpr(name), lambda, field); }
@Override public DirectCompilerResult visit(NumberNode n) { String originalText = n.getText(); String constantName = Constants.numericName(originalText); FieldDeclaration constant = Constants.numeric(constantName, originalText); return DirectCompilerResult.of( new NameExpr(constantName), BuiltInType.NUMBER, constant); }
public static NamedLambda namedUnaryLambda(Expression expr, String text) { LambdaExpr lambda = Expressions.unaryLambda(expr); String name = Constants.unaryTestName(text); FieldDeclaration field = Constants.unaryTest(name, lambda); return new NamedLambda(new NameExpr(name), lambda, field); }
public static MethodCallExpr range(RangeNode.IntervalBoundary lowBoundary, Expression lowEndPoint, Expression highEndPoint, RangeNode.IntervalBoundary highBoundary) { return new MethodCallExpr(null, "range") .addArgument(FeelCtx.FEELCTX) .addArgument(Constants.rangeBoundary(lowBoundary)) .addArgument(lowEndPoint) .addArgument(highEndPoint) .addArgument(Constants.rangeBoundary(highBoundary)); }
public static DirectCompilerResult declaration(FunctionDefNode n, MethodCallExpr list, Expression fnBody) { LambdaExpr lambda = Expressions.lambda(fnBody); String fnName = Constants.functionName(n.getBody().getText()); DirectCompilerResult r = DirectCompilerResult.of( Functions.internal(list, new NameExpr(fnName)), BuiltInType.FUNCTION); r.addFieldDesclaration(Constants.function(fnName, lambda)); return r; }
public static FieldDeclaration function(String name, LambdaExpr value) { return of(FunctionT, name, value); }
public static FieldDeclaration numeric(String name, String numericValue) { ObjectCreationExpr initializer = new ObjectCreationExpr(); initializer.setType(BigDecimalT); String originalText = numericValue; try { Long.parseLong(originalText); initializer.addArgument(originalText.replaceFirst("^0+(?!$)", "")); // see EvalHelper.getBigDecimalOrNull } catch (Throwable t) { initializer.addArgument(new StringLiteralExpr(originalText)); } initializer.addArgument(DECIMAL_128); return of(BigDecimalT, name, initializer); }