コード例 #1
0
        public override void Accept <TContext>(RuntimeVisitor <TContext> visitor, TContext context)
        {
            if (visitor.IsCompleted)
            {
                return;
            }

            visitor.VisitJoinNode(context, this);

            base.Accept(visitor, context);
        }
コード例 #2
0
ファイル: RuntimeVisitorTests.cs プロジェクト: soltys/Melange
        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));
        }
コード例 #3
0
ファイル: RuntimeVisitorTests.cs プロジェクト: soltys/Melange
        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());
        }
コード例 #4
0
ファイル: RuntimeVisitorTests.cs プロジェクト: soltys/Melange
        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);
        }
コード例 #5
0
ファイル: RuntimeVisitorTests.cs プロジェクト: soltys/Melange
        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]);
        }
コード例 #6
0
 public bool Accept(RuntimeVisitor visitor)
 {
     return(visitor.Visit(this, Successors));
 }
コード例 #7
0
 public void Accept <TContext>(RuntimeVisitor <TContext> visitor, TContext context)
 {
     _network.Accept(visitor, context);
 }
コード例 #8
0
 public bool Accept(RuntimeVisitor visitor)
 {
     return(visitor.Visit(this, x => true));
 }
コード例 #9
0
 public bool Successors(RuntimeVisitor visitor)
 {
     return(Enumerable.All(_successors, activation => activation.Accept(visitor)));
 }
コード例 #10
0
 public bool Accept(RuntimeVisitor visitor)
 {
     return(visitor.Visit(this, next => _output.Accept(next)));
 }
コード例 #11
0
 public bool Accept(RuntimeVisitor visitor)
 {
     return(visitor.Visit(this, next => _types.All(activation => activation.Accept(next))));
 }
コード例 #12
0
 public bool Accept(RuntimeVisitor visitor)
 {
     return(visitor.Visit(this, next => _rightActivation.Accept(next) &&
                          Successors.All(activation => activation.Accept(next))));
 }
コード例 #13
0
ファイル: EqualNode.cs プロジェクト: shibukraj/OdoyuleRules
 public bool Accept(RuntimeVisitor visitor)
 {
     return(visitor.Visit(this, x => _values.All(value => value.Accept(x))));
 }
コード例 #14
0
 public void Accept <TContext>(RuntimeVisitor <TContext> visitor, TContext context)
 {
     throw new System.NotImplementedException();
 }