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); }
public static IFlexpressionAlgebra GetHighestPrioritizedAlgebra(this IFlexpressionAlgebra defaultAlgebra, FlexpressionBrick arg1, FlexpressionBrick arg2, FlexpressionBrick arg3) { var alg = defaultAlgebra.GetHighestPrioritizedAlgebra(arg1).GetHighestPrioritizedAlgebra(arg2).GetHighestPrioritizedAlgebra(arg3); return(alg); }
public static FlexpressionBrick DefinesSealedRule(this FlexpressionBrick source, ExpressionTypeDescriptor expressionType) { return((source.Algebra ?? DefaultAlgebra).DefineSealedRule(source, expressionType)); }
public static FlexpressionBrick DefinesSealedRule(this FlexpressionBrick source, string patternName, string valueTypeId = null) { return((source.Algebra ?? DefaultAlgebra).DefineSealedRule(source, CreateExpressionType(patternName, valueTypeId))); }
public static FlexpressionBrick Optional(this FlexpressionBrick source) => source[Quantifier.ZeroOrOne];
public static FlexpressionBrick OneOrMore(this FlexpressionBrick source) => source[Quantifier.AtLeastOne];
public static FlexpressionBrick ZeroOrMore(this FlexpressionBrick source) => source[Quantifier.Unlimited];