public static ExpressionParser AddRegex(this ExpressionParser parser) { parser.Functions["regex"] = RegexFunc; return(parser); }
//private static JToken MountedFromFunc(JToken document, JToken[] arg) //{ // return document.SelectToken($"$.volumes.{arg[0].ToString()}.mountedFrom").ToString(); //} //private static JToken MountedAtFunc(JToken document, JToken[] arg) //{ // var volumne = document.SelectToken($"$.volumes.{arg[0].ToString()}"); // if (volumne == null) // { // throw new Exception($"The volume with name {arg[0].ToString()} was not found"); // } // return volumne.SelectToken("$.mountedAt").ToString(); //} public static ExpressionParser AddConcat(this ExpressionParser parser) { parser.Functions["concat"] = (document, arguments) => string.Join("", arguments.Select(k => k.ToString())); return(parser); }
public static ExpressionParser AddSplit(this ExpressionParser parser) { parser.Functions["split"] = (document, arguments) => JArray.FromObject(arguments.First().ToString().Split(arguments.Skip(1).FirstOrDefault()?.ToString() ?? ",")); return(parser); }
public FunctionEvaluator(ExpressionParser evaluator, string name, IJTokenEvaluator[] parameters) { this.name = name; this.parameters = parameters; this.evaluator = evaluator; }