/// <summary> /// Parse test function /// </summary> /// <param name="context"></param> /// <returns></returns> private Expression <Func <VariantValue, VariantValue> > ParseScalarLambda( SqlSelectParser.ScalarTypeFunctionContext context) { if (context.IS_DEFINED() != null) { return(s => _serializer.FromObject(s != null)); } if (context.IS_NULL() != null) { return(s => _serializer.FromObject(s != null && s.IsNull())); } if (context.IS_BOOL() != null) { return(s => _serializer.FromObject(s != null && s.IsBoolean)); } if (context.IS_NUMBER() != null) { return(s => _serializer.FromObject(s != null && s.IsDecimal)); } if (context.IS_STRING() != null) { return(s => _serializer.FromObject(s != null && s.IsString)); } if (context.IS_OBJECT() != null) { return(s => _serializer.FromObject(s != null && s.IsObject)); } return(s => _serializer.FromObject(true)); }
/// <summary> /// Parse test function /// </summary> /// <param name="context"></param> /// <returns></returns> private Expression <Func <JsonToken, JsonToken> > ParseScalarLambda( SqlSelectParser.ScalarTypeFunctionContext context) { if (context.IS_DEFINED() != null) { return(s => JToken.FromObject(s != null)); } if (context.IS_NULL() != null) { return(s => JToken.FromObject(s != null && (((JToken)s).Type == JTokenType.Null))); } if (context.IS_BOOL() != null) { return(s => JToken.FromObject(s != null && (((JToken)s).Type == JTokenType.Boolean))); } if (context.IS_NUMBER() != null) { return(s => JToken.FromObject(s != null && (((JToken)s).Type == JTokenType.Float || ((JToken)s).Type == JTokenType.Integer))); } if (context.IS_STRING() != null) { return(s => JToken.FromObject(s != null && (((JToken)s).Type == JTokenType.String))); } if (context.IS_OBJECT() != null) { return(s => JToken.FromObject(s != null && (((JToken)s).Type == JTokenType.Object))); } return(s => JToken.FromObject(true)); }