Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/10/17 21:42:09 (7 years ago)
Author:
pkimmesw
Message:

#2665 Renamings due to typos, ManagedPool tests, Skip Noops in Debugger

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/ExecExpressions.cs

    r14733 r14744  
    1010
    1111  public class ExecExpandExpression : StatefulExpression<PushProgram> {
    12     public static readonly ExecExpandExpression Empty = new ExecExpandExpression();
     12    public static readonly ExecExpandExpression Empty = new ExecExpandExpression(PushProgram.Empty);
    1313
    1414    public ExecExpandExpression(PushProgram program)
     
    3232    }
    3333
    34     public override void Eval(IPushInterpreter interpreter) {
     34    public override bool Eval(IPushInterpreter interpreter) {
    3535      interpreter.ExecStack.Push(this.State.Expressions);
     36      return true;
    3637    }
    3738
     
    8182  [PushExpression(StackType.Exec, "EXEC.IF")]
    8283  public class ExecIfExpression : StatelessExpression {
    83     public override void Eval(IPushInterpreter interpreter) {
     84    public override bool Eval(IPushInterpreter interpreter) {
    8485      // not enough arguments on stack
    85       if ((interpreter.BooleanStack.Count == 0) || (interpreter.ExecStack.Count < 2)) return;
     86      if ((interpreter.BooleanStack.Count == 0) || (interpreter.ExecStack.Count < 2)) return false;
    8687
    8788      var condition = interpreter.BooleanStack.Pop();
     
    8990      if (condition) interpreter.ExecStack.RemoveAt(interpreter.ExecStack.Count - 2);
    9091      else interpreter.ExecStack.RemoveTop();
     92
     93      return true;
    9194    }
    9295  }
     
    98101  [PushExpression(StackType.Exec, "EXEC.Y")]
    99102  public class ExecYExpression : StatelessExpression {
    100     public override void Eval(IPushInterpreter interpreter) {
     103    public override bool Eval(IPushInterpreter interpreter) {
    101104      // not enough arguments on stack
    102105      if (interpreter.ExecStack.Count == 0 ||
    103106          interpreter.Configuration.MaxPointsInProgram < 2)
    104         return;
     107        return false;
    105108
    106109      var top = interpreter.ExecStack.Top;
    107110      var execYExpression = ExpressionTable.GetStatelessExpression<ExecYExpression>();
     111
    108112      var result = new ExecExpandExpression(top, execYExpression);
    109113
    110       //interpreter.ExecStack.Insert(interpreter.ExecStack.Count - 1, result);
    111114      interpreter.ExecStack.SetTop(result);
    112115      interpreter.ExecStack.Add(top);
     116
     117      return true;
    113118    }
    114119  }
     
    119124  [PushExpression(StackType.Exec, "EXEC.K")]
    120125  public class ExecKExpression : StatelessExpression {
    121     public override void Eval(IPushInterpreter interpreter) {
    122       if (interpreter.ExecStack.Count < 2) return;
     126    public override bool Eval(IPushInterpreter interpreter) {
     127      if (interpreter.ExecStack.Count < 2) return false;
    123128
    124129      var top = interpreter.ExecStack.Pop();
    125130      interpreter.ExecStack.SetTop(top);
     131
     132      return true;
    126133    }
    127134  }
     
    134141  [PushExpression(StackType.Exec, "EXEC.S")]
    135142  public class ExecSExpression : StatelessExpression {
    136     public override void Eval(IPushInterpreter interpreter) {
    137       if (interpreter.ExecStack.Count < 3) return;
     143    public override bool Eval(IPushInterpreter interpreter) {
     144      if (interpreter.ExecStack.Count < 3) return false;
    138145
    139146      var expression = interpreter.ExecStack.Pop(2);
     
    146153      interpreter.ExecStack.SetTop(newTop);
    147154      interpreter.ExecStack.Push(c, a);
     155
     156      return true;
    148157    }
    149158  }
Note: See TracChangeset for help on using the changeset viewer.