public ArrayAssignmentExpression(AssignmentType type, IVariableExpression variable, ArrayExpression <T, Array <T> > expression) : base($"{variable.Representation()} {type} {expression.Script()}", variable.VariableType()) { this.type = type; this.variable = variable; this.expression = expression; arrayType = expression.ArrayType(); // type checking Assert.IsTrue(variable.VariableType() == expression.Type()); }
public async Task <Value> Visit <A>(IVariableExpression <A> variable) where A : Expression { Value result = Context[variable.VariableName]; if (result == null) { await Task.Delay(10); throw new ArgumentException("Variable not found in context"); } return(result); }
public AssignmentExpression(AssignmentType type, IVariableExpression variable, Expression <T> expression, bool returnsValue) : base($"{variable.Representation()} {type} {expression.Script()}", variable.VariableType()) { this.type = type; this.variable = variable; this.expression = expression; this.returnsValue = returnsValue; // type checking Assert.IsTrue(variable.VariableType() == expression.Type()); if (returnsValue) { Assert.IsTrue(typeof(TR) == typeof(T)); } else { Assert.IsTrue(typeof(TR) == typeof(Void)); } }
public static IArrayExpressionIn AnyAndEvery(IVariableExpression variable) => new QueryTernaryExpression("ANY AND EVERY", variable);
public static IArrayExpressionIn Any(IVariableExpression variable) => new QueryTernaryExpression("ANY", variable);
public static IArrayExpressionIn Every([NotNull] IVariableExpression variable) => new QueryTernaryExpression("EVERY", CBDebug.MustNotBeNull(WriteLog.To.Query, Tag, nameof(variable), variable));
public SortedSet <string> Visit <A>(IVariableExpression <A> variable) where A : Expression { return(new SortedSet <string> { variable.VariableName }); }
public T Visit <A>(IVariableExpression <A> variable) where A : Expression { // when we visit a variable we add it to the set this.Variables.Add(variable.VariableName); return(default(T)); }
internal QueryTernaryExpression(string function, IVariableExpression variableName) { _function = function; _variableName = variableName; }
public bool CompareDimensions(IVariableExpression variable) { return(Dimension.DimensionKey.Compare(this.DimensionKey, variable.DimensionKey)); }