Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/01/17 09:28:34 (7 years ago)
Author:
pkimmesw
Message:

#2665 Fixed Benchmark Problem Definition, Converted LoopExpressions to stateless expressions, Added several unit test to ensure funcionality, Fixed UI bugs

File:
1 edited

Legend:

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

    r14952 r15017  
    11namespace HeuristicLab.Problems.ProgramSynthesis.Push.Expressions {
     2  using System;
     3
    24  using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    35  using HeuristicLab.Problems.ProgramSynthesis.Push.Attributes;
     
    1315  /// </summary>
    1416  [StorableClass]
    15   [PushExpression(StackTypes.Exec, "EXEC.IF", StackTypes.Boolean)]
     17  [PushExpression(StackTypes.Exec, "EXEC.IF", StackTypes.Boolean, execIn: 2)]
    1618  public class ExecIfExpression : StatelessExpression {
    1719    public ExecIfExpression() { }
     
    3537  ///     "( EXEC.Y <TopItem> )".
    3638  /// </summary>
    37   [PushExpression(StackTypes.Exec, "EXEC.Y")]
     39  [PushExpression(StackTypes.Exec, "EXEC.Y", execIn: 1)]
    3840  [StorableClass]
    3941  public class ExecYExpression : StatelessExpression {
     
    5860      var result = PushProgram.Create(interpreter.PoolContainer.PushProgramPool, expressions);
    5961
    60       interpreter.ExecStack.SetTop(result);
     62      interpreter.ExecStack.Top = result;
    6163      interpreter.ExecStack.Add(top);
    6264    }
     
    6668  ///     Removes the second item on the EXEC stack.
    6769  /// </summary>
    68   [PushExpression(StackTypes.Exec, "EXEC.K")]
     70  [PushExpression(StackTypes.Exec, "EXEC.K", execIn: 2)]
    6971  [StorableClass]
    7072  public class ExecKExpression : StatelessExpression {
     
    7981    public override void Eval(IInternalPushInterpreter interpreter) {
    8082      var top = interpreter.ExecStack.Pop();
    81       interpreter.ExecStack.SetTop(top);
     83      interpreter.ExecStack.Top = top;
    8284    }
    8385  }
     
    8890  ///     another instance of C, followed by another instance of A.
    8991  /// </summary>
    90   [PushExpression(StackTypes.Exec, "EXEC.S")]
     92  [PushExpression(StackTypes.Exec, "EXEC.S", execIn: 3)]
    9193  [StorableClass]
    9294  public class ExecSExpression : StatelessExpression {
     
    113115      var newTop = PushProgram.Create(interpreter.PoolContainer.PushProgramPool, expressions);
    114116
    115       interpreter.ExecStack.SetTop(newTop);
     117      interpreter.ExecStack.Top = newTop;
    116118      interpreter.ExecStack.Push(c, a);
    117119    }
     
    121123  ///     Does nothing.
    122124  /// </summary>
     125  ///
     126  [StorableClass]
     127  [Serializable]
    123128  [PushExpression(StackTypes.Exec, "EXEC.NOOP")]
    124   [StorableClass]
    125129  public class ExecNoopExpression : StatelessExpression {
    126130    public ExecNoopExpression() { }
     
    137141  }
    138142
    139   [PushExpression(StackTypes.Exec, "EXEC.WHILE", StackTypes.Boolean)]
     143  [PushExpression(StackTypes.Exec, "EXEC.WHILE", StackTypes.Boolean, execIn: 1)]
    140144  [StorableClass]
    141145  public class ExecWhileExpression : StatelessExpression {
     
    165169  }
    166170
    167   [PushExpression(StackTypes.Exec, "EXEC.DO*WHILE")]
     171  [PushExpression(StackTypes.Exec, "EXEC.DO*WHILE", execIn: 1)]
    168172  [StorableClass]
    169173  public class ExecDoWhileExpression : StatelessExpression {
     
    181185  }
    182186
    183   [PushExpression(StackTypes.Exec, "EXEC.WHEN", StackTypes.Boolean)]
     187  [PushExpression(StackTypes.Exec, "EXEC.WHEN", StackTypes.Boolean, execIn: 1)]
    184188  [StorableClass]
    185189  public class ExecWhenExpression : StatelessExpression {
Note: See TracChangeset for help on using the changeset viewer.