예제 #1
0
 public TerminatedWithDisallowedLoopBound(ProgramLocation location, BigInteger loopBound)
 {
     Debug.Assert(location != null, "location cannot be null");
     this.LoopBound    = loopBound;
     this.ExitLocation = location;
     State             = null;
 }
예제 #2
0
        public ExecutionState Clone(ProgramLocation loc)
        {
            ExecutionState other = (ExecutionState)this.MemberwiseClone();

            other.Mem = this.Mem.Clone();


            other.Id = NewId++;

            other.Constraints = this.Constraints.Clone();
            other.CreatedAt   = loc;
            return(other);
        }
예제 #3
0
        public ExecutionTreeNode(ExecutionState self, ExecutionTreeNode parent, ProgramLocation createdAt)
        {
            Debug.Assert(self != null, "self cannot be null!");
            this.State = self;
            if (parent == null)
            {
                this.Parent = null;
            }
            else
            {
                this.Parent = parent;

                // Add this as a child of the parent
                this.Parent.AddChild(this);
            }

            this.Depth = self.ExplicitBranchDepth;

            this.CreatedAt = createdAt;
            Children       = new List <ExecutionTreeNode>(); // Should we lazily create this?
        }
예제 #4
0
 public Constraint(Expr condition, ProgramLocation location) : this(condition)
 {
     Debug.Assert(location != null);
     Origin = location;
     ComputeUsedVariablesAndUninterpretedFunctions();
 }
예제 #5
0
 public TerminatedWithDisallowedExplicitBranchDepth(ProgramLocation location)
 {
     Debug.Assert(location != null, "location cannot be null");
     this.ExitLocation = location;
     State             = null;
 }
예제 #6
0
 public TerminatedWithDisallowedSpeculativePath(ProgramLocation loc)
 {
     this.ExitLocation = loc;
 }
예제 #7
0
 public void AddConstraint(Expr e, ProgramLocation location)
 {
     AddConstraint(new Constraint(e, location));
 }
예제 #8
0
 public void MakeSpeculative(ProgramLocation loc)
 {
     Speculative = true;
     Debug.Assert(loc != null);
     SpeculativeStart = loc;
 }