public override void Accept <TContext>(RuntimeVisitor <TContext> visitor, TContext context) { if (visitor.IsCompleted) { return; } visitor.VisitJoinNode(context, this); base.Accept(visitor, context); }
public void VisitCall_CallsMethodWithCorrectOrderOfParametersPulledFromStack() { var testVmContext = new TestVmContext(); testVmContext.ValueStack.Push(1); testVmContext.ValueStack.Push(2); testVmContext.ValueStack.Push(3); var sut = new RuntimeVisitor(testVmContext); sut.VisitCall(new CallInstruction(RuntimeVisitorTests.CorrectOrderVMFunction)); }
public void VisitSubtraction_DoesSubtractionWithNegativeResult_ResultPushedToValueStack() { var testVmContext = new TestVmContext(); testVmContext.ValueStack.Push(7); testVmContext.ValueStack.Push(10); var sut = new RuntimeVisitor(testVmContext); sut.VisitSubtraction(new SubtractionInstruction()); Assert.Equal(-3, testVmContext.ValueStack.Peek()); }
public void VisitListNewInstruction_CreatesNewListOnTopOfValueStack() { var testVmContext = new TestVmContext(); var sut = new RuntimeVisitor(testVmContext); sut.VisitList(new ListNewInstruction()); Assert.Single(testVmContext.ValueStack); var topValue = testVmContext.ValueStack.Pop(); Assert.IsType <List <object> >(topValue); var theList = (List <object>)topValue; Assert.Empty(theList); }
public void VisitListAddInstruction_AddsObjectToListInValueStack() { var testVmContext = new TestVmContext(); testVmContext.ValueStack.Push(new List <object>()); testVmContext.ValueStack.Push(42); var sut = new RuntimeVisitor(testVmContext); sut.VisitList(new ListAddInstruction()); Assert.Single(testVmContext.ValueStack); var topValue = testVmContext.ValueStack.Pop(); Assert.IsType <List <object> >(topValue); var theList = (List <object>)topValue; Assert.Single(theList); Assert.Equal(42, theList[0]); }
public bool Accept(RuntimeVisitor visitor) { return(visitor.Visit(this, Successors)); }
public void Accept <TContext>(RuntimeVisitor <TContext> visitor, TContext context) { _network.Accept(visitor, context); }
public bool Accept(RuntimeVisitor visitor) { return(visitor.Visit(this, x => true)); }
public bool Successors(RuntimeVisitor visitor) { return(Enumerable.All(_successors, activation => activation.Accept(visitor))); }
public bool Accept(RuntimeVisitor visitor) { return(visitor.Visit(this, next => _output.Accept(next))); }
public bool Accept(RuntimeVisitor visitor) { return(visitor.Visit(this, next => _types.All(activation => activation.Accept(next)))); }
public bool Accept(RuntimeVisitor visitor) { return(visitor.Visit(this, next => _rightActivation.Accept(next) && Successors.All(activation => activation.Accept(next)))); }
public bool Accept(RuntimeVisitor visitor) { return(visitor.Visit(this, x => _values.All(value => value.Accept(x)))); }
public void Accept <TContext>(RuntimeVisitor <TContext> visitor, TContext context) { throw new System.NotImplementedException(); }