public IArrayAbstraction <Variable, Expression> ArrayUnknown(Set <int> dimensions, ExpressionType type) { var result = new SimpleArrayAbstraction <Variable, Expression>(this.encoder, this.decoder); IAbstractDomainForEnvironments <Variable, Expression> topProperty; switch (type) { case ExpressionType.Int8: case ExpressionType.Int16: case ExpressionType.Int32: case ExpressionType.Int64: case ExpressionType.UInt8: case ExpressionType.UInt16: case ExpressionType.UInt32: topProperty = new OctagonEnvironment <Variable, Expression>(this.decoder, this.encoder, OctagonEnvironment <Variable, Expression> .OctagonPrecision.FullPrecision); break; default: topProperty = new FakeAbstractDomain <Variable, Expression>(this.decoder); break; } foreach (var dim in dimensions) { result.content.Add(dim, (IAbstractDomainForEnvironments <Variable, Expression>)topProperty.Clone()); } return((IArrayAbstraction <Variable, Expression>)result); }
public FakeAbstractDomain(FakeAbstractDomain <Variable, Expression> source) { this.decoder = source.decoder; this.state = source.state; }