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)); }
protected ParsingProduct(ExpressionTypeDescriptor expressionType, ISourceCodeFragment fragment, IEnumerable <IParsingProduct> subNodes ) { ExpressionType = expressionType; Fragment = fragment; SubNodes = (IReadOnlyList <IParsingProduct>)subNodes?.ToArray() ?? EmptySubNodes.Instance; }
private ExpressionNode(ExpressionTypeDescriptor expressionType, ISourceCodeFragment fragment, IReadOnlyList <IParsingProduct> subNodes) { Fragment = fragment; SubNodes = subNodes.WithoutEmptyProducts(); ExpressionType = expressionType; }
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)); }