Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/08/16 12:04:25 (8 years ago)
Author:
pkimmesw
Message:

#2665 Set .NET version to 4.5, C# version to 5.0, Added expression templates and factory

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.Algorithms.PushGP/HeuristicLab.Algorithms.PushGP/Expressions/Code/CodeIfExpression.cs

    r14320 r14328  
    1 using HeuristicLab.Algorithms.PushGP.Stack;
     1using HeuristicLab.Algorithms.PushGP.Interpreter;
    22
    3 namespace HeuristicLab.Algorithms.PushGP.Expressions
     3namespace HeuristicLab.Algorithms.PushGP.Expressions.Code
    44{
    55    public class CodeIfExpression : Expression
    66    {
    7         public CodeIfExpression() : base(OpCode.CodeIf)
    8         { }
     7        public override bool IsCodeOp { get { return true; } }
    98
    10         public override void Eval(IInterpreterService interpreterService)
     9        public override void Eval(IInterpreter interpreter)
    1110        {
    1211            // not enough arguments on stack
    13             if (interpreterService.BooleanStack.Count == 0 ||
    14                 interpreterService.CodeStack.Count < 2)
     12            if (interpreter.BooleanStack.Count == 0 ||
     13                interpreter.CodeStack.Count < 2)
    1514                return;
    1615
    17             var condition = interpreterService.BooleanStack.Pop();
    18             var expressionFalse = interpreterService.CodeStack.Pop();
    19             var expressionTrue = interpreterService.CodeStack.Pop();
     16            var condition = interpreter.BooleanStack.Pop();
     17            var expressionFalse = interpreter.CodeStack.Pop();
     18            var expressionTrue = interpreter.CodeStack.Pop();
    2019
    21             interpreterService.ExecStack.Push(condition
     20            interpreter.ExecStack.Push(condition
    2221                ? expressionTrue
    2322                : expressionFalse);
    2423        }
     24
     25        public override string ToString()
     26        {
     27            return Symbols.CodeIf;
     28        }
    2529    }
    2630}
Note: See TracChangeset for help on using the changeset viewer.