public IExpressionTypeDescriptor WithDefinesExpressionClass(bool definesExpressionClass)
        {
            var useSame = definesExpressionClass == DefinesExpressionClass;

            return(useSame
                ? this
                : ExpressionTypeDescriptor.Create(Name, ValueTypeId, definesExpressionClass));
        }
        public IExpressionTypeDescriptor WithValueType(string valueTypeId)
        {
            var useSame = string.Equals(valueTypeId, ValueTypeId, StringComparison.Ordinal);

            return(useSame
                ? this
                : ExpressionTypeDescriptor.Create(Name, valueTypeId, DefinesExpressionClass));
        }
Пример #3
0
 protected ParsingProduct(ExpressionTypeDescriptor expressionType,
                          ISourceCodeFragment fragment,
                          IEnumerable <IParsingProduct> subNodes
                          )
 {
     ExpressionType = expressionType;
     Fragment       = fragment;
     SubNodes       = (IReadOnlyList <IParsingProduct>)subNodes?.ToArray() ?? EmptySubNodes.Instance;
 }
Пример #4
0
 private ExpressionNode(ExpressionTypeDescriptor expressionType, ISourceCodeFragment fragment, IReadOnlyList <IParsingProduct> subNodes)
 {
     Fragment       = fragment;
     SubNodes       = subNodes.WithoutEmptyProducts();
     ExpressionType = expressionType;
 }
Пример #5
0
        public static IParsingProduct Create(ExpressionTypeDescriptor expressionType, ISourceCodeFragment fragment, IReadOnlyCollection <IParsingProduct> subNodes)
        {
            var nodes = subNodes.WithoutEmptyProducts();

            return(new ExpressionNode(expressionType, fragment, nodes));
        }
 public static TExpression DefineSealedRule <TExpression>(this IDefineExpressionBuilderAlgebra <TExpression> source, TExpression content,
                                                          ExpressionTypeDescriptor expressionType)
 {
     return(source.DefineRule(content, expressionType, true));
 }