コード例 #1
0
        public static IFlexpressionAlgebra GetHighestPrioritizedAlgebra(this IFlexpressionAlgebra defaultAlgebra, FlexpressionBrick arg1)
        {
            if (defaultAlgebra == null)
            {
                return(arg1?.Algebra ?? FXB.DefaultAlgebra);
            }

            if (arg1?.Algebra != null && arg1.Algebra.Priority >= defaultAlgebra.Priority)
            {
                return(arg1.Algebra);
            }

            return(defaultAlgebra);
        }
コード例 #2
0
        public static IFlexpressionAlgebra GetHighestPrioritizedAlgebra(this IFlexpressionAlgebra defaultAlgebra, FlexpressionBrick arg1, FlexpressionBrick arg2, FlexpressionBrick arg3)
        {
            var alg = defaultAlgebra.GetHighestPrioritizedAlgebra(arg1).GetHighestPrioritizedAlgebra(arg2).GetHighestPrioritizedAlgebra(arg3);

            return(alg);
        }
コード例 #3
0
 public static FlexpressionBrick DefinesSealedRule(this FlexpressionBrick source, ExpressionTypeDescriptor expressionType)
 {
     return((source.Algebra ?? DefaultAlgebra).DefineSealedRule(source, expressionType));
 }
コード例 #4
0
 public static FlexpressionBrick DefinesSealedRule(this FlexpressionBrick source, string patternName, string valueTypeId = null)
 {
     return((source.Algebra ?? DefaultAlgebra).DefineSealedRule(source, CreateExpressionType(patternName, valueTypeId)));
 }
コード例 #5
0
 public static FlexpressionBrick Optional(this FlexpressionBrick source) => source[Quantifier.ZeroOrOne];
コード例 #6
0
 public static FlexpressionBrick OneOrMore(this FlexpressionBrick source) => source[Quantifier.AtLeastOne];
コード例 #7
0
 public static FlexpressionBrick ZeroOrMore(this FlexpressionBrick source) => source[Quantifier.Unlimited];