Changeset 14328 for branches/PushGP/HeuristicLab.Algorithms.PushGP/HeuristicLab.Algorithms.PushGP/Expressions/Code/CodeIfExpression.cs
- Timestamp:
- 10/08/16 12:04:25 (8 years ago)
- 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;1 using HeuristicLab.Algorithms.PushGP.Interpreter; 2 2 3 namespace HeuristicLab.Algorithms.PushGP.Expressions 3 namespace HeuristicLab.Algorithms.PushGP.Expressions.Code 4 4 { 5 5 public class CodeIfExpression : Expression 6 6 { 7 public CodeIfExpression() : base(OpCode.CodeIf) 8 { } 7 public override bool IsCodeOp { get { return true; } } 9 8 10 public override void Eval(IInterpreter Service interpreterService)9 public override void Eval(IInterpreter interpreter) 11 10 { 12 11 // not enough arguments on stack 13 if (interpreter Service.BooleanStack.Count == 0 ||14 interpreter Service.CodeStack.Count < 2)12 if (interpreter.BooleanStack.Count == 0 || 13 interpreter.CodeStack.Count < 2) 15 14 return; 16 15 17 var condition = interpreter Service.BooleanStack.Pop();18 var expressionFalse = interpreter Service.CodeStack.Pop();19 var expressionTrue = interpreter Service.CodeStack.Pop();16 var condition = interpreter.BooleanStack.Pop(); 17 var expressionFalse = interpreter.CodeStack.Pop(); 18 var expressionTrue = interpreter.CodeStack.Pop(); 20 19 21 interpreter Service.ExecStack.Push(condition20 interpreter.ExecStack.Push(condition 22 21 ? expressionTrue 23 22 : expressionFalse); 24 23 } 24 25 public override string ToString() 26 { 27 return Symbols.CodeIf; 28 } 25 29 } 26 30 }
Note: See TracChangeset
for help on using the changeset viewer.